Les commandes de gestion des périphériques
Mise à jour :
La gestion des périphériques sous Linux repose sur un système puissant mais
parfois méconnu. Entre les fichiers de périphériques dans /dev, les commandes
comme lspci ou lsusb, et la gestion dynamique par udev, Linux offre tous
les outils nécessaires pour identifier, configurer et surveiller vos composants
matériels. Ce guide propose un tour d’horizon des principales commandes pour
explorer et comprendre votre matériel efficacement.
Quelques concepts de base
Sous Linux, la gestion du matériel repose sur une architecture bien définie, qui assure la communication entre les composants physiques et le système d’exploitation. Cette interaction est essentielle pour garantir que chaque périphérique – disque dur, carte réseau, clé USB – fonctionne correctement et soit exploitable par les applications.
L’abstraction matérielle
Linux utilise des pilotes (drivers) pour faire le lien entre le matériel et le noyau. Chaque pilote est conçu pour un type précis de périphérique : carte graphique, contrôleur USB, carte réseau, etc. Le pilote permet au noyau d’interagir avec le matériel sans avoir à gérer directement les particularités techniques de chaque composant.
- Exemple : quand vous branchez une clé USB, le noyau ne sait pas par défaut comment lire ce matériel. Le pilote USB va traduire les signaux électriques en opérations compréhensibles par Linux.
La chaîne de gestion
Le processus de reconnaissance et de gestion du matériel suit plusieurs étapes :
- Matériel : un périphérique envoie des signaux électriques lorsqu’il est branché ou utilisé.
- Pilote (driver) : ce pilote traduit ces signaux en instructions exploitables par le système.
- Noyau : le noyau Linux traite ces instructions et crée une interface pour l’utilisateur.
- Système de fichiers
/dev: chaque périphérique est exposé sous forme d’un fichier spécial, permettant au système et aux applications d’interagir avec lui simplement via des opérations de lecture/écriture.
Interruptions matérielles (IRQ)
Les périphériques ont souvent besoin d’attirer l’attention du processeur pour signaler qu’une tâche est terminée ou qu’un événement s’est produit (par exemple, une touche pressée sur un clavier). Linux gère cela à travers les Interruptions Matérielles (IRQ). Chaque périphérique se voit attribuer un numéro d’interruption unique, qui permet au système de savoir quel matériel demande son attention.
Modules du noyau
Les pilotes sont souvent intégrés sous forme de modules du noyau, qui peuvent être chargés ou déchargés dynamiquement. Cela permet de gérer efficacement les périphériques sans redémarrer le système :
lsmod # Liste les modules actuellement chargéssudo modprobe usb-storage # Charge le module pour les périphériques de stockage USBsudo modprobe -r usb-storage # Décharge ce moduleExemple concret : branchement d’une clé USB
Prenons un scénario courant pour comprendre le fonctionnement en pratique :
- Vous branchez une clé USB.
- Le matériel envoie un signal électrique détecté par le noyau.
- Le noyau identifie le type de périphérique et recherche le pilote
approprié (par exemple, le module
usb-storagepour une clé USB). - Une fois le pilote chargé (automatiquement via
udev), le périphérique est exposé sous forme d’un fichier dans/dev, tel que/dev/sdb. - Le système peut alors monter la clé et la rendre accessible via un point de
montage, par exemple
/media/usb.
udev : le gestionnaire de périphériques
udev est un élément clé de la gestion matérielle sous Linux. Il agit comme
un gestionnaire dynamique de périphériques, permettant la détection et la
configuration automatique des matériels dès qu’ils sont connectés ou
déconnectés. C’est lui qui crée ou supprime les fichiers dans le répertoire
/dev en temps réel.
Fonctionnement de udev
Lorsqu’un périphérique est branché (par exemple, une clé USB), le noyau Linux
envoie un événement matériel. udev intercepte cet événement, identifie le
périphérique, charge le pilote nécessaire si besoin, et crée un fichier spécial
sous /dev.
Schéma simplifié du processus :
- Événement matériel ➔ Noyau ➔ udev ➔ Création du fichier
/dev
Cela permet au système d’être immédiatement prêt à utiliser le matériel, sans intervention manuelle.
Règles udev
Le comportement de udev est contrôlé par des règles, situées principalement dans les dossiers :
/etc/udev/rules.d//lib/udev/rules.d/
Chaque règle définit comment udev doit gérer un périphérique : nommage personnalisé, permissions spécifiques, ou lancement de scripts.
Exemple simple de règle udev (dans /etc/udev/rules.d/10-usb.rules) :
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="abcd", ATTR{idProduct}=="1234", SYMLINK+="mon_usb"Cette règle crée un lien symbolique /dev/mon_usb pour tout périphérique USB
correspondant à l’ID abcd:1234.
Commandes udevadm
-
Surveiller les événements matériels en temps réel
Pour voir en direct ce qui se passe lorsque vous connectez ou déconnectez un périphérique :
Terminal window udevadm monitorCette commande affiche les événements du noyau et les actions prises par udev :
KERNEL[1534.5678] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1 (usb)UDEV [1534.5690] add /devices/pci0000:00/0000:00:1d.0/usb2/2-1 (usb) -
Lister les informations sur un périphérique
Pour obtenir toutes les propriétés d’un périphérique (par exemple
/dev/sdb1) :Terminal window udevadm info --name=/dev/sdb1Cela affichera des informations détaillées sur le périphérique, y compris son numéro de série, son type, et d’autres attributs.
-
Recharger les règles udev
Après avoir modifié une règle, vous pouvez demander à udev de recharger ses règles avec :
Terminal window sudo udevadm control --reloadEt pour appliquer immédiatement ces règles à un périphérique déjà branché :
Terminal window sudo udevadm trigger
Comprendre les fichiers de périphériques dans /dev
Dans Linux, chaque périphérique matériel est représenté par un fichier
spécial situé dans le répertoire /dev. Cette approche suit le principe « tout
est fichier » : un disque dur, un port série ou même une souris peuvent être
manipulés comme n’importe quel fichier par le système d’exploitation.
Le répertoire /dev contient des fichiers de périphériques qui servent
d’interface entre le noyau et le matériel. Lorsqu’une application souhaite
interagir avec un périphérique (par exemple, lire un fichier sur un disque),
elle passe par ce fichier spécial.
Exemple de commande pour lister les périphériques :
ls -l /devVous y verrez des entrées comme :
brw-rw---- 1 root disk 8, 0 mai 3 10:00 /dev/sdacrw-rw---- 1 root tty 4, 0 mai 3 10:00 /dev/tty0Il existe deux grandes catégories de fichiers de périphériques :
-
Périphériques de caractères (type
c) Ils transmettent les données caractère par caractère. C’est le cas des terminaux (/dev/tty), des ports série ou des périphériques audio. -
Périphériques de blocs (type
b) Ils gèrent les données en blocs, ce qui est plus efficace pour les disques durs, les clés USB ou les partitions (/dev/sda,/dev/sdb1).
Chaque fichier est identifié par deux numéros :
- Numéro majeur : identifie le type de périphérique (le pilote utilisé).
- Numéro mineur : identifie l’instance spécifique du périphérique.
Vous pouvez consulter ces numéros avec la commande ls -l, comme vu
précédemment.
Pour obtenir des informations détaillées sur un fichier de périphérique, utilisez :
stat /dev/sdaExemple de sortie :
File: /dev/sda Size: 0 Blocks: 0 IO Block: 4096 block special fileDevice: 0,5 Inode: 337 Links: 1 Device type: 8,0Access: (0660/brw-rw----) Uid: ( 0/ root) Gid: ( 6/ disk)```Cela vous permet de vérifier le type exact du périphérique et ses identifiants système.
Obtenir des informations détaillées sur le matériel avec lshw
La commande lshw (Hardware Lister) est un outil puissant qui permet
d’afficher des informations détaillées sur l’ensemble du matériel de votre
système : processeur, mémoire, cartes réseau, stockage… Contrairement à lspci
ou lsusb, qui se concentrent sur des bus spécifiques, lshw donne une vue
globale de la machine.
lshw interroge directement le noyau et les interfaces systèmes pour récupérer
des données techniques précises, notamment sur :
- La carte mère
- Le processeur (CPU)
- La mémoire (RAM)
- Les périphériques de stockage (HDD, SSD)
- Les interfaces réseau
Pour afficher toutes les informations disponibles sur votre matériel :
sudo lshwL’utilisation de sudo est fortement conseillée pour accéder aux détails des
périphériques bas niveau (par exemple, les disques).
Si vous cherchez un aperçu rapide sans entrer dans les détails :
sudo lshw -shortExemple de sortie :
H/W path Device Class Description=========================================================== system UM250 (Default string)/0 bus UM250/0/0 memory 64KiB BIOS/0/9 memory 40GiB System Memory/0/9/0 memory 32GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0,4 n/0/9/1 memory 8GiB SODIMM DDR4 Synchronous Unbuffered (Unregistered) 2666 MHz (0,4 ns/0/b memory 384KiB L1 cache/0/c memory 2MiB L2 cache/0/d memory 4MiB L3 cache/0/e processor AMD Ryzen Embedded V1605B with Radeon Vega Gfx/0/100 bridge Raven/Raven2 Root Complex/0/100/0.2 generic Raven/Raven2 IOMMU/0/100/1.1 bridge Raven/Raven2 PCIe GPP Bridge [6:0]/0/100/1.1/0 enp1s0 network Ethernet Controller I225-V/0/100/1.3 bridge Raven/Raven2 PCIe GPP Bridge [6:0]/0/100/1.3/0 wlo1 network Wireless 7265/0/100/8.1 bridge Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A/0/100/8.1/0 display Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series]/0/100/8.1/0.1 card0 multimedia Raven/Raven2/Fenghuang HDMI/DP Audio ControllerVous pouvez filtrer les résultats pour n’afficher qu’une catégorie précise de périphériques :
- Pour les cartes réseau :
sudo lshw -C network- Pour le stockage :
sudo lshw -C storage- Pour la mémoire :
sudo lshw -C memoryVous pouvez exporter les résultats en XML, HTML ou JSON pour les intégrer dans des rapports ou des outils externes.
- Format HTML :
sudo lshw -html > rapport_hardware.html- Format JSON (selon la version) :
sudo lshw -jsonExemple pratique
Pour vérifier si votre carte réseau dispose bien du bon pilote et des bonnes options :
sudo lshw -C networkExemple de sortie :
*-network description: Ethernet interface product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. configuration: driver=r8169Cela vous permet de vérifier à la fois le matériel détecté et le driver (pilote) utilisé par Linux.
En utilisant efficacement lshw, vous bénéficiez d’une vision complète de
la configuration matérielle de votre système, un atout précieux pour le
dépannage, l’inventaire matériel, ou encore la préparation d’une migration ou
d’une mise à jour.
Identifier les périphériques PCI avec lspci
Le bus PCI (Peripheral Component Interconnect) est utilisé pour connecter
une grande variété de périphériques matériels internes : cartes réseau, cartes
graphiques, contrôleurs SATA, etc. La commande lspci permet d’identifier
tous les périphériques connectés à ce bus, ce qui est particulièrement utile
pour diagnostiquer ou documenter la configuration matérielle d’une machine.
Pour lister tous les périphériques PCI présents sur votre machine :
lspciExemple de sortie :
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Root Complex00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 IOMMU00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0]00:01.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 PCIe GPP Bridge [6:0]00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus A00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Internal PCIe GPP Bridge 0 to Bus B00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 000:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Raven/Raven2 Device 24: Function 1Cela vous donne un aperçu rapide des composants majeurs.
Pour obtenir des informations plus précises sur chaque périphérique, utilisez
l’option -v (verbose) :
lspci -vCela affiche les détails comme les ressources allouées (IRQ, entrées/sorties mémoire), le module du noyau utilisé, etc.
Vous pouvez ajouter l’option -nn pour afficher les identifiants numériques du
fabricant et du périphérique. Ces identifiants sont très pratiques pour
rechercher des pilotes compatibles ou identifier précisément un matériel non
reconnu.
lspci -nnExemple :
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] [10de:1c82] (rev a1)Ici, 10de est l’ID fabricant (NVIDIA) et 1c82 est l’ID du modèle (GTX 1050
Ti).
Pour voir la configuration brute d’un périphérique PCI :
lspci -xCela affiche les registres hexadécimaux de la configuration PCI, utile pour des diagnostics avancés.
La commande lspci utilise une base de données locale pour associer les
identifiants PCI à des noms lisibles. Pour mettre à jour cette base (utile après
installation d’un nouveau matériel) :
sudo update-pciidsExemple d’utilisation
Pour rechercher uniquement votre carte graphique :
lspci | grep VGAExemple :
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series] (rev 83)Cela permet de vérifier rapidement que le système détecte correctement votre carte vidéo.
Identifier les périphériques USB avec lsusb
Le bus USB (Universal Serial Bus) est omniprésent : clés USB, disques
externes, claviers, souris, webcams… Tous ces périphériques peuvent être listés
et identifiés avec la commande lsusb. Cet outil est indispensable pour
diagnostiquer des problèmes liés aux périphériques externes ou vérifier leur
bonne détection par le système.
Pour afficher la liste des périphériques USB connectés :
lsusbExemple de sortie :
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubBus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 003 Device 002: ID 1a40:0101 Terminus Technology Inc. HubBus 003 Device 003: ID 0d8c:0014 C-Media Electronics, Inc. Audio Adapter (Unitek Y-247A)Bus 003 Device 004: ID 8087:0a2a Intel Corp. Bluetooth wireless interfaceBus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hubCela indique le bus USB, le numéro de périphérique, ainsi que l’ID fournisseur:produit et le nom du périphérique reconnu.
Pour obtenir des informations complètes sur chaque périphérique (interfaces, protocoles, alimentations…), utilisez :
lsusb -vAttention, cette commande peut générer beaucoup d’informations si plusieurs périphériques sont branchés.
Pour cibler un seul périphérique (par exemple Bus 002 Device 003), vous pouvez
préciser l’adresse :
lsusb -s 002:003 -vCela vous donnera tous les détails techniques uniquement pour ce périphérique.
Pour afficher l’arborescence des périphériques USB (utile pour voir comment chaque périphérique est connecté) :
lsusb -tExemple :
/: Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 480M/: Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/4p, 10000M/: Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M |__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M |__ Port 001: Dev 003, If 0, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 001: Dev 003, If 1, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 001: Dev 003, If 2, Class=Audio, Driver=snd-usb-audio, 12M |__ Port 001: Dev 003, If 3, Class=Human Interface Device, Driver=usbhid, 12M |__ Port 002: Dev 004, If 0, Class=Wireless, Driver=btusb, 12M |__ Port 002: Dev 004, If 1, Class=Wireless, Driver=btusb, 12M/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000MCela montre la structure physique des ports et les pilotes utilisés.
Chaque périphérique USB possède un identifiant unique sous la forme ID 1234:abcd :
- Les 4 premiers caractères (exemple :
1234) correspondent à l’ID fournisseur. - Les 4 suivants (exemple :
abcd) correspondent à l’ID produit.
Ces identifiants peuvent être utilisés pour rechercher des informations sur le matériel (via des bases comme Linux USB Database ↗) ou pour écrire des règles udev personnalisées.
Exemple pratique
Pour détecter si une imprimante USB est reconnue par le système :
lsusb | grep -i printerS’il n’y a aucun résultat, cela signifie que l’imprimante n’est pas détectée par le bus USB.
Visualiser la hiérarchie des périphériques de blocs avec lsblk
La commande lsblk (List Block Devices) permet d’afficher la hiérarchie
complète des périphériques de bloc : disques durs, SSD, clés USB,
partitions, etc. Elle est particulièrement utile pour vérifier la structure des
disques et des systèmes de fichiers.
Pour lister tous les périphériques de bloc détectés par le système :
lsblkExemple de sortie :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 500G 0 disk├─sda1 8:1 0 450G 0 part /└─sda2 8:2 0 50G 0 part /homesdb 8:16 1 16G 0 disk└─sdb1 8:17 1 16G 0 part /media/usbCette représentation en arborescence montre la relation entre les disques
physiques (ex. : sda, sdb) et leurs partitions (ex. : sda1, sda2).
Pour voir également les types de systèmes de fichiers utilisés (ext4, ntfs, etc.) :
lsblk -fExemple :
NAME FSTYPE LABEL UUID MOUNTPOINTsda├─sda1 ext4 a1b2c3d4-e5f6-7890-abcd-ef1234567890 /└─sda2 ext4 b2c3d4e5-f678-9012-abcd-ef2345678901 /homesdb└─sdb1 vfat CAFE-1234 /media/usbPour afficher des colonnes supplémentaires (type de périphérique, taille, point de montage…) :
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID,MODELCela permet d’avoir une vue complète des attributs des périphériques de bloc.
Par défaut, lsblk n’affiche que les périphériques de bloc. Pour voir
également les périphériques vides ou non montés :
lsblk -aVous pouvez limiter l’affichage à un disque spécifique :
lsblk /dev/sdbCela vous montrera uniquement les détails de ce périphérique.
Exemple pratique
Pour vérifier si votre clé USB est bien reconnue et montée :
lsblk -f | grep /mediaCela affiche toutes les partitions montées sous /media, souvent utilisées pour
les supports amovibles.
Alternative : blkid
Bien que lsblk soit l’outil de choix pour visualiser la hiérarchie, la
commande blkid permet d’identifier rapidement un périphérique grâce à son
UUID ou son type de système de fichiers :
sudo blkidExemple :
/dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4"/dev/sdb1: UUID="CAFE-1234" TYPE="vfat"Autres commandes utiles pour l’information matérielle
En plus des classiques lspci, lsusb ou lsblk, Linux propose plusieurs
autres commandes précieuses pour explorer le matériel en profondeur. Ces
outils apportent des informations complémentaires sur le BIOS, les composants
internes et la configuration système.
dmidecode
La commande dmidecode extrait des informations depuis la table DMI
(Desktop Management Interface), qui contient des détails sur le matériel tels
que :
- Le fabricant de la carte mère
- Le modèle et la version du BIOS
- La taille et les emplacements de la mémoire RAM
Commande de base :
sudo dmidecodeExemple de sortie (partielle) :
System Information Manufacturer: Dell Inc. Product Name: XPS 13 9370 Serial Number: ABCDEF1Pour cibler une section précise, par exemple la mémoire :
sudo dmidecode -t memoryinxi
inxi est un script très complet qui donne des informations sur le
matériel, mais aussi sur le système et l’environnement logiciel. Très pratique
pour un résumé rapide de la configuration d’une machine.
Installation (si besoin) :
sudo apt install inxiCommande recommandée :
inxi -FxzExemple de sortie (partielle) :
CPU: Quad Core Intel Core i5-8250UGraphics: Intel UHD Graphics 620Drives: 500GB SSDNetwork: Intel Wireless 8265 / Realtek RTL8111hwinfo
hwinfo est une alternative à lshw qui scanne l’ensemble du matériel de
votre machine. Très utilisé pour diagnostiquer les périphériques non détectés ou
obtenir des détails bruts.
Installation :
sudo apt install hwinfoCommande générale :
sudo hwinfoPour cibler uniquement certains composants (par exemple, le réseau) :
sudo hwinfo --networklscpu
Pour afficher uniquement les informations du CPU :
lscpuExemple :
Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Address sizes: 43 bits physical, 48 bits virtual Byte Order: Little EndianCPU(s): 8 On-line CPU(s) list: 0-7Vendor ID: AuthenticAMD Model name: AMD Ryzen Embedded V1605B with Radeon Vega Gfx CPU family: 23 Model: 17 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 Stepping: 0 Frequency boost: enabled CPU(s) scaling MHz: 74% CPU max MHz: 2000,0000 CPU min MHz: 1600,0000 BogoMIPS: 3992,26 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc c puid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe pop cnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx c pb hw_pstate ssbd ibpb vmmcall fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overfl ow_recov succor smca sev sev_esVirtualization features: Virtualization: AMD-VCaches (sum of all): L1d: 128 KiB (4 instances) L1i: 256 KiB (4 instances) L2: 2 MiB (4 instances) L3: 4 MiB (1 instance)NUMA: NUMA node(s): 1 NUMA node0 CPU(s): 0-7Vulnerabilities: Gather data sampling: Not affected Itlb multihit: Not affected L1tf: Not affected Mds: Not affected Meltdown: Not affected Mmio stale data: Not affected Reg file data sampling: Not affected Retbleed: Mitigation; untrained return thunk; SMT vulnerable Spec rstack overflow: Mitigation; Safe RET Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP disabled; RSB filling; PBRSB-eIBRS Not affect ed; BHI Not affected Srbds: Not affected Tsx async abort: Not affectedGestion des modules du noyau avec modprobe et lsmod
Le noyau Linux utilise des modules pour gérer de nombreux composants matériels. Ces modules sont des morceaux de code qui peuvent être chargés ou déchargés dynamiquement, permettant au noyau de s’adapter en temps réel aux périphériques présents sur la machine.
La commande lsmod affiche tous les modules actuellement chargés dans le
noyau.
lsmodExemple de sortie :
usb_storage 69632 1r8169 94208 0i915 2529280 3Colonnes principales :
- Module : nom du module.
- Size : taille du module en mémoire.
- Used by : combien d’instances utilisent ce module.
Cela permet de vérifier si un module (par exemple, pour une carte réseau) est bien chargé.
Pour charger un module spécifique (par exemple usb-storage pour un
périphérique USB de stockage) :
sudo modprobe usb-storageCette commande s’occupe aussi de charger automatiquement les éventuelles dépendances du module.
Pour retirer un module de la mémoire (s’il n’est plus utilisé) :
sudo modprobe -r usb-storageAttention : vous ne pouvez retirer un module que s’il n’est pas utilisé activement par le système (le compteur “Used by” doit être à 0).
Pour vérifier que le module a bien été chargé ou déchargé, combinez :
lsmod | grep usb_storageLa commande modinfo permet d’obtenir des détails sur un module :
description, licence, dépendances, alias matériels…
modinfo usb-storageExemple :
description: USB Mass Storage driver for Linuxauthor: Matthew Dharmlicense: GPLEn cas de problème matériel, il peut être utile de recharger un module (par exemple, pour réinitialiser un pilote) :
sudo modprobe -r r8169sudo modprobe r8169Les modules sont stockés dans /lib/modules/$(uname -r)/. Vous pouvez
rechercher un module précis avec :
find /lib/modules/$(uname -r) -type f -name 'usb-storage.ko*'En utilisant lsmod, modprobe et modinfo, vous avez un contrôle
fin sur la gestion des pilotes matériels de votre système Linux, ce qui est
essentiel pour résoudre des problèmes ou configurer des périphériques
spécifiques manuellement.
Surveillance des événements matériels avec dmesg
La commande dmesg (diagnostic message) est un outil essentiel pour
surveiller en temps réel les messages du noyau Linux, notamment ceux liés à
la détection et à la gestion du matériel. Elle permet de diagnostiquer les
problèmes matériels en consultant les journaux des événements survenus depuis le
démarrage du système.
À chaque fois qu’un matériel est détecté, configuré ou qu’une erreur survient, le noyau enregistre un message dans le journal système. Vous pouvez afficher ce journal avec :
sudo dmesgExemple (extrait) :
[ 10.123456] usb 2-1: new high-speed USB device number 3 using xhci_hcd[ 10.234567] usb-storage 2-1:1.0: USB Mass Storage device detectedPour cibler uniquement les messages relatifs aux périphériques USB :
sudo dmesg | grep -i usbCela est utile pour vérifier si une clé USB, une imprimante ou tout autre périphérique est bien détecté par le système.
Pour consulter uniquement les derniers messages (les plus récents apparaissant en bas) :
sudo dmesg | tailCette commande est très pratique après avoir branché un nouveau matériel.
Pour une surveillance continue des messages du noyau (comme tail -f pour les
logs) :
sudo dmesg --followCela permet de voir en direct les événements matériels sans relancer la commande.
Vous pouvez également chercher des erreurs spécifiques en filtrant avec des
mots-clés comme error, fail ou fault :
sudo dmesg | grep -i errorPar défaut, dmesg affiche les horodatages sous forme brute (en secondes depuis
le démarrage). Pour un affichage plus lisible avec les dates réelles :
sudo dmesg -TExemple pratique
Pour diagnostiquer un problème avec un disque dur externe, vous pouvez enchaîner :
dmesg | grep -i sdaCela permet de savoir si le disque /dev/sda est bien reconnu et monté sans
erreur.
Contrôle de connaissances
Pourquoi ce contrôle ?
Cet contrôle va vous permettre de valider vos connaissances sur le sujet abordé dans le guide. Il comporte des QCM, des questions vrai/faux et des réponses ouvertes à un mot.
🕒 Le chronomètre commence dès que vous cliquez sur Démarrer le test. Vous devrez terminer l’examen avant la fin du temps imparti.
🎯 Pour réussir, vous devez obtenir au moins 80% de bonnes réponses.
💡 Je ne fournis pas directement les réponses aux questions. Cependant, si certaines sont complexes, des pistes d’explication pourront être proposées dans le guide ou après l’examen.
Bonne chance ! 🚀
Conclusion
En espérant que ce guide vous ait permis de mieux comprendre et maîtriser les commandes essentielles pour gérer le matériel sous Linux, afin de diagnostiquer vos périphériques avec plus de précision et de sérénité.