Comment vérifier si un pilote spécifique est chargé sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si un pilote (driver) spécifique est chargé dans Linux. Les pilotes, souvent implémentés sous forme de modules noyau (kernel modules), sont essentiels pour interagir avec le matériel (hardware). Vous allez explorer trois méthodes pour y parvenir : lister tous les modules chargés à l'aide de la commande lsmod, examiner le fichier /proc/modules pour obtenir des informations détaillées sur leur statut, et vérifier les informations spécifiques d'un pilote avec la commande modinfo.

En effectuant ces étapes, vous acquerrez des compétences pratiques pour identifier et comprendre le statut des pilotes dans votre système Linux, ce qui est crucial pour résoudre les problèmes matériels et pour l'administration système.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicSystemCommandsGroup -.-> linux/printf("Text Formatting") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") subgraph Lab Skills linux/echo -.-> lab-558755{{"Comment vérifier si un pilote spécifique est chargé sous Linux"}} linux/printf -.-> lab-558755{{"Comment vérifier si un pilote spécifique est chargé sous Linux"}} linux/ls -.-> lab-558755{{"Comment vérifier si un pilote spécifique est chargé sous Linux"}} linux/cat -.-> lab-558755{{"Comment vérifier si un pilote spécifique est chargé sous Linux"}} linux/ps -.-> lab-558755{{"Comment vérifier si un pilote spécifique est chargé sous Linux"}} end

Lister les pilotes (drivers) avec lsmod

Dans cette étape, vous apprendrez à lister les modules noyau (kernel modules) actuellement chargés, qui sont souvent appelés pilotes dans le contexte du matériel (hardware). Les modules noyau sont des morceaux de code qui peuvent être chargés et déchargés dans le noyau (kernel) selon les besoins, permettant d'étendre les fonctionnalités du noyau sans avoir à redémarrer le système.

La commande que nous allons utiliser est lsmod. Cette commande est utilisée pour afficher le statut des modules dans le noyau Linux.

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez trouver l'icône Xfce Terminal sur le côté gauche de votre bureau.

Tapez la commande suivante et appuyez sur Entrée :

lsmod

Vous verrez une sortie similaire à celle-ci :

Module                  Size  Used by
...
snd_hda_codec_generic    ...   ...
ledtrig_audio          ...   ...
snd_hda_codec_hdmi     ...   ...
snd_hda_intel          ...   ...
snd_intel_dspcfg       ...   ...
snd_hda_codec          ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_hda_core           ...   ...   snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep              ...   ...   snd_hda_codec
snd_pcm                ...   ...   snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep
snd_seq_midi           ...   ...
snd_seq_midi_event     ...   ...   snd_seq_midi
snd_rawmidi            ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq                ...   ...   snd_seq_midi,snd_seq_midi_event
snd_seq_device         ...   ...   snd_seq_midi,snd_rawmidi,snd_seq
snd_timer              ...   ...   snd_pcm,snd_seq
snd                    ...   ...   snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer
soundcore              ...   ...   snd
...

La sortie de lsmod comporte trois colonnes :

  • Module : Le nom du module noyau.
  • Size : La taille du module en octets.
  • Used by : Une liste des autres modules qui utilisent ce module, ainsi que le nombre de fois où il est utilisé.

Cette commande est très utile pour voir quels pilotes sont actuellement actifs sur votre système.

Cliquez sur Continue pour passer à l'étape suivante.

Vérifier le statut des pilotes (drivers) avec cat /proc/modules

Dans cette étape, vous allez explorer une autre façon de visualiser les informations sur les modules noyau (kernel modules) chargés en examinant le fichier /proc/modules. Le système de fichiers /proc est un système de fichiers virtuel qui fournit des informations sur les processus et d'autres informations système.

Le fichier /proc/modules contient des informations similaires à la sortie de la commande lsmod, mais dans un format légèrement différent. Nous allons utiliser la commande cat pour afficher le contenu de ce fichier.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /proc/modules

Vous verrez une sortie similaire à celle-ci :

snd_hda_codec_generic ... ... - Live 0xffffffff...
ledtrig_audio ... ... - Live 0xffffffff...
snd_hda_codec_hdmi ... ... - Live 0xffffffff...
snd_hda_intel ... ... - Live 0xffffffff...
snd_intel_dspcfg ... ... - Live 0xffffffff...
snd_hda_codec ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel, Live 0xffffffff...
snd_hda_core ... ... snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec, Live 0xffffffff...
snd_hwdep ... ... snd_hda_codec, Live 0xffffffff...
snd_pcm ... ... snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hwdep, Live 0xffffffff...
snd_seq_midi ... ... - Live 0xffffffff...
snd_seq_midi_event ... ... snd_seq_midi, Live 0xffffffff...
snd_rawmidi ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq ... ... snd_seq_midi,snd_seq_midi_event, Live 0xffffffff...
snd_seq_device ... ... snd_seq_midi,snd_rawmidi,snd_seq, Live 0xffffffff...
snd_timer ... ... snd_pcm,snd_seq, Live 0xffffffff...
snd ... ... snd_hda_codec_generic,ledtrig_audio,snd_hda_codec_hdmi,snd_hda_intel,snd_intel_dspcfg,snd_hda_codec,snd_hda_core,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_seq_device,snd_timer, Live 0xffffffff...
soundcore ... ... snd, Live 0xffffffff...
...

Les colonnes dans le fichier /proc/modules représentent :

  1. Nom du module
  2. Taille du module
  3. Nombre de fois que le module est utilisé
  4. Si le module est chargé (Live) ou en cours de déchargement (Loading ou Unloading)
  5. Offset mémoire du module (c'est la partie 0xffffffff...)
  6. Modules dépendants (similaire à la colonne "Used by" dans la sortie de lsmod)

Bien que lsmod soit généralement la commande préférée pour visualiser les modules chargés, il est important de comprendre que ces informations sont également disponibles dans le système de fichiers /proc pour une introspection plus approfondie du système.

Cliquez sur Continue pour passer à l'étape suivante.

Vérifier les détails d'un pilote (driver) avec modinfo

Dans cette étape, vous apprendrez à obtenir des informations détaillées sur un module noyau (kernel module) spécifique en utilisant la commande modinfo. Cette commande peut fournir des détails tels que le nom de fichier du module, l'auteur, la description, la licence et les paramètres.

Récupérons des informations sur le module snd_hda_intel, qui est lié aux pilotes audio.

Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

modinfo snd_hda_intel

Vous verrez une sortie similaire à celle-ci :

filename:       /lib/modules/.../kernel/sound/hda/snd-hda-intel.ko
description:    Intel HDA driver
license:        GPL v2
srcversion:     ...
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc01i00*
alias:          pci:v00008086d0000...sv*sd*bc04sc03i00*
...
depends:        snd-hda-codec,snd-pcm,snd-hda-core,snd-hwdep,snd-timer,snd
retpoline:      Y
intree:         Y
name:           snd_hda_intel
vermagic:       ... SMP mod_unload
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        ...
sig_hashalgo:   sha512
signature:      ...
parm:           bdl_pos_adj:Adjust the BDL position (int)
parm:           probe_mask:Bitmask of codec probe options.
                bit 0: force codec probe
                bit 1: allow probing codecs with basic capabilities
                bit 2: allow probing codecs with no capabilities
                (int)
parm:           enable_msi:Enable MSI (int)
parm:           enable_msix:Enable MSI-X (int)
parm:           model:Use the specified codec model.
                See Documentation/sound/kernel-modules-aliases.txt for details. (charp)
parm:           patch:Load the specified patch file. (charp)
parm:           power_save:Automatic power-saving timeout (in ms, 0 to disable). (int)
parm:           power_save_controller:Controller power-saving timeout (in ms, 0 to disable). (int)
parm:           pm_blacklist:Force non-power-save mode (D0) (bool)
parm:           position_fix:DMA pointer position fix (0, 1, 2) (int)
parm:           probe_only_force:Only probe codecs with force option (bool)
parm:           single_cmd:Use single command to communicate with codecs (bool)
parm:           snoop:Enable/disable snoop mode (bool)
parm:           jackpoll_ms:Polling interval for jack events (in ms, 0 to disable). (int)

Cette sortie fournit une foule d'informations sur le module snd_hda_intel, y compris son emplacement dans le système de fichiers (filename), une brève description, la licence sous laquelle il est distribué et divers paramètres qui peuvent être utilisés pour configurer son comportement.

Comprendre comment utiliser modinfo est crucial pour résoudre les problèmes liés aux pilotes ou pour en savoir plus sur les capacités et les options spécifiques d'un module noyau.

Cliquez sur Continue pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, vous avez appris à vérifier si un pilote (driver) spécifique est chargé sous Linux. Vous avez commencé par utiliser la commande lsmod pour lister tous les modules noyau (kernel modules) actuellement chargés, qui sont souvent appelés pilotes. Cette commande fournit des informations sur le nom du module, sa taille et quels autres modules l'utilisent.

Vous avez également appris que vous pouvez vérifier le statut des pilotes chargés en examinant le contenu du fichier /proc/modules à l'aide de la commande cat. Enfin, vous avez découvert comment utiliser la commande modinfo pour obtenir des informations détaillées sur un pilote spécifique, telles que son nom de fichier, son auteur, sa description et ses paramètres. Ces étapes offrent une approche complète pour vérifier la présence et les détails des pilotes chargés dans votre système Linux.