lspci : Informations sur les périphériques PCI
Table des matières
La commande lspci est un utilitaire en ligne de commande sous Linux utilisé pour afficher des informations sur les périphériques PCI reconnus et détectés par le système.
Pour information, un périphérique PCI est un composant matériel informatique qui se connecte à un bus PCI (Peripheral Component Interconnect). Ce sont des cartes d'extensions qui peuvent être ajoutée à un ordinateur (ou serveur) pour étendre ses fonctionnalités telles que des cartes graphiques, carte réseau, carte son, etc. Le bus PCI est un standard de connexion largement utilisé pour permettre la communication entre le processeur et les périphériques.
lspci permet de :
- Lister tous les périphériques PCI connectés et modules PCI présents.
- Vérifier que le système reconnaît correctement nos périphériques PCI.
- Afficher des détails spécifiques sur chaque périphérique PCI, tels que l'identifiant du fabricant et du produit, la description, le pilote utilisé, etc.
La syntaxe générale de lspci est simple :
Il est conseillé d'utiliser la commande lspci en super-utilisateur pour pouvoir avoir un maximum d'informations.
Pour lister simplement les périphériques PCI :
Cet exemple affichera une liste de tous les périphériques PCI actuellement connectés à votre système, avec des informations de base comme l'identifiant du fabricant et l'identifiant du produit :
Pour l'exemple suivant :
00:1f.6 : C'est l'adresse PCI du périphérique, indiquant l'emplacement de la carte réseau Ethernet dans le système.
Ethernet controller : Cela indique le type de périphérique, dans ce cas, un contrôleur Ethernet.
Intel Corporation : C'est le fabricant du périphérique, Intel Corporation.
Ethernet Connection (6) I219-V : C'est la description du périphérique, indiquant qu'il s'agit d'une connexion Ethernet de type I219-V.
Pour avoir une vue beaucoup plus détaillée sur tous les périphériques PCI :
Le mode verbeux affiche des informations détaillées sur chaque périphérique PCI, y compris les capacités, les ressources, etc. (extrait d'un seul périphérique ici la carte réseau filaire) :
Pour afficher des informations pour un périphérique PCI spécifique avec son emplacement (bus, slot fonction) on utilisera l'option -s. Exemple ici avec la carte graphique Iris Plus Graphics 655 :
Pour afficher des informations sur les drivers utilisés par les différents périphérique PCI, on pourra utiliser l'option -k :
Exemple ici avec un extrait d'un seul périphérique (la carte réseau) :
Pour se représenter plus précisément l'arborescence des périphériques PCI, montrant la hiérarchie des périphériques PCI connectés, on pourra utiliser (avec un mode plus verbeux éventuellement) :
Voici ce que ça donne sur une autre machine où le résultat est intéressant) :
Dans cet exemple, on voit bien les différentes fonctions de la Realtek
Introduction
La commande lspci est un utilitaire en ligne de commande sous Linux utilisé pour afficher des informations sur les périphériques PCI reconnus et détectés par le système.
Pour information, un périphérique PCI est un composant matériel informatique qui se connecte à un bus PCI (Peripheral Component Interconnect). Ce sont des cartes d'extensions qui peuvent être ajoutée à un ordinateur (ou serveur) pour étendre ses fonctionnalités telles que des cartes graphiques, carte réseau, carte son, etc. Le bus PCI est un standard de connexion largement utilisé pour permettre la communication entre le processeur et les périphériques.
lspci permet de :
- Lister tous les périphériques PCI connectés et modules PCI présents.
- Vérifier que le système reconnaît correctement nos périphériques PCI.
- Afficher des détails spécifiques sur chaque périphérique PCI, tels que l'identifiant du fabricant et du produit, la description, le pilote utilisé, etc.
La syntaxe générale de lspci est simple :
Code BASH :
lspci [options]
Il est conseillé d'utiliser la commande lspci en super-utilisateur pour pouvoir avoir un maximum d'informations.
Utiliser lspci
Pour lister simplement les périphériques PCI :
Code BASH :
lspci
Cet exemple affichera une liste de tous les périphériques PCI actuellement connectés à votre système, avec des informations de base comme l'identifiant du fabricant et l'identifiant du produit :
Code :
00:00.0 Host bridge: Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation CoffeeLake-U GT3e [Iris Plus Graphics 655] (rev 01)
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 30)
00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 30)
00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 30)
00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller #1 (rev 30)
00:17.0 SATA controller: Intel Corporation Cannon Point-LP SATA Controller [AHCI Mode] (rev 30)
00:1c.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #1 (rev f0)
00:1c.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #5 (rev f0)
00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #9 (rev f0)
00:1d.6 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #15 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 30)
00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 30)
00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 30)
00:1f.5 Serial bus controller: Intel Corporation Cannon Point-LP SPI Controller (rev 30)
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
3b:00.0 Non-Volatile memory controller: Micron/Crucial Technology P1 NVMe PCIe SSD (rev 03)
3c:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS522A PCI Express Card Reader (rev 01)
Pour l'exemple suivant :
Code TEXT :
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
00:1f.6 : C'est l'adresse PCI du périphérique, indiquant l'emplacement de la carte réseau Ethernet dans le système.
Ethernet controller : Cela indique le type de périphérique, dans ce cas, un contrôleur Ethernet.
Intel Corporation : C'est le fabricant du périphérique, Intel Corporation.
Ethernet Connection (6) I219-V : C'est la description du périphérique, indiquant qu'il s'agit d'une connexion Ethernet de type I219-V.
Pour avoir une vue beaucoup plus détaillée sur tous les périphériques PCI :
Code BASH :
lspci -v
Le mode verbeux affiche des informations détaillées sur chaque périphérique PCI, y compris les capacités, les ressources, etc. (extrait d'un seul périphérique ici la carte réseau filaire) :
Code :
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
DeviceName: LAN
Subsystem: Intel Corporation Ethernet Connection (6) I219-V
Flags: bus master, fast devsel, latency 0, IRQ 128, IOMMU group 11
Memory at a8b00000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: e1000e
Kernel modules: e1000e
Pour afficher des informations pour un périphérique PCI spécifique avec son emplacement (bus, slot fonction) on utilisera l'option -s. Exemple ici avec la carte graphique Iris Plus Graphics 655 :
Code BASH :
lspci -s 00:02.0
Pour afficher des informations sur les drivers utilisés par les différents périphérique PCI, on pourra utiliser l'option -k :
Code BASH :
lspci -k
Exemple ici avec un extrait d'un seul périphérique (la carte réseau) :
Code :
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 30)
DeviceName: LAN
Subsystem: Intel Corporation Ethernet Connection (6) I219-V
Kernel driver in use: e1000e
Kernel modules: e1000e
Pour se représenter plus précisément l'arborescence des périphériques PCI, montrant la hiérarchie des périphériques PCI connectés, on pourra utiliser (avec un mode plus verbeux éventuellement) :
Code BASH :
lspci -tv
Voici ce que ça donne sur une autre machine où le résultat est intéressant) :
Code :
-[0000:00]-+-00.0 Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S]
+-02.0 Intel Corporation CoffeeLake-S GT2 [UHD Graphics 630]
+-08.0 Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
+-12.0 Intel Corporation Cannon Lake PCH Thermal Controller
+-14.0 Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller
+-14.2 Intel Corporation Cannon Lake PCH Shared SRAM
+-16.0 Intel Corporation Cannon Lake PCH HECI Controller
+-17.0 Intel Corporation SATA Controller [RAID mode]
+-1c.0-[01]--+-00.0 Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
| +-00.1 Realtek Semiconductor Co., Ltd. RTL8111xP UART #1
| +-00.2 Realtek Semiconductor Co., Ltd. RTL8111xP UART #2
| +-00.3 Realtek Semiconductor Co., Ltd. RTL8111xP IPMI interface
| \-00.4 Realtek Semiconductor Co., Ltd. RTL811x EHCI host controller
+-1d.0-[02]----00.0 Kingston Technology Company, Inc. U-SNS8154P3 NVMe SSD
+-1f.0 Intel Corporation Device a308
+-1f.3 Intel Corporation Cannon Lake PCH cAVS
+-1f.4 Intel Corporation Cannon Lake PCH SMBus Controller
\-1f.5 Intel Corporation Cannon Lake PCH SPI Controller
Dans cet exemple, on voit bien les différentes fonctions de la Realtek