Linux / Commande lsmod : lire les modules chargés dans le noyau

lsmod liste les modules actuellement chargés dans le noyau Linux, avec leur taille et leurs références d’utilisation. Il permet de vérifier la présence d’un pilote fourni sous forme de module. Une absence dans la liste ne prouve pas qu’une fonction manque : elle peut être intégrée directement au noyau, ne pas être chargée ou porter un autre nom.

Afficher les modules chargés et lire les colonnes

Un module est du code que le noyau peut charger pour fournir un pilote ou une autre fonction. lsmod, fourni par kmod, met en forme les informations de /proc/modules. La consultation simple ne charge ni ne retire de module :

lsmod

Pour parcourir une liste longue, vous pouvez la transmettre à un lecteur :

lsmod | less

Dans less, parcourez avec les flèches et quittez avec q. Chaque ligne correspond à un module chargé ; les fonctions compilées directement dans le noyau ne sont pas des modules chargés séparément.

Colonne Signification
Module Nom du module chargé.
Size Taille rapportée pour le module ; ce n’est pas une mesure de charge CPU.
Used by Compteur de références suivi, lorsqu’ils existent, de noms de modules qui utilisent ce module.

Exemple purement illustratif de structure, sans inventaire de votre machine :

Module                  Size  Used by
module_demo            16384  0

Un compteur nul ne signifie pas qu’il faut retirer le module. Le compteur n’est pas non plus une liste des applications ni un taux d’utilisation du matériel. Lorsque plusieurs noms suivent le nombre, lisez-les comme des modules utilisateurs du module décrit sur cette ligne.

Chercher un nom précis dans la liste

Pour rechercher overlay en première colonne, avec un séparateur blanc après le nom :

lsmod | grep '^overlay[[:space:]]'

L’ancre ^ impose le début de ligne et le séparateur évite de confondre overlay avec un nom commençant par overlay_. Si le module est chargé sous ce nom, sa ligne apparaît. Sinon, aucune ligne ne correspond ; grep renvoie alors 1, ce qui indique une absence de correspondance, pas un diagnostic complet du noyau.

Vérifiez séparément que lsmod fonctionne si la commande affiche une erreur. Une recherche textuelle vide ne distingue pas à elle seule une absence du module d’un échec de collecte. Cette commande sert à observer un état courant, qui peut changer ensuite.

Compléter avec les informations du fichier module

modinfo overlay

modinfo consulte les métadonnées du module, par exemple son fichier, sa description et ses paramètres lorsqu’ils sont disponibles. Le succès de modinfo n’atteste pas que le module est chargé : les métadonnées sur disque et la liste du noyau répondent à deux questions différentes. Inversement, un échec peut venir de l’absence des fichiers de modules attendus dans l’environnement.

Dans un conteneur, les informations noyau exposées et les fichiers /lib/modules accessibles peuvent ne pas correspondre à un inventaire autonome du conteneur. Ne déduisez pas d’une liste visible que vous êtes autorisé à charger ou retirer un pilote. Les opérations de chargement et de retrait relèvent d’autres commandes d’administration et peuvent affecter le système.

Utiliser les options de diagnostic

Option Rôle
-s, --syslog Envoyer les erreurs à syslog au lieu de la sortie d’erreur standard.
-v, --verbose Demander davantage de messages sur le fonctionnement du programme.
-V, --version Afficher la version du programme puis quitter.
-h, --help Afficher l’aide puis quitter.
lsmod --version
lsmod --help

-v n’ajoute pas une mesure de performance ou une description détaillée à chaque module. -s peut déplacer un diagnostic hors du terminal ; tenez-en compte lorsque vous cherchez une erreur. Consultez le manuel installé pour les options de votre version.

Le manuel lsmod du projet kmod décrit la liste et ses options. Le code officiel de lsmod montre le compteur et les modules utilisateurs affichés ; le manuel modinfo précise la consultation des métadonnées.