Kernel module (Français)

Modules du noyau sont des morceaux de code qui peuvent être chargés et déchargés dans le noyau à la demande. Ils étendent les fonctionnalités du noyau sans qu'il soit nécessaire de redémarrer le système.

État de la traduction: Cet article est la version francophone de Kernel module. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Pour créer un module de noyau, vous pouvez lire le Guide de programmation des modules du noyau Linux. Un module peut être configuré comme intégré ou chargeable. Pour charger ou supprimer dynamiquement un module, il doit être configuré comme un module chargeable dans la configuration du noyau (la ligne relative au module affichera donc la lettre M).

Obtenir des informations

Les modules sont stockés dans /usr/lib/modules/kernel_release. Vous pouvez utiliser la commande uname -r pour obtenir la version actuelle de votre noyau.

Note: Les noms de modules utilisent souvent des traits de soulignement (_) ou des tirets (-) ; cependant, ces symboles sont interchangeables lors de l'utilisation de la commande modprobe et dans les fichiers de configuration dans /etc/modprobe.d/.

Pour montrer quels modules du noyau sont actuellement chargés :

$ lsmod

Pour afficher des informations sur un module :

$ modinfo nom_du_module

Pour lister les options qui sont définies pour un module chargé :

$ systool -v -m nom_du_module

Pour afficher la configuration complète de tous les modules :

$ modprobe -c | less

Pour afficher la configuration d'un module particulier :

$ modprobe -c | grep nom_du_module

Lister les dépendances d'un module (ou alias), y compris le module lui-même :

$ modprobe --show-depends nom_du_module

Chargement automatique des modules

Aujourd'hui, tous les chargements de modules nécessaires sont gérés automatiquement par udev, donc si vous n'avez pas besoin d'utiliser de modules noyau hors-arbre, il n'est pas nécessaire de mettre les modules qui doivent être chargés au démarrage dans un fichier de configuration. Cependant, il y a des cas où vous pouvez vouloir charger un module supplémentaire pendant le processus de démarrage, ou en mettre un autre sur liste noire pour que votre ordinateur fonctionne correctement.

systemd

Les modules du noyau peuvent être explicitement listés dans des fichiers sous pour que systemd les charge pendant le démarrage. Chaque fichier de configuration est nommé dans le style de . Les fichiers de configuration contiennent simplement une liste de noms de modules du noyau à charger, séparés par des nouvelles lignes. Les lignes vides et les lignes dont le premier caractère non espace est ou sont ignorées.

/etc/modules-load.d/virtio-net.conf
# Chargement de virtio_net.ko au démarrage
virtio_net

Consultez modules-load.d(5) pour plus de détails.

Chargement précoce des modules

L'image initramfs peut ne pas contenir les modules du noyau demandés dans , il peut également manquer les fichiers qui ont été définis dans ce dossier. Le chargement précoce des modules dépend du générateur d'initramfs utilisé :

Gestion manuelle des modules

Les modules du noyau sont gérés par des outils fournis par le paquet . Vous pouvez utiliser ces outils manuellement.

Pour charger un module :

# modprobe nom_du_module

Pour charger un module par nom de fichier (c'est-à-dire un module qui n'est pas installé dans ) :

# insmod filename [args]

Pour décharger un module :

# modprobe -r nom_du_module

Ou, alternativement :

# rmmod nom_du_module

Définir les options du module

Pour passer un paramètre à un module du noyau, vous pouvez le faire manuellement avec modprobe ou vous assurer que certains paramètres sont toujours appliqués en utilisant un fichier de configuration modprobe ou en utilisant la ligne de commande du noyau.

Manuellement au moment du chargement à l'aide de modprobe

La manière de base de passer des paramètres à un module est d'utiliser la commande modprobe. Les paramètres sont spécifiés sur la ligne de commande en utilisant de simples assignations :

# modprobe nom_du_module nom_du_paramètre=valeur_du_paramètre

Utilisation des fichiers dans /etc/modprobe.d/

Les fichiers du répertoire peuvent être utilisés pour transmettre les paramètres des modules à udev, qui utilisera pour gérer le chargement des modules lors du démarrage du système. Les fichiers de configuration dans ce répertoire peuvent avoir n'importe quel nom, du moment qu'ils se terminent par l'extension .conf. La syntaxe est la suivante :

/etc/modprobe.d/myfilename.conf
options ''nom_du_module nom_du_paramètre=valeur_du_paramètre''

Par exemple :

Utilisation de la ligne de commande du noyau

Si le module est intégré au noyau, vous pouvez également passer des options au module en utilisant la ligne de commande du noyau. Pour tous les chargeurs d'amorçage courants, la syntaxe suivante est correcte :

nom_du_module.nom_du_paramètre=valeur_du_paramètre

Par exemple

thinkpad_acpi.fan_control=1

Ajoutez simplement ceci à la ligne de commande du noyau de votre chargeur d'amorçage, comme décrit dans Paramètres du noyau.

Aliasing

Les alias sont des noms alternatifs pour un module. Par exemple : signifie que vous pouvez utiliser au lieu de . Vous pouvez également utiliser des caractères génériques de type shell, ainsi alias my-mod* really_long_modulename signifie que a le même effet. Créez un alias :

Certains modules ont des alias qui sont utilisés pour les charger automatiquement lorsqu'ils sont nécessaires à une application. La désactivation de ces alias peut empêcher le chargement automatique mais permettra toujours le chargement manuel des modules.

Liste noire

La liste noire, dans le contexte des modules du noyau, est un mécanisme permettant d'empêcher le chargement du module du noyau. Cela peut être utile si, par exemple, le matériel associé n'est pas nécessaire, ou si le chargement de ce module pose des problèmes : par exemple, il peut y avoir deux modules de noyau qui essaient de contrôler la même pièce de matériel, et les charger ensemble entraînerait un conflit.

Certains modules sont chargés en tant que partie de l'initramfs. affichera tous les modules détectés automatiquement : pour empêcher l'initramfs de charger certains de ces modules, mettez-les sur liste noire dans un fichier .conf sous /etc/modprobe.d et il sera ajouté par le hook pendant la génération de l'image. L'exécution de listera tous les modules ajoutés par les différents hooks (par exemple, le hook , le hook , etc.) N'oubliez pas d'ajouter ce fichier .conf au tableau FILES de si vous n'avez pas le hook dans votre tableau (par exemple si vous avez dévié de la configuration par défaut), et une fois que vous avez mis les modules sur liste noire régénérez l'initramfs, et redémarrez ensuite.

Utilisation des fichiers dans /etc/modprobe.d/

Créez un fichier .conf dans et ajoutez une ligne pour chaque module que vous voulez mettre sur liste noire, en utilisant le mot-clé . Si par exemple vous voulez empêcher le chargement du module pour éviter les sons avec le bipeur du PC :

/etc/modprobe.d/nobeep.conf
# Ne pas charger le module 'pcspkr' au démarrage.
blacklist pcspkr

Utilisation de la ligne de commande du noyau

Vous pouvez également mettre les modules sur liste noire à partir du chargeur d'amorçage.

Ajoutez simplement à la ligne de commande du noyau de votre chargeur d'amorçage, comme décrit dans Paramètres du noyau.

Dépannage

Les modules ne se chargent pas

Dans le cas où un module spécifique ne se charge pas et que le journal de démarrage (accessible en exécutant en tant que root) indique que le module est sur liste noire, mais que le répertoire ne montre pas d'entrée correspondante, vérifiez dans un autre répertoire source de modprobe à les entrées de liste noire.

Un module ne sera pas chargé si la chaîne "vermagic" contenue dans le module du noyau ne correspond pas à la valeur du noyau en cours d'exécution. Si l'on sait que le module est compatible avec le noyau en cours d'exécution, la vérification de "vermagic" peut être ignorée avec modprobe --force-vermagic.

Voir aussi

gollark: ↑↑↑
gollark: It says ComputerCraft in the topic thing at the top, so sure.
gollark: Actually, it should still be possible to access it.
gollark: I would be interested in hosting this, minus... that giant problem.
gollark: <@373984939609423876> Is the XSS thing deliberate?
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.