Agence web » Actualités du digital » Comment utiliser lsmod sous Linux (avec un exemple pratique)

Comment utiliser lsmod sous Linux (avec un exemple pratique)

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 !

Quel est lsmod?

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’une fonctionnalité spécifique – moins courante ou non universelle – elle 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, en particulier 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).

En revenant à lsmod, qui devrait être inclus dans l’installation par défaut de votre système d’exploitation Linux, cet outil répertoriera un aperçu des modules du noyau actuellement disponibles.

lsmod: Premiers regards

De façon intéressante, lsmod est un outil qui rend le contenu du (virtuel) /proc/modules fichier en un contenu plus lisible par l’homme.

le /proc/modules est un fichier virtuel de 0 octet qui, lorsqu’il est affiché avec par exemple cat ou vi, contiendra (ou mieux rendre) une liste des modules actuellement disponibles pour le noyau Linux sur le système où lsmod est en cours d’exécution.

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

cat /proc/modules | grep ahci

Affichage du contenu de /proc/modules

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

Nous pouvons voir à partir de la sortie fournie quels modules AHCI Linux Kernel sont actuellement disponibles. Sinon, la sortie semble un peu cryptique et pas très descriptive. Essayons lsmod à la place maintenant.

lsmod | grep -E '^Module|ahci'

Utiliser lsmod pour répertorier le contenu de /proc/modules dans un meilleur format et rechercher un module particulier

Ici, nous avons utilisé lsmod, un outil sans options, et utilisé grep pour saisir plusieurs résultats d’intérêt. le -E L’option 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 de tuyau (|).

Nous recherchons donc ici tout ahci occurrences (dans le deuxième sélecteur/chaîne de sélection), et toute ^Module occurrences (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 d’une 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 grep commande incluse comme grâce à la ^Module sélecteur) et les deuxième et troisième lignes répertoriant les ahci modules dont notre grep sélectionné grâce au deuxième sélecteur.

Les sorties de la colonne d’en-tête nous indiquent ce que chaque colonne contient ; la première colonne le nom du module (Module), la seconde la taille est en octets (Taille), et la troisième colonne fournit un nombre 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 se traduire par 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 »/au noyau, il n’est actuellement pas utilisé.

Astuce : si jamais vous voyez -2 à la sortie de lsmod, vous voudrez peut-être vérifier lsmod montre -2 dans la colonne « Utilisé par » sur Stackexchange.

Plonger plus profondément avec info mod

Tandis que le lsmod l’outil 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'

Utilisation de l'outil modinfo avec l'option -F (champ) pour sélectionner uniquement des champs spécifiques

Ici, nous avons utilisé le modinfo commande pour obtenir plus d’informations sur le ahci Module de noyau Linux. En particulier, nous avons utilisé le -F possibilité de modinfo pour sélectionner un domaine spécifique pour lequel nous aimerions connaître son 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 ahci Module noyau. Cette sortie est assez détaillée car elle inclut la signature des données clés, etc.

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

Utilisation de l'outil modinfo en combinaison avec grep pour sélectionner plusieurs champs à la fois

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. Vérifier man modinfopour voir toutes les options disponibles.

Emballer

Dans cet article, nous avons exploré l’option sans option lsmod outil et la 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 le modinfo commande sous Linux. Nous avons également examiné comment nous pouvons 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 nos articles Comment utiliser ltrace pour suivre les appels de bibliothèque et Comment travailler avec les dépendances d’objets partagés (bibliothèque) dans Linux. Profitez!

★★★★★