« Paramètres linux » : différence entre les versions

De Wiki doc

m (→‎Nom des interfaces réseaux : Fermeture de la parenthèse.)
(Ajout d'un lien vers la documentation officielle des paramètres Linux + remplacement des balises "source" obsolètes + corrections de typographies)
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[Category:noyau_linux]]
[[Category:noyau_linux]]
Cette page regroupe quelques paramètres que l'on peut passer au noyau Linux lors de son démarrage.
Cette page regroupe quelques paramètres que l'on peut passer au noyau ''Linux'' lors de son démarrage.
 
La [https://www.kernel.org/doc/html/v6.5/admin-guide/kernel-parameters.html documentation] officielle regroupe des informations utiles à ce sujet.


=Passer des paramètres au noyau=
=Passer des paramètres au noyau=
==GRUB==
==GRUB==
Pour éditer les paramètres passés au noyau lors de son démarrage, il faut éditer le fichier <source lang="bash" inline>/etc/default/grub</source> et les ajouter dans la variable suivante: <source lang="bash" inline>GRUB_CMDLINE_LINUX=""</source> séparés par des espaces pour enfin mettre à jour le menu GRUB:
Pour éditer les paramètres passés au noyau lors de son démarrage, il faut éditer le fichier <code>/etc/default/grub</code> et les ajouter dans la variable suivante : <code>GRUB_CMDLINE_LINUX=""</code> séparés par des espaces pour enfin mettre à jour le menu ''GRUB'' :
  update-grub
  update-grub


==PXELinux==
==PXELinux==
Avec PXELinux, les paramètres s'ajoutent après la section ''APPEND'' en les séparant par des espaces.
Avec PXELinux, les paramètres s'ajoutent après la section ''APPEND'' en les séparant par des espaces.
=Liste de paramètres=
=Liste de paramètres=
==Activer un shell sur un port série==
==Shell sur un port série==
Afin de pouvoir ce connecter à une machine Linux via son port série, il faut passer l'argument suivant au noyau ([https://www.kernel.org/doc/Documentation/admin-guide/serial-console.rst source]):
===Activer un shell sur un port série===
Afin de pouvoir ce connecter à une machine Linux via son port série, il faut passer l'argument suivant au noyau ([https://www.kernel.org/doc/Documentation/admin-guide/serial-console.rst source]) :
  console=ttyS0,115200n8 console=tty0
  console=ttyS0,115200n8 console=tty0


{{info|Cette façon de faire semble spécifique à [[Systemd]] comme expliqué [https://unix.stackexchange.com/questions/248287/how-can-i-stop-auto-login-console-and-getty-in-raspbian-jessie ici]. Pour [https://fr.wikipedia.org/wiki/Init init] et [https://fr.wikipedia.org/wiki/Init#%C2%AB_init_%C2%BB_de_Unix_System_V_(SysV_init) SystemV], il faut passer par le fichier <source lang="bash" inline>/etc/inittab</source> documenté [http://tldp.org/LDP/sag/html/config-init.html ici]. Pour [https://fr.wikipedia.org/wiki/Upstart Upstart], voir [https://help.ubuntu.com/community/SerialConsoleHowto ici].}}
{{info|Cette façon de faire semble spécifique à [[:Category:Systemd|Systemd]] comme expliqué [https://unix.stackexchange.com/questions/248287/how-can-i-stop-auto-login-console-and-getty-in-raspbian-jessie ici]. Pour [https://fr.wikipedia.org/wiki/Init init] et [https://fr.wikipedia.org/wiki/Init#%C2%AB_init_%C2%BB_de_Unix_System_V_(SysV_init) SystemV], il faut passer par le fichier <code>/etc/inittab</code> documenté [http://tldp.org/LDP/sag/html/config-init.html ici]. Pour [https://fr.wikipedia.org/wiki/Upstart Upstart], voir [https://help.ubuntu.com/community/SerialConsoleHowto ici].}}
 
===Ajuster les dimensions du shell===
Sur un port série, le shell a une dimension définie à 80x24 (colonnes*lignes) et ne peut être ajusté dynamiquement à la taille de votre terminal si vous jouez avec celle-ci. Il en résultera un cassage de votre prompte si votre ligne de commande dépasse 80 caractères de large ou si vous exécutez un programme en plein écran type ''Ncurse'' ; [[vim]]... (ceci est dû à un [http://lkml.iu.edu/hypermail/linux/noyau/2005.3/08168.html héritage historique]). Afin de changer les dimensions du ''TTY'', j'utilise deux méthodes. Une manuelle ou une automatique (à l'exécution du terminal lors de la connexion de l'utilisateur).
 
====Ajustement manuel====
Afin de définir une taille au ''TTY'', il faut prendre un terminal normal, le mettre à la taille voulue (plein écran par exemple) et [https://stackoverflow.com/questions/263890/how-do-i-find-the-width-height-of-a-terminal-window récupérer ses dimensions] avec <code>tput cols && tput lines</code>. Il suffit ensuite de définir cette taille dans la console série via [https://superuser.com/questions/1031272/how-to-extend-vim-editor-to-full-screen-in-putty la commande] <code>stty columns 213 rows 56</code>. Le terminal garde alors des dimensions normales après fermeture d'un programme plein écran et arrête de casser le prompt.


{{astuce|Lors de l'ouverture d'un programme en plein écran ([[Vim]] par exemple) via un port série, la définition de la console passe en 80x24 (colonnes*lignes) et reste ainsi jusqu'à ce que le terminal soit redimensionné manuellement (en changeant sa taille via la souris par exemple).
====Ajustement automatique====
Cette méthode définit les dimensions du ''TTY'' courant selon celles du terminal qui l'exécute. Ainsi, les valeurs renseignées sont directement les bonnes. Il n'est toutefois toujours pas possible de changer la taille de son terminal avec la souris et de voir cette modification se répercuter automatiquement dans le ''TTY''.


Pour ce faire, il faut ajouter [https://unix.stackexchange.com/questions/16578/resizable-serial-console-window/283206 une fonction] au <code>~/.profile</code> et demander au shell de l'exécuter (dernière ligne) :


Afin de définir une taille au terminal et ne plus avoir à jouer avec cette contrainte par la suite, il faut prendre un terminal normal, le mettre à la taille voulue (plein écran par exemple) et [https://stackoverflow.com/questions/263890/how-do-i-find-the-width-height-of-a-terminal-window récupérer ses dimensions] avec <source lang="bash" inline>tput cols && tput lines</source>. Il suffit ensuite de définir cette taille dans la console série via [https://superuser.com/questions/1031272/how-to-extend-vim-editor-to-full-screen-in-putty la commande] <source lang="bash" inline>stty columns 213 rows 56</source>. Le terminal garde alors des dimensions normales après fermeture d'un programme plein écran.}}
<syntaxhighlight lang="bash">
res() {
 
  old=$(stty -g)
  stty raw -echo min 0 time 5
 
  printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty
  IFS='[;R' read -r _ rows cols _ < /dev/tty
 
  stty "$old"
 
  # echo "cols:$cols"
  # echo "rows:$rows"
  stty cols "$cols" rows "$rows"
}
 
[ $(tty) = /dev/ttyS0 ] && res
</syntaxhighlight>
 
Ceci s'exécute à la connexion de l'utilisateur.


==Nom des interfaces réseaux==
==Nom des interfaces réseaux==
Avec la version 197 de [[Systemd]] (qui intègre désormais [https://fr.wikipedia.org/wiki/Udev udev]), une nouvelle méthode de nommage des interfaces réseaux a été introduite, portant le nom de ''Predictable Network Interface Names''.
===Notion PNIN===
Avec la version 197 de [[:Category:Systemd|Systemd]] (qui intègre désormais [https://fr.wikipedia.org/wiki/Udev Udev]), une nouvelle méthode de nommage des interfaces réseaux a été introduite, portant le nom de ''Predictable Network Interface Names''.


Voici la [https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming justification] de l'introduction de cette fonctionnalité:
Voici la [https://access.redhat.com/documentation/fr-fr/red_hat_enterprise_linux/7/html/networking_guide/ch-consistent_network_device_naming justification] de l'introduction de cette fonctionnalité :


''Traditionnellement, les interfaces de réseau sous Linux sont énumérées eth[0123…], mais ces noms ne correspondent pas forcément à des étiquettes sur le châssis. Les plateformes des serveurs modernes avec de multiples adaptateurs réseau peuvent rencontrer des noms d'interfaces qui ne sont pas déterminants et contre-intuitifs. Ceci affecte les adaptateurs réseau intégrés à la carte mère (Lan-on-Motherboard, or LOM) et les adaptateurs add-in (uniques et multi-ports).''
''Traditionnellement, les interfaces de réseau sous Linux sont énumérées eth[0123…], mais ces noms ne correspondent pas forcément à des étiquettes sur le châssis. Les plateformes des serveurs modernes avec de multiples adaptateurs réseau peuvent rencontrer des noms d'interfaces qui ne sont pas déterminants et contre-intuitifs. Ceci affecte les adaptateurs réseau intégrés à la carte mère (Lan-on-Motherboard, or LOM) et les adaptateurs add-in (uniques et multi-ports). Dans Red Hat Enterprise Linux 7, Udev prend en charge un certain nombre de schémas d'affectation de noms. Le comportement par défaut est d'assigner des noms fixes basés sur le microprogramme, la topologie et les informations sur l'emplacement. Ceci a pour avantage d'offrir des noms complètement automatiques et prévisibles, qui resteront fixes, même lorsque du matériel est ajouté ou supprimé (il ne se produit pas de ré-énumération) et le matériel endommagé peut être remplacé de façon transparente. L'inconvénient de ce comportement est que les noms sont parfois plus difficiles à lire que les noms traditionnellement utilisés au préalable comme eth0 ou wlan0. Exemple : enp5s0.''
''Dans Red Hat Enterprise Linux 7, udev prend en charge un certain nombre de schémas d'affectation de noms. Le comportement par défaut est d'assigner des noms fixes basés sur le microprogramme, la topologie et les informations sur l'emplacement. Ceci a pour avantage d'offrir des noms complètement automatiques et prévisibles, qui resteront fixes, même lorsque du matériel est ajouté ou supprimé (il ne se produit pas de ré-énumération) et le matériel endommagé peut être remplacé de façon transparente. L'inconvénient de ce comportement est que les noms sont parfois plus difficiles à lire que les noms traditionnellement utilisés au préalable comme eth0 ou wlan0. Exemple : enp5s0.''


Personnellement je trouve ce système merdique car en plus de rendre les noms d'interfaces incroyablement complexes (si encore il n'y avait que ça...), il les nomment différemment en fonction de la machine sur laquelle est installé le système. Ce qui rend toute tentative d'automatisation par [[script bash|script]] impossible en plus d'obliger l'administrateur à lister ses interfaces avant de commencer à les configurer pour connaître leur nom car in-devinable. Et encore, imaginez quand vous êtes forcé d'utiliser un mappage clavier QWERTY sur un clavier AZERTY et que vous avez un nom d'interface comme celui-ci: ''wlx00c0ca4034'' ou celui-là: "enx000ec6d8bdac"...
Personnellement je trouve ce système merdique car en plus de rendre les noms d'interfaces incroyablement complexes (si encore il n'y avait que ça...), il les nomment différemment en fonction de la machine sur laquelle est installé le système. Ce qui rend toute tentative d'automatisation par [[script bash|script]] impossible en plus d'obliger l'administrateur à lister ses interfaces avant de commencer à les configurer pour connaître leur nom car in-devinable. Et encore, imaginez quand vous êtes forcé d'utiliser une disposition clavier ''QWERTY'' sur un clavier ''AZERTY'' et que vous avez un nom d'interface comme celui-ci : ''wlx00c0ca4034'' ou celui-là : ''enx000ec6d8bdac''...


À mon humble avis, il est déplorable qu'une "fonctionnalité" aussi chiante et qui doit concerner le 0,00001% des administrateurs systèmes ayant déjà rencontré LE cas (en fonction de l'alignement des astres dans une galaxie lointaine) où une interface réseau, suite à sont remplacement, a un truck chelou qui se produit avec son nom soit activé de base et face chier les 99,99999% restant...
À mon humble avis, il est déplorable qu'une "fonctionnalité" aussi chiante et qui doit concerner le 0,00001% des administrateurs systèmes ayant déjà rencontré LE cas (en fonction de l'alignement des astres dans une galaxie lointaine) où une interface réseau, suite à sont remplacement, a un truck chelou qui se produit avec son nom soit activé de base et face chier les 99,99999% restant...


Pour le désactiver, il faut entrer le paramètre suivant:
Pour le désactiver, il faut entrer le paramètre suivant :
  net.ifnames=0
  net.ifnames=0


De plus, je recommande de le désactiver si vous voulez renommer vous-même vos interfaces réseaux comme sur [[Hotspot_wifirst#Changement des noms d'interface|cette documentation]] car sinon cet imbécile de ''Systemd'' ne va pas les prendre en compte (vu qu'il les renommes lui-même en dernière instance - ce que veux ''Systemd'' est toujours prioritaire sur ce que vous voulez, ne l'oubliez pas...).
De plus, je recommande de le désactiver si vous voulez renommer vous-même vos interfaces réseaux comme sur [[Hotspot_wifirst#Changement des noms d'interface|cette documentation]] car sinon cet imbécile de ''Systemd'' ne va pas les prendre en compte (vu qu'il les renommes lui-même en dernière instance - ce que veut ''Systemd'' est toujours prioritaire sur ce que vous voulez, ne l'oubliez pas...).


De plus amples informations sont disponibles (notamment sur les 3 méthodes possibles de désactivation) sur le [https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames site officiel].
De plus amples informations sont disponibles (notamment sur les 3 méthodes possibles de désactivation) sur le [https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames site officiel].


Notez qu'il est également possible de [https://serverfault.com/questions/247767/cannot-delete-gre-tunnel renommer manuellement] une interface réseau via <source lang="bash" inline>iproute2</source>:
===Renommage par Iproute2===
Notez qu'il est également possible de [https://serverfault.com/questions/247767/cannot-delete-gre-tunnel renommer manuellement] une interface réseau via <code>iproute2</code> :
  ip link set eth0 down
  ip link set eth0 down
  ip link set dev eth0 name toto0
  ip link set dev eth0 name toto0
  ip link set toto0 up
  ip link set toto0 up


''Note: Il est impératif d'éteindre l'interface avant d'effectuer la modification (sinon on se tape un "RTNETLINK answers: Device or resource busy").''
''Note : Il est impératif d'éteindre l'interface avant d'effectuer la modification (sinon on se tape un "RTNETLINK answers: Device or resource busy").''
 
===Altname Iproute2===
Depuis [https://lwn.net/Articles/806010/ Linux 5.5], il est possible de définir des noms alternatifs dépassants la limite des 15 caractères sur les interfaces réseaux (désormais limité à [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7a56493f0620 128 caractères]). Ainsi, une interface peut se voir attribuer des noms alternatifs (lire supplémentaires) longs qui seront utilisables dans les commandes au même titre que le nom principal.
 
Prenons par exemple les interfaces suivantes :
 
<syntaxhighlight lang="bash">
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff
</syntaxhighlight>
 
Pour ajouter un nom alternatif à l'interface ''dummy0'', il faudra faire ceci :
ip link prop add dummy0 altname lesdocumentaionsdecemecsonttropdelaballe
 
Ce qui donnera :
 
<syntaxhighlight lang="bash">
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff
    altname lesdocumentaionsdecemecsonttropdelaballe
</syntaxhighlight>
 
Il donc possible d’interagir avec cette interface directement via ce nom alternatif :
 
<syntaxhighlight lang="bash">
ip link show lesdocumentaionsdecemecsonttropdelaballe
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff
    altname lesdocumentaionsdecemecsonttropdelaballe
</syntaxhighlight>


==Rotation de la console==
==Rotation de la console==
Si vous avez un écran monté en vertical, il est possible de préciser à la console ([https://www.kernel.org/doc/Documentation/fb/fbcon.txt fbcon]) de pivoter pour vous éviter un torticolis et avoir une plus grande surface d'affichage. La méthode utilisée est expliquée simplement [https://askubuntu.com/questions/237963/how-do-i-rotate-my-display-when-not-using-an-x-server ici].
Si vous avez un écran monté en vertical, il est possible de préciser à la console ([https://www.noyau.org/doc/Documentation/fb/fbcon.txt fbcon]) de pivoter pour vous éviter un torticolis et avoir une plus grande surface d'affichage. La méthode utilisée est expliquée simplement [https://askubuntu.com/questions/237963/how-do-i-rotate-my-display-when-not-using-an-x-server ici].


'''Ce qu'il faut savoir:'''
'''Ce qu'il faut savoir :'''
* '''0:''' Rotation normale
* '''0''' : Rotation normale
* '''1:''' Rotation horaire
* '''1''' : Rotation horaire
* '''2:''' Rotation anti-horaire
* '''2''' : Rotation anti-horaire
* '''3:''' Inverser l'affichage
* '''3''' : Inverser l'affichage




'''Paramètre noyau:'''
'''Paramètre noyau :'''
  fbcon=rotate:1
  fbcon=rotate:1


''Note: S'applique à tout les TTY.''
''Note : S'applique à tout les TTY.''


'''Changement dynamique'''
'''Changement dynamique'''


Pour le TTY actif:
Pour le TTY actif :
  echo 1 > /sys/class/graphics/fbcon/rotate
  echo 1 > /sys/class/graphics/fbcon/rotate


Pour tout les TTY:
Pour tout les TTY :
  echo 1 > /sys/class/graphics/fbcon/rotate_all
  echo 1 > /sys/class/graphics/fbcon/rotate_all


=Source=
==Source de la section==
* https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
* https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt
=Désactiver la journalisation dans le shell=
Lorsque la verbosité est passée en paramètre du noyau et que l'on branche une clé ''USB'', un câble réseau, etc... Ça crache les évènements journal directement dans le shell comme sur un équipement Cisco. Pour désactiver ça, il faut créer le fichier suivant avec ce contenu :
vim /etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3
Un simple redémarrage suffit pour prendre en compte le changement. Si vous voulez appliquer le changement immédiatement (vous êtes en plein test et redémarrer n'est pas envisageable), exécutez simplement cette commande (non testé mais ça viens de la même source donc il n'y a pas de raison que cela ne fonctionne pas) :
echo "3 3 3 3" > /proc/sys/kernel/printk
==Sources de la section==
* https://wiki.archlinux.org/index.php/Silent_boot#sysctl
* https://unix.stackexchange.com/questions/44999/how-can-i-hide-messages-of-udev/45525#45525

Dernière version du 28 janvier 2024 à 11:59

Cette page regroupe quelques paramètres que l'on peut passer au noyau Linux lors de son démarrage.

La documentation officielle regroupe des informations utiles à ce sujet.

Passer des paramètres au noyau

GRUB

Pour éditer les paramètres passés au noyau lors de son démarrage, il faut éditer le fichier /etc/default/grub et les ajouter dans la variable suivante : GRUB_CMDLINE_LINUX="" séparés par des espaces pour enfin mettre à jour le menu GRUB :

update-grub

PXELinux

Avec PXELinux, les paramètres s'ajoutent après la section APPEND en les séparant par des espaces.

Liste de paramètres

Shell sur un port série

Activer un shell sur un port série

Afin de pouvoir ce connecter à une machine Linux via son port série, il faut passer l'argument suivant au noyau (source) :

console=ttyS0,115200n8 console=tty0

INFORMATION

Cette façon de faire semble spécifique à Systemd comme expliqué ici. Pour init et SystemV, il faut passer par le fichier /etc/inittab documenté ici. Pour Upstart, voir ici.

Ajuster les dimensions du shell

Sur un port série, le shell a une dimension définie à 80x24 (colonnes*lignes) et ne peut être ajusté dynamiquement à la taille de votre terminal si vous jouez avec celle-ci. Il en résultera un cassage de votre prompte si votre ligne de commande dépasse 80 caractères de large ou si vous exécutez un programme en plein écran type Ncurse ; vim... (ceci est dû à un héritage historique). Afin de changer les dimensions du TTY, j'utilise deux méthodes. Une manuelle ou une automatique (à l'exécution du terminal lors de la connexion de l'utilisateur).

Ajustement manuel

Afin de définir une taille au TTY, il faut prendre un terminal normal, le mettre à la taille voulue (plein écran par exemple) et récupérer ses dimensions avec tput cols && tput lines. Il suffit ensuite de définir cette taille dans la console série via la commande stty columns 213 rows 56. Le terminal garde alors des dimensions normales après fermeture d'un programme plein écran et arrête de casser le prompt.

Ajustement automatique

Cette méthode définit les dimensions du TTY courant selon celles du terminal qui l'exécute. Ainsi, les valeurs renseignées sont directement les bonnes. Il n'est toutefois toujours pas possible de changer la taille de son terminal avec la souris et de voir cette modification se répercuter automatiquement dans le TTY.

Pour ce faire, il faut ajouter une fonction au ~/.profile et demander au shell de l'exécuter (dernière ligne) :

res() {

  old=$(stty -g)
  stty raw -echo min 0 time 5

  printf '\0337\033[r\033[999;999H\033[6n\0338' > /dev/tty
  IFS='[;R' read -r _ rows cols _ < /dev/tty

  stty "$old"

  # echo "cols:$cols"
  # echo "rows:$rows"
  stty cols "$cols" rows "$rows"
}

[ $(tty) = /dev/ttyS0 ] && res

Ceci s'exécute à la connexion de l'utilisateur.

Nom des interfaces réseaux

Notion PNIN

Avec la version 197 de Systemd (qui intègre désormais Udev), une nouvelle méthode de nommage des interfaces réseaux a été introduite, portant le nom de Predictable Network Interface Names.

Voici la justification de l'introduction de cette fonctionnalité :

Traditionnellement, les interfaces de réseau sous Linux sont énumérées eth[0123…], mais ces noms ne correspondent pas forcément à des étiquettes sur le châssis. Les plateformes des serveurs modernes avec de multiples adaptateurs réseau peuvent rencontrer des noms d'interfaces qui ne sont pas déterminants et contre-intuitifs. Ceci affecte les adaptateurs réseau intégrés à la carte mère (Lan-on-Motherboard, or LOM) et les adaptateurs add-in (uniques et multi-ports). Dans Red Hat Enterprise Linux 7, Udev prend en charge un certain nombre de schémas d'affectation de noms. Le comportement par défaut est d'assigner des noms fixes basés sur le microprogramme, la topologie et les informations sur l'emplacement. Ceci a pour avantage d'offrir des noms complètement automatiques et prévisibles, qui resteront fixes, même lorsque du matériel est ajouté ou supprimé (il ne se produit pas de ré-énumération) et le matériel endommagé peut être remplacé de façon transparente. L'inconvénient de ce comportement est que les noms sont parfois plus difficiles à lire que les noms traditionnellement utilisés au préalable comme eth0 ou wlan0. Exemple : enp5s0.

Personnellement je trouve ce système merdique car en plus de rendre les noms d'interfaces incroyablement complexes (si encore il n'y avait que ça...), il les nomment différemment en fonction de la machine sur laquelle est installé le système. Ce qui rend toute tentative d'automatisation par script impossible en plus d'obliger l'administrateur à lister ses interfaces avant de commencer à les configurer pour connaître leur nom car in-devinable. Et encore, imaginez quand vous êtes forcé d'utiliser une disposition clavier QWERTY sur un clavier AZERTY et que vous avez un nom d'interface comme celui-ci : wlx00c0ca4034 ou celui-là : enx000ec6d8bdac...

À mon humble avis, il est déplorable qu'une "fonctionnalité" aussi chiante et qui doit concerner le 0,00001% des administrateurs systèmes ayant déjà rencontré LE cas (en fonction de l'alignement des astres dans une galaxie lointaine) où une interface réseau, suite à sont remplacement, a un truck chelou qui se produit avec son nom soit activé de base et face chier les 99,99999% restant...

Pour le désactiver, il faut entrer le paramètre suivant :

net.ifnames=0

De plus, je recommande de le désactiver si vous voulez renommer vous-même vos interfaces réseaux comme sur cette documentation car sinon cet imbécile de Systemd ne va pas les prendre en compte (vu qu'il les renommes lui-même en dernière instance - ce que veut Systemd est toujours prioritaire sur ce que vous voulez, ne l'oubliez pas...).

De plus amples informations sont disponibles (notamment sur les 3 méthodes possibles de désactivation) sur le site officiel.

Renommage par Iproute2

Notez qu'il est également possible de renommer manuellement une interface réseau via iproute2 :

ip link set eth0 down
ip link set dev eth0 name toto0
ip link set toto0 up

Note : Il est impératif d'éteindre l'interface avant d'effectuer la modification (sinon on se tape un "RTNETLINK answers: Device or resource busy").

Altname Iproute2

Depuis Linux 5.5, il est possible de définir des noms alternatifs dépassants la limite des 15 caractères sur les interfaces réseaux (désormais limité à 128 caractères). Ainsi, une interface peut se voir attribuer des noms alternatifs (lire supplémentaires) longs qui seront utilisables dans les commandes au même titre que le nom principal.

Prenons par exemple les interfaces suivantes :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff

Pour ajouter un nom alternatif à l'interface dummy0, il faudra faire ceci :

ip link prop add dummy0 altname lesdocumentaionsdecemecsonttropdelaballe

Ce qui donnera :

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff
    altname lesdocumentaionsdecemecsonttropdelaballe

Il donc possible d’interagir avec cette interface directement via ce nom alternatif :

ip link show lesdocumentaionsdecemecsonttropdelaballe
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether ae:67:a9:67:46:86 brd ff:ff:ff:ff:ff:ff
    altname lesdocumentaionsdecemecsonttropdelaballe

Rotation de la console

Si vous avez un écran monté en vertical, il est possible de préciser à la console (fbcon) de pivoter pour vous éviter un torticolis et avoir une plus grande surface d'affichage. La méthode utilisée est expliquée simplement ici.

Ce qu'il faut savoir :

  • 0 : Rotation normale
  • 1 : Rotation horaire
  • 2 : Rotation anti-horaire
  • 3 : Inverser l'affichage


Paramètre noyau :

fbcon=rotate:1

Note : S'applique à tout les TTY.

Changement dynamique

Pour le TTY actif :

echo 1 > /sys/class/graphics/fbcon/rotate

Pour tout les TTY :

echo 1 > /sys/class/graphics/fbcon/rotate_all

Source de la section

Désactiver la journalisation dans le shell

Lorsque la verbosité est passée en paramètre du noyau et que l'on branche une clé USB, un câble réseau, etc... Ça crache les évènements journal directement dans le shell comme sur un équipement Cisco. Pour désactiver ça, il faut créer le fichier suivant avec ce contenu :

vim /etc/sysctl.d/20-quiet-printk.conf
kernel.printk = 3 3 3 3

Un simple redémarrage suffit pour prendre en compte le changement. Si vous voulez appliquer le changement immédiatement (vous êtes en plein test et redémarrer n'est pas envisageable), exécutez simplement cette commande (non testé mais ça viens de la même source donc il n'y a pas de raison que cela ne fonctionne pas) :

echo "3 3 3 3" > /proc/sys/kernel/printk

Sources de la section