Comment utiliser lsmod sous Linux (avec un exemple pratique)

0
209

Le noyau Linux est un mystère pour la plupart, mais ce n'est pas nécessaire ! Bienvenue dans le monde passionnant de lsmod, un outil qui vous permet de voir quels modules le noyau utilise, et plus encore !

Qu'est-ce que lsmod ?

Pour expliquer lsmod, l'outil qui permet de lister les modules dans le noyau Linux, il faut d'abord comprendre ce qu'est un module. Un module Linux est un morceau de code modulaire (s'exécutant dans un format compilé) qui peut être chargé ou déchargé à volonté du noyau Linux. Le principal avantage de l'utilisation de ces modules est leur modularité et leur granularité.

Vous pouvez considérer les modules Kernel comme des plugins dans d'autres logiciels. Chaque fois que vous avez besoin d'un – moins courant ou pas universel – fonctionnalité, il sera disponible sous forme de plugin, ou dans le cas du noyau Linux sous forme de module. Il y a peu de différence entre un plugin dans d'autres logiciels et les modules du noyau Linux. Cependant, le niveau auquel ils fonctionnent est beaucoup plus proche du matériel et du logiciel d'exploitation de base, plutôt qu'à la fin de la pile au niveau de l'utilisateur.

Par exemple, le pilote de votre carte graphique – surtout si vous utilisez des pilotes NVidia – est chargé en tant que module Kernel. Lorsque vous installez le pilote, un module noyau est configuré et chargé (éventuellement au prochain redémarrage de votre système).

Revenons à lsmod, qui devrait être inclus dans l'installation par défaut de votre système d'exploitation Linux, cet outil listera un aperçu des modules du noyau qui sont actuellement disponibles.

lsmod : premiers aperçus

Fait intéressant, lsmod est un outil qui rend le contenu du fichier (virtuel) /proc/modules en un contenu plus lisible par l'homme.

Publicité

Le fichier /proc/modules est un fichier virtuel de 0 octet qui, lorsqu'il est visualisé avec par exemple cat ou vi, contiendra (ou mieux render) une liste de modules actuellement disponibles pour le noyau Linux sur le système sur lequel lsmod est exécuté.

Commençons par vérifier dans le contenu du fichier /proc/modules la présence d'un module de noyau Linux AHCI (Advanced Host Controller Interface) :

cat /proc/modules | grep ahci

Ici, nous utilisons cat pour afficher (render) le contenu de /proc/modules, et ensuite utiliser grep to grep pour le module AHCI. Notez que nous n'avons pas spécifié l'option -i (qui ferait une recherche insensible à la casse) à grep, car la liste complète des modules /proc/modules est uniquement en minuscules.

Nous pouvons le voir à partir de la sortie à condition que les modules AHCI Linux Kernel soient actuellement disponibles. Sinon, la sortie semble un peu cryptique et pas très descriptive. Essayons plutôt lsmod maintenant.

lsmod | grep -E '^Module|ahci'

Ici, nous avons utilisé lsmod, un outil sans options, et utilisé grep pour saisir plusieurs résultats intéressants. L'option -E de grep nous permet de créer une liste de sélection/sélection (chaînes) d'éléments que nous voulons voir, tous séparés par un ou plusieurs symboles pipe (|).

Publicité

Ici, nous recherchons donc toutes les occurrences ahci (dans le deuxième sélecteur/chaîne de sélection), et toutes les occurrences ^Module (dans le premier sélecteur/chaîne de sélection), où le ^ est une expression régulière (applicable au premier sélecteur uniquement), en sélectionnant le début de ligne, indiquant que nous voulons voir uniquement les résultats où le début de ligne est immédiatement suivi de ‘Module’ et ce serait notre première ligne d'en-tête.

Nous voyons la sortie maintenant bien rendue ; la première ligne (que notre commande grep a incluse grâce au sélecteur ^Module) et les deuxième et troisième lignes répertoriant les modules ahci que notre grep a sélectionnés en raison du deuxième sélecteur.

Les sorties de la colonne d'en-tête nous le disent ce que chaque colonne contient ; la première colonne le nom du module (Module), la seconde la taille est en octets (Size), et la troisième colonne fournit un compte de références ( Utilisé par), ou en d'autres termes combien de fois un module est référencé (ce qui peut peut-être vaguement être traduit en utilisé) par le noyau.

Si le compteur de référence dans la troisième colonne est zéro, cela signifie que pendant que le module est disponible “dans”/vers le noyau, il n'est pas actuellement utilisé.

Astuce : si jamais vous voyez -2 dans la sortie de lsmod, vous voudrez peut-être vérifier lsmod affiche -2 dans le champ “Utilisé par” colonne sur Stackexchange.

Plonger plus profondément avec modinfo

Alors que l'outil lsmod n'a pas d'options lui-même, nous pouvons utiliser un autre utilitaire en combinaison avec lsmod pour découvrir plus d'informations : modinfo.

modinfo ahci -F 'description' modinfo ahci -F 'author'

Publicité

Ici, nous avons utilisé la commande modinfo pour obtenir plus d'informations sur le module ahci Linux Kernel. En particulier, nous avons utilisé l'option -F de modinfo pour sélectionner un champ spécifique dont nous aimerions connaître le contenu. Notez que si vous exécutez modinfo ahci sans aucune option, vous verrez une liste complète de toutes les informations disponibles sur le module ahci Kernel. Cette sortie est assez détaillée car elle inclut les données de clé de signature, etc.

Nous aurions également pu utiliser grep de la même manière que nous l'avons fait précédemment pour sélectionner les deux informations dans une seule commande. Pour ce faire, nous utilisons modinfo ahci | grep -E 'description|author', qui restitue la même sortie de deux lignes, bien que directement l'une sous l'autre.

< /p>

Notez également que l'on pourrait à nouveau utiliser l'expression régulière ' pour sélectionner uniquement les chaînes de sortie qui commencent au début de la ligne (pour les deux champs recherchés), c'est-à-dire modinfo ahci | grep -E '^description|^author'

Contrairement à lsmod, modinfo a quelques autres options qui peuvent être intéressantes. Consultez man modinfopour voir toutes les options disponibles.

Résumé

Dans cet article, nous avons exploré l'outil lsmod sans option et le une sortie pratique qu'il nous fournit, nous montrant quels modules du noyau Linux sont disponibles et combien de fois chacun de ces modules du noyau est actuellement référencé (“utilisé”) par le noyau. Nous avons également examiné comment obtenir plus d'informations sur un module spécifique en utilisant la commande modinfo sous Linux. Nous avons également examiné comment utiliser grep -E pour obtenir deux informations à la fois en utilisant plusieurs chaînes de sélection à rechercher.

Si vous avez aimé lire cet article, consultez notre Comment utiliser ltrace aux appels de bibliothèque de suivi et comment travailler avec les dépendances d'objets partagés (bibliothèque) dans les articles Linux. Profitez-en !