Cette page est une introduction et une FAQ pour les modules du noyau Linux. Il n'est pas destiné à remplacer la documentation officielle (voir la liste au bas de la page).
Modules du noyau Linux
Sous Debian, le module peut être installé à partir de trois différents types de sources :
Des modules du noyau amont (upstream) Linux : ils sont installés à partir du paquetlinux-image-*.
Modules supplémentaires, qui ne sont pas dans le noyau amont de Linux. Il sont généralement construits en utilisant dkms. Les modules disponibles peuvent être listés en exécutant apt rdepends dkms.
Un mécanisme plus ancien et moins flexible pour construire des modules supplémentaires est module-assistant. On accède à la liste des modules répertoriés en tapant la commande suivante apt rdepends module-assistant.
Note : certains de ces paquets se trouvent dans les sections contrib, ou non-free.
- Les troisièmes types sont des modules propriétaires, de tierce partie, et autres modules blobs binaires... Vous ne devez pas installer de tels modules sur votre système sauf si vous n'avez pas d'autres choix.
Le chargement automatique des modules
(i) De nos jours, la plupart des modules liés au fonctionnement du matériel devraient être automatiquement chargés, merci à udev et aux alias modules et qui sont codées en dur dans les modules du noyau (voir les champs alias en sortie de modinfo snd-hda-intel).
Lorsque vous voulez accéder à un périphérique mais que le noyau n'accède pas aux alias de ce dernier, vous pouvez ajouter des lignes dans /etc/modules ou un fichier à /etc/modules-load.d/. Quand le noyau Linux reçoit une demande d'ouverture d'un fichier de périphérique, il s'ensuit une requête à modprobe pour les modules du périphérique en fonction de char-major-n ou block-major-n qui dépendent de ce périphériques. Les périphériques sont identifiés de la façon suivante :
Un block-major-n (numéro de bloc majeur) : type de périphérique, caractère (characters) ou système (devices). (c/b)
Un char-major-n (numéro majeur): il identifie le pilote du périphérique.
Un char-minor-n (numéro mineur): il sert à différencier les périphériques utilisant un même pilote.
Par exemple, mes périphériques audio ont un numéro majeur 14, et mon module de son est emu10k1, aussi j'ai ajouté les alias suivants à mon répertoire /etc/modules-load.d dans un fichier sound. Voici un exemple :
Ls-l / dev / dsp crw-rw ---- 1 root audio 14, 3 Jul 5 2000 / dev / dsp $ cat /etc/modules-load.d alias char-major-14 emu10k1
Alias
Ce fichier relie des noms de modules du noyau Linux spécifiques aux noms de service que le noyau connait (alias). À titre d'exemple très simple, il pourrait lier le service eth0 au module de pilote du noyau pour la carte Ethernet particulière que vous avez installée sur votre ordinateur. Un alias peut être utilisé pour créer des noms de modules. Une ligne dans /etc/ modules.conf pourrait ressembler à ceci :
alias iso9660 isofs
Cela rend possible l'écriture de iso9660 dans modprobe bien qu'il n'existe pas de fichier objet pour un tel module.
Commandes pour les modules
insmod : insert un module seul.
modprobe : insère un module en incluant tous les modules dont il dépend.
rmmod : retire un module.
modinfo : affiche des informations concernant le module, cäd auteur, description, paramètres du module, etc.
Voir aussi
ModulesAll - Liste complète des modules du noyau pour le noyau Linux, dans Debian.
KernelModuleBlacklisting - Empêcher un module d'être automatiquement chargé.
KernelDKMS - contruire des modules supplémentaires avec dkms.
ModuleAssistant - construire des modules supplémentaires avec module-assistant.
initramfs - aka le chargement des modules au démarrage, avant que le système de fichiers racine soit monté.
- Les pages de manuel :
Autres pages utiles en français
http://www.lea-linux.org/documentations/index.php/Kernel-modules
http://www.alphanet.ch/~schaefer/unixguide/unixguide_html/node58.html
http://www.delafond.org/traducmanfr/man/man5/modules.conf.5.html