Le noyau Linux a une 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 est chargé dynamiquement dans la mémoire. Après un délai d'inactivité spécifié, le module peut être supprimé de la mémoire.
Le mécanisme prenant en charge le chargement dynamique de modules est un thread de noyau appelé kmod. Les modules ne sont chargés que s'ils sont nécessaires. Lorsque le noyau demande un module, le module est chargé avec toutes ses dépendances
Red Hat Linux comprend également une tâche cron supprimant tous les modules non-utilisés toutes les dix minutes. La tâche cron est située dans le fichier /etc/cron.d/kmod. Reportez-vous à la la section intitulée Cron dans Chapitre 22 plus d'informations sur les tâches cron.
Lorsque vous installez Red Hat Linux, le matériel se trouvant sur votre système est analysé, et vous fournissez des informations sur la façon dont le système sera utilisé et les programmes qui devront être chargés. Sur la base de cette analyse et des informations que vous donnez, le programme d'installation décide quels modules doivent être chargés au démarrage. Le programme d'installation configure le mécanisme de chargement dynamique pour qu'il travaille en transparence. Si vous construisez votre propre noyau personnalisé, vous pouvez prendre toutes ces décisions vous-même.
Si vous ajoutez du nouveau matériel après l'installation et que le matériel nécessite un module de noyau, vous devez configurer le mécanisme de chargement dynamique. Kudzu détecte généralement le nouveau matériel. Vous pouvez également ajouter le nouveau pilote en éditant le fichier de configuration du module, /etc/modules.conf.
Par exemple, si votre système inclue un adaptateur réseau PCI EtherPower 10 SMC au moment de l'installation, le fichier de configuration du module contiendra la ligne suivante :
alias eth0 tulip |
Après l'installation, si vous installez un second adaptateur réseau identique sur votre système, ajoutez la ligne suivante à /etc/modules.conf:
alias eth1 tulip |
Consultez le Guide de référence officiel Red Hat Linux pour obtenir une liste alphabétique des modules de noyau et du matériel pris en charge par les modules.
Vous pouvez également utiliser un groupe de commandes pour répertorier, charger ou décharger des modules de noyau. Ces commandes sont utiles si vous voulez essayer différents modules ou voir si un module a bien été chargé.
La commande /sbin/lsmod permet d'afficher une liste des modules actuellement chargés.
Exemple 24-1. Exemple de résultats lsmod
Module Size Used by sr_mod 15264 0 (autoclean) mga 95984 1 agpgart 23392 3 nfs 79008 1 (autoclean) lockd 52464 1 (autoclean) [nfs] sunrpc 61328 1 (autoclean) [nfs lockd] autofs 11264 4 (autoclean) 3c59x 25344 1 (autoclean) ipchains 38976 0 (unused) ide-scsi 8352 0 scsi_mod 95104 2 [sr_mod ide-scsi] ide-cd 26848 0 cdrom 27232 0 [sr_mod ide-cd] usb-uhci 20720 0 (unused) usbcore 49664 1 [usb-uhci] |
Comme vous pouvez le voir dans l'Exemple 24-1, lsmod affiche la taille, l'utilisation et les modules associés pour chaque module actuellement chargé.
Par défaut, insmod essaie de charger le module à partir des sous-répertoires /lib/modules/<version-noyau>/kernel/drivers. Il existe un sous-répertoire pour chaque type de module, comme le sous-répertoire net pour les pilotes d'interface réseau. Certains modules de noyau ont des dépendances de modules — d'autres modules doivent être chargés en premier pour que le chargement soit possible. Pour traiter ces dépendances, vous pouvez charger les dépendances puis charger ensuite le module souhaité ou bien utiliser la commande /sbin/modprobe suivie du nom du module pour charger le module avec ses dépendances.
Par exemple, la commande
/sbin/modprobe tulip |
permet de charger le module d'interface réseau tulip.
Pour décharger des modules de noyau, utilisez la commande /sbin/rmmod suivie du nom du module. L'utilitaire rmmod ne déchargera que les modules qui ne sont pas utilisés et qui ne constituent pas une dépendance d'autres modules en cours d'utilisation.
Par exemple, la commande
/sbin/rmmod tulip |
permet de décharger le module d'interface réseau tulip.
modinfo constitue un autre utilitaire de module de noyau utile. Vous pouvez utiliser la commande /sbin/modinfo pour afficher des informations concernant un module de noyau. La syntaxe générale est :
/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 modinfo (man modinfo).
| Précédent | Sommaire | Suivant |
| Configuration du chargeur de démarrage | Niveau supérieur | Autres ressources |