Modules noyau
| Fiche express | |
|---|---|
| Domaine | Gestion des modules noyau Linux |
| Commandes | lsmod, modprobe, insmod, rmmod, modinfo, depmod
|
| Fichier clé | /lib/modules/$(uname -r)/modules.dep
|
| Voir aussi | Systemctl |
Un module noyau Linux (fichier .ko) est un morceau de code chargeable dynamiquement dans le noyau sans redémarrer la machine (pilote matériel, système de fichiers, protocole réseau...). Cette page regroupe les commandes de base pour lister, charger, décharger et inspecter les modules, ainsi que la gestion de leurs dépendances.
Lister les modules chargés
lsmod # tableau des modules actuellement chargés (nom, taille, compteur d'usage, dépendances)
cat /proc/modules # source brute de lsmod, mêmes informations en texte
lsmod | grep vfat # vérifier si un module précis est chargé
La colonne "Used by" de lsmod indique le nombre de références actives et, entre parenthèses, les autres modules qui en dépendent — un module encore référencé ne peut pas être déchargé.
Charger un module
Deux outils existent, avec un usage différent :
modproberésout automatiquement les dépendances en s'appuyant sur/lib/modules/$(uname -r)/modules.dep: c'est l'outil recommandé en usage courant.insmodcharge un fichier.kounique, sans résolution de dépendances (il faut charger les dépendances à la main, dans l'ordre) : utile pour tester un module isolé, hors dépôt système (compilé localement par exemple).
modprobe vfat # charge vfat et ses dépendances (fat...) automatiquement
modprobe -v vfat # idem, en affichant le détail des insmod exécutés
insmod ./fat.ko # charge une dépendance de bas niveau en premier
insmod ./vfat.ko # puis le module qui en dépend
Décharger un module
modprobe -r vfat # décharge vfat et les dépendances devenues inutilisées
rmmod vfat # décharge uniquement vfat (échoue si un autre module en dépend encore)
Un module ne peut être déchargé que si son compteur d'usage (colonne "Used by" de lsmod) est à zéro et qu'aucun autre module chargé n'en dépend.
Informations sur un module
modinfo vfat
modinfo affiche, entre autres, la description, l'auteur, la licence, les dépendances (depends), les paramètres acceptés (parm) et les alias matériels de détection automatique (alias) — utile pour savoir quel module correspond à un périphérique donné.
Régénérer les dépendances
depmod -a
depmod -a reconstruit la table des dépendances entre modules et régénère /lib/modules/$(uname -r)/modules.dep (ainsi que les fichiers d'index associés). C'est ce fichier que modprobe consulte pour résoudre automatiquement les dépendances au chargement — à régénérer après l'installation manuelle d'un nouveau module dans /lib/modules/$(uname -r)/.
Modules au démarrage
Pour qu'un module soit chargé automatiquement à chaque démarrage :
echo vfat >> /etc/modules # Debian/Ubuntu — un module par ligne
echo vfat > /etc/modules-load.d/vfat.conf # systemd — un fichier par module (ou plusieurs modules par fichier)
/etc/modules-load.d/ est le mécanisme systemd générique (lu par le service systemd-modules-load), /etc/modules reste le fichier historique Debian — les deux cohabitent sans conflit sur les systèmes Debian/Ubuntu récents.
Voir aussi
- Systemctl — gestion des services qui dépendent parfois d'un module chargé au bon moment