Le noyau Linux est de conception modulaire. Au démarrage, seul un noyau résident minimal est chargé dans la mémoire. Par la suite, chaque fois qu'un utilisateur demande une fonction qui n'est pas présente dans le noyau résident, un module de noyau, parfois également appelé périphérique, est chargé dynamiquement en mémoire.
Lors de l'installation, le matériel présent sur votre système est détecté. En fonction de cette analyse et des informations fournies par l'utilisateur, le programme détermine modules doivent être chargés au démarrage. Le programme d'installation configure le mécanisme de chargement dynamique afin qu'il fonctionne de façon transparente.
Si du nouveau matériel est ajouté après l'installation et que ce matériel nécessite un module de noyau, le système doit être configuré de manière à ce qu'il charge le module de noyau approprié pour le nouveau matériel. Lorsque le système est amorcé avec le nouveau matériel, le programme Kudzu s'exécute, détecte le nouveau matériel s'il est pris en charge et configure le module en conséquence. Le module peut aussi être spécifié manuellement en modifiant le fichier de configuration du module, à savoir /etc/modules.conf.
![]() | Remarque |
---|---|
Les modules de cartes vidéo utilisés pour afficher l'interface du système X Window font partie du paquetage XFree86, pas du noyau; ce chapitre ne s'applique par conséquent pas à ces dernières. |
Par exemple, si un système inclut un adaptateur réseau PCI EtherPower 10 SMC, le fichier de configuration des modules contiendra la ligne suivante:
alias eth0 tulip |
Si une deuxième carte réseau est ajoutée au système et qu'elle est identique à la première, insérez la ligne suivante dans /etc/modules.conf:
alias eth1 tulip |
Reportez-vous au Guide de référence de Red Hat Linux pour obtenir une liste alphabétique des modules de noyau et du matériel pris en charge par les modules.
Un groupe de commandes permettant la gestion des modules de noyau peut également être utilisé si le paquetage modutils est installé. Utilisez ces commandes pour déterminer si un module a bien été chargé ou pour essayer différents modules pour un nouveau composant matériel.
La commande /sbin/lsmod permet d'afficher une liste des modules actuellement chargés. Par exemple:
Module Size Used by Not tainted iptable_filter 2412 0 (autoclean) (unused) ip_tables 15864 1 [iptable_filter] nfs 84632 1 (autoclean) lockd 59536 1 (autoclean) [nfs] sunrpc 87452 1 (autoclean) [nfs lockd] soundcore 7044 0 (autoclean) ide-cd 35836 0 (autoclean) cdrom 34144 0 (autoclean) [ide-cd] parport_pc 19204 1 (autoclean) lp 9188 0 (autoclean) parport 39072 1 (autoclean) [parport_pc lp] autofs 13692 0 (autoclean) (unused) e100 62148 1 microcode 5184 0 (autoclean) keybdev 2976 0 (unused) mousedev 5656 1 hid 22308 0 (unused) input 6208 0 [keybdev mousedev hid] usb-uhci 27468 0 (unused) usbcore 82752 1 [hid usb-uhci] ext3 91464 2 jbd 56336 2 [ext3] |
Pour chaque ligne, la première colonne correspond au nom du module, la deuxième colonne affiche la taille du module et la troisième colonne précise l'utilisation par le module.
Les informations figurant après la colonne d'utilisation varie légèrement selon le module. Si la valeur (unused) (non-utilisé) apparaît sur la ligne du module, le module en question n'est pas utilisé. Si la valeur (autoclean) (nettoyage automatique) apparaît sur la ligne du module, le module en question peut être déchargé à l'aide de la commande rmmod -a. Lors de l'exécution de cette commande, tout module portant la mention 'autoclean' et n'ayant pas été utilisé depuis la dernière opération de nettoyage automatique, est déchargé. Red Hat Linux n'effectue pas cette opération de nettoyage automatique par défaut.
Si un module de la liste apparaît entre parenthèses à la fin de la ligne, le module en question a une relation de dépendance avec le module énuméré sur la même ligne, dans la première colonne. Par exemple, dans la ligne
usbcore 82752 1 [hid usb-uhci] |
les modules de noyau hid et usb-uhci dépendent du module usbcore pour leur fonctionnement.
La sortie de /sbin/lsmod est la même que celle obtenue lors de l'affichage de /proc/modules.
Pour charger un module de noyau, utilisez la commande /sbin/modprobe suivie du nom du noyau. Par défaut, modprobe essaie de charger le module à partir des sous-répertoires /lib/modules/<version-du-noyau>/kernel/drivers/. Il existe un sous-répertoire pour chaque module, comme par exemple le sous-répertoire net/ pour les pilotes d'interfaces réseau. Certains modules de noyau sont soumis à des dépendances de modules et nécessitent donc pour leur chargement, que d'autres modules soient préalablement chargés. La commande /sbin/modprobe vérifie ces dépendances et charge les dépendances de modules, avant de charger le module spécifié.
Par exemple, la commande
/sbin/modprobe hid |
charge d'abord toute dépendance de module et ensuite effectue le chargement du module hid.
Pour afficher à l'écran toutes les commandes au fur et à mesure que /sbin/modprobe les exécute, utilisez l'option -v. Par exemple:
/sbin/modprobe -v hid |
Une sortie semblable à celle reproduite ci-dessous s'affiche alors:
/sbin/insmod /lib/modules/2.4.20-2.47.1/kernel/drivers/usb/hid.o Using /lib/modules/2.4.20-2.47.1/kernel/drivers/usb/hid.o Symbol version prefix 'smp_' |
La commande /sbin/insmod permet également de charger des modules de noyau; toutefois, elle ne résout pas les problèmes de dépendances. Dans de telles conditions, il est recommandé d'utiliser la commande /sbin/modprobe.
Pour décharger des modules de noyau, utilisez la commande /sbin/rmmod suivie du nom du module. L'utilitaire rmmod ne décharge que les modules non-utilisés et n'appartenant pas à une relation de dépendance avec d'autre modules en cours d'utilisation.
Par exemple, la commande
/sbin/rmmod hid |
décharge le module de noyau hid.
modinfo constitue un autre utilitaire de module de noyau utile. Utilisez la commande /sbin/modinfo pour afficher des informations concernant un module de noyau. La syntaxe générale est la suivante:
/sbin/modinfo [options] <module> |
Les options comprennent -d qui affiche une brève description du module et -p qui répertorie les paramètres pris en charge par le module. Pour\ une liste complète des options, reportez-vous à la page de manuel de modinfo (man modinfo).
Précédent | Sommaire | Suivant |
Vérification du chargeur d'amorçage | Niveau supérieur | Ressources supplémentaires |