logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
doc:systeme:lspci [22/09/2013 23:31]
127.0.0.1 modification externe
doc:systeme:lspci [06/11/2015 20:37]
bendia [La commande lspci]
Ligne 1: Ligne 1:
 ====== La commande lspci ====== ====== La commande lspci ======
  
-Voir :+  * Objet La commande lspci 
 +  * Niveau requis :​{{tag>​débutant avisé}} 
 +  * Commentaires : //Pour connaître le matériel de votre PC utilisant le protocole PCI ou USB// 
 +  * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) 
 +  * Suivi :  
 +    * Création par [[user>​mattux]] le  17/​06/​2007 
 +    * Testé par [[user>​milou]] le 31/​07/​2015 
 +    * Modification par [[user>​bendia]] le 6/11/2015 
 +  * Commentaires sur le forum : [[http://​debian-facile.org/​viewtopic.php?​pid=116475#​p116475 |C'est ici]]((N'​hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) 
  
-[[:​doc:​systeme:​ls | COMMANDE LS]] 
  
-La commande lspci permet de connaitre la liste du matériel (cartes, chipsets etc.) de votre PC utilisant le protocole PCI ou USB. Il faut être l'​administrateur pour utiliser lspci. 
  
-  * Syntaxe+Voir : [[:​doc:​systeme:​ls | ls]]\\ 
 +Commande voisine pour les périphériques USB : [[:​doc:​systeme:​lsusb |lsusb]]
  
-    lspci 
  
-  * Exemple 
  
-    chile:/​home/​mattux # lspci +===== Utilisation ===== 
-    00:00.0 Host bridge: ​Intel Corporation 82852/82855 GM/GME/PM/GMV Processor ​to I/O Controller ​(rev 02+ 
-    00:​00.1 ​System peripheralIntel Corporation 82852/82855 GM/GME/PM/GMV Processor to I/Controller (rev 02+La commande ​lspci permet de connaître la liste du matériel (cartes, chipsets etc.) de votre PC utilisant le protocole PCI. 
-    00:00.3 System peripheral: Intel Corporation 82852/82855 GM/GME/PM/GMV Processor ​to I/Controller ​(rev 02) + 
-    00:01.0 PCI bridge: ​Intel Corporation 82852/82855 GM/GME/PM/GMV Processor to AGP Controller (rev 02+==== Syntaxe ==== 
-    00:1d.0 USB ControllerIntel Corporation ​82801DB/​DBL/​DBM (ICH4/​ICH4-L/​ICH4-M) ​USB UHCI Controller ​#1 (rev 03) + 
-    00:1d.1 USB ControllerIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 (rev 03+<code user>​lspci</​code>​ 
-    00:1d.2 USB ControllerIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller ​#3 (rev 03+Donne sur mon PC : 
-    00:1d.7 USB ControllerIntel Corporation 82801DB/DBM (ICH4/ICH4-MUSB2 EHCI Controller ​(rev 03) +<file config retour de la commande>​ 
-    00:1e.0 PCI bridge: ​Intel Corporation 82801 Mobile ​PCI Bridge ​(rev 83+    00:00.0 Host bridge: ​Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge 
-    00:1f.0 ISA bridge: ​Intel Corporation 82801DBM ​(ICH4-MLPC Interface Bridge ​(rev 03+00:01.0 PCI bridge: ASUSTeK Computer Inc. AMD RS780/RS880 PCI to PCI bridge (int gfx) 
-    00:1f.1 IDE interface: ​Intel Corporation 82801DBM (ICH4-M) ​IDE Controller (rev 03+00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) 
-    00:1f.3 SMBusIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-MSMBus Controller (rev 03) +00:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge ​(PCIE port 5
-    00:1f.Multimedia ​audio controller: ​Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-MAC'​97 ​Audio Controller ​   ​(rev 03+00:11.0 SATA controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 SATA Controller [IDE mode] 
-    00:1f.6 ModemIntel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03+00:12.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI0 Controller 
-    01:00.0 VGA compatible controllerATI Technologies Inc RV350 [Mobility Radeon 9600 M10+00:12.1 USB controllerAdvanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller 
-    02:02.0 Ethernet ​controller: ​Broadcom Corporation BCM4401 100Base-T ​(rev 01+00:12.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 USB EHCI Controller 
-    02:04.0 Network ​controller: ​Intel Corporation PRO/Wireless 2200BG Network Connection ​(rev 05) +00:13.0 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI0 Controller 
-    02:06.0 CardBus bridgeTexas Instruments PCIxx21/x515 Cardbus ​Controller +00:13.1 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller 
-    02:06.2 FireWire (IEEE 1394): ​Texas Instruments OHCI Compliant ​IEEE 1394 Host Controller +00:13.2 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB EHCI Controller 
-    02:06.3 Mass storage controllerTexas Instruments PCIxx21 Integrated FlashMedia Controller+00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller (rev 3c
 +00:14.1 IDE interface: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 IDE Controller 
 +00:14.2 Audio deviceAdvanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia (Intel HDA) 
 +00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller 
 +00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge 
 +00:14.5 USB controller: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI2 Controller 
 +00:18.0 Host bridge: ​Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration 
 +00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map 
 +00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller 
 +00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control 
 +00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control 
 +01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880 [Radeon HD 4250] 
 +01:05.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] RS880 HDMI Audio [Radeon HD 4200 Series] 
 +02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet ​Controller (rev 06
 +03:00.0 USB controllerNEC Corporation ​uPD720200 ​USB 3.0 Host Controller (rev 03) 
 +04:05.0 Multimedia video controllerConexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder ​(rev 05) 
 +04:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05
 +04:05.2 Multimedia controllerConexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05) 
 +04:08.0 FireWire (IEEE 1394): VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0
 +</​file>​ 
 + 
 +Voilà le résultat de cette commandeIl peut se décomposer comme suit : 
 + 
 +<​code>​Numéro de bus:Numéro de périphérique:​Fonction (Le //slot//) - Classe(type) du périphérique:​ - Nom du constructeur,​ - Modèle du périphérique- (Révision du périphérique)<​/code> 
 + 
 +Magique non :-) Comment le système fait-il pour obtenir automatiquement ces informations ? Et bien chaque composant du bus PCI contient un certain nombre d'​informations directement dans sa mémoire qui permet une auto-configuration du système. 
 + 
 +D'​ailleurs,​ on peut voir à quoi ressemblent ces informations enregistrées directement dans le périphérique avec 
 + 
 +<code user> lspci -n</​code>​Ce qui donne chez moi 
 +<code config retour de la commande>​00:​00.0 0600: 1022:9601 
 +00:01.0 0604: 1043:9602 
 +00:09.0 0604: 1022:9608 
 +00:0a.0 0604: 1022:9609 
 +00:11.0 0106: 1002:4390 
 +00:12.0 0c03: 1002:4397 
 +00:12.1 0c03: 1002:4398 
 +00:12.2 0c03: 1002:4396 
 +00:13.0 0c03: 1002:4397 
 +00:13.1 0c03: 1002:4398 
 +00:13.2 0c03: 1002:4396 
 +00:14.0 0c05: 1002:4385 (rev 3c) 
 +00:14.1 0101: 1002:439c 
 +00:14.2 0403: 1002:4383 
 +00:14.3 0601: 1002:439d 
 +00:14.4 0604: 1002:4384 
 +00:14.5 0c03: 1002:4399 
 +00:18.0 0600: 1022:1200 
 +00:18.1 0600: 1022:1201 
 +00:18.2 0600: 1022:1202 
 +00:18.3 0600: 1022:1203 
 +00:18.4 0600: 1022:1204 
 +01:05.0 0300: 1002:9715 
 +01:05.1 0403: 1002:970f 
 +02:00.0 0200: 10ec:8168 (rev 06) 
 +03:00.0 0c03: 1033:​0194 ​(rev 03) 
 +04:05.0 0400: 14f1:8800 (rev 05) 
 +04:05.1 0480: 14f1:8801 (rev 05) 
 +04:05.2 0480: 14f1:8802 (rev 05) 
 +04:08.0 0c00: 1106:3044 (rev c0)</​code>​ 
 + 
 +Moins lisible hein :-/ Cependant, c'est ce mode de notation qui permet de retrouver avec certitude le modèle de son périphérique. On peut également afficher à la fois le nom et le numéro :  
 + 
 +<code user>​lspci -nn</​code>​ 
 +<code config retour de la commande>​00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge [1022:​9601] 
 +00:01.0 PCI bridge ​[0604]ASUSTeK Computer Inc. AMD RS780/​RS880 ​PCI to PCI bridge ​(int gfx[1043:9602] 
 +00:09.0 PCI bridge ​[0604]Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge ​(PCIE port 4[1022:​9608] 
 +00:0a.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 5) [1022:​9609] 
 +00:11.0 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 SATA Controller [IDE mode] [1002:​4390] 
 +00:12.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI0 Controller [1002:​4397] 
 +00:12.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller [1002:​4398] 
 +00:12.2 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB EHCI Controller [1002:​4396] 
 +00:13.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI0 Controller [1002:​4397] 
 +00:13.1 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0 USB OHCI1 Controller [1002:​4398] 
 +00:13.2 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB EHCI Controller [1002:​4396] 
 +00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 SMBus Controller [1002:​4385] ​(rev 3c
 +00:14.1 IDE interface ​[0101]Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 ​IDE Controller ​[1002:​439c] 
 +00:14.2 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 Azalia ​(Intel HDA[1002:4383] 
 +00:14.3 ISA bridge [0601]Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/SB8x0/SB9x0 LPC host controller [1002:​439d] 
 +00:14.4 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD/ATI] SBx00 PCI to PCI Bridge [1002:​4384] 
 +00:14.5 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD/ATI] SB7x0/​SB8x0/​SB9x0 USB OHCI2 Controller [1002:​4399] 
 +00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor HyperTransport Configuration [1022:​1200] 
 +00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Address Map [1022:​1201] 
 +00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor DRAM Controller [1022:​1202] 
 +00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Miscellaneous Control [1022:​1203] 
 +00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 10h Processor Link Control [1022:​1204] 
 +01:05.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] RS880 [Radeon HD 4250] [1002:​9715] 
 +01:05.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] RS880 HDMI Audio [Radeon HD 4200 Series] [1002:​970f] 
 +02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/​8168/​8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06) 
 +03:00.0 USB controller [0c03]: NEC Corporation uPD720200 USB 3.0 Host Controller ​[1033:​0194] ​(rev 03) 
 +04:05.Multimedia ​video controller ​[0400]Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [14f1:​8800] ​(rev 05) 
 +04:05.1 Multimedia controller [0480]: Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] [14f1:8801] (rev 05) 
 +04:05.2 Multimedia controller [0480]: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [MPEG Port] [14f1:​8802] ​(rev 05
 +04:08.0 FireWire (IEEE 1394) [0c00]VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller [1106:3044] (rev c0) 
 +</code> 
 + 
 +==== Options de tri ==== 
 + 
 +Bien, c'est bien joli tout ça, mais on se rend compte que c'est un peu long comme retour. ''​lspci''​ renvoie en effet une ligne par périphérique ... lorsqu'​on l'​utilise avec son mode le moins bavard. Voyons voir s'il est possible de filtrer ce résultat. 
 + 
 +=== Filtrer par Slot === 
 + 
 +On peut filtrer le résultat avec le //slot//, c'est à dire le code donné dans le premier champ grâce à l'​option ''​-s''​. Exemple 
 + 
 +<code user>​lspci -s 04:​08.0</​code>​ 
 +<code config retour de la commande>​04:​08.0 FireWire (IEEE 1394): VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)</​code>​ 
 + 
 +=== Filtrer par nom de périphérique === 
 + 
 +Il est également possible de filtrer grâce au nom du périphérique avec l'​option ''​-d''​. Pas directement son nom en réalité, mais grâce au code ''​IdVendeur:IdPériphérique''​ 
 +<code user>​lspci -d 1106:​3044</​code>​ 
 +<code config retour de la commande>​04:​08.0 FireWire (IEEE 1394)VIA TechnologiesInc. VT6306/​7/​8 ​[Fire II(M)IEEE 1394 OHCI Controller (rev c0)</​code>​ 
 + 
 +<note tip>Il n'​existe pas d'​option pour filtrer par classe de périphérique,​ ce qui peut être cependant intéressant. Un petit script permet néanmoins de réaliser ce filtre grâce au code de la classe 
 +<file bash>​class=0480 #On récupère la classe d'un périphérique PCI là http://pci-ids.ucw.cz/​read/​PD/​ 
 +for i in $(lspci -n | grep $class | cut -d " " -f3); do lspci -d $i; done</​file>​ 
 +<​code>​04:​05.1 Multimedia ​controller: ​Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [Audio Port] (rev 05
 +04:05.2 Multimedia ​controller: ​Conexant Systems, Inc. CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05) 
 +</​code></​note>​ 
 + 
 +Mais pourquoi filtrer ? Parce que la commande peut être nettement plus //bavarde// et renvoyer plusieurs lignes par périphérique,​ au point qu'il est difficile de s'y retrouver. 
 + 
 +==== Options d'​affichage ==== 
 + 
 +Les options ''​-v'',​ ''​-vv''​ et ''​-vvv''​ permettent d'​augmenter la quantité d'​informations affichées 
 + 
 +<code user>​lspci -vd 1106:3044</​code>​ 
 +<code config retour de la commande>​4:​08.0 FireWire (IEEE 1394)VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller ​(rev c0) (prog-if 10 [OHCI]) 
 + SubsystemASUSTeK Computer IncMotherboard 
 + Flags: bus master, medium devsel, latency 64, IRQ 23 
 + Memory at febff800 (32-bit, non-prefetchable) [size=2K] 
 + I/O ports at ec00 [size=128] 
 + Capabilities:​ [50] Power Management version ​2 
 + Kernel driver in use: firewire_ohci</​code>​ 
 + 
 + 
 +On voit apparaître ici une information fort intéressante,​ à savoir le driver utilisé ''​Kernel driver in use''​. Il est possible de n'​ajouter que cette information (ou presque) à la sortie habituelle avec l'​option ''​-k''​ 
 +<code user>​lspci -kd 1106:​3044</​code>​ 
 +<code config retour de la commande>​04:​08.0 ​FireWire (IEEE 1394): ​VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] ​IEEE 1394 OHCI Controller ​(rev c0) 
 + SubsystemASUSTeK Computer IncMotherboard 
 + Kernel driver in usefirewire_ohci</​code>​ 
 + 
 + 
 + 
 +===== Mon périphérique est inconnu ===== 
 + 
 +Vous venez d'​acheter la dernière carte graphique méga géniale qui affiche 30 millions de //shadow// et en plus elle fait le café, mais voilà, ''​lspci''​ vous retourne un déprimant ''​Unknown''​ ... Votre carte est inconnue au bataillon. 
 + 
 +Souvenez vous, nous avons dit tout au début que les informations permettant d'​identifier le matériel se trouvent directement dans la carte sous forme de code cabalistique (hexadécimale en réalité ;) ). Pour afficher des informations lisibles par le membre DF moyen, ''​lspci''​ fait correspondre les codes hexadécimaux aux données présents dans le fichier ''/​usr/​share/​hwdata/​pci.ids''​. Or, on peut mettre à jour ce fichier avec la commande 
 +<code root>​update-pciids</​code>​ 
 +<code config retour de la commande>​Downloaded daily snapshot dated 2015-11-05 03:​15:​01</​code>​ 
 + 
 +===== Pense-bête ===== 
 + 
 +FIXME 
 +  * tableau résumant les options 
 + 
 +===== Liens utiles ===== 
 + 
 +  * La liste des codes PCI : http://​pci-ids.ucw.cz/​ 
 +  * //Decoding PCI data and lspci output on Linux hosts// (en anglais, vous l'​aurez deviné ;-) ) : http://​www.prefetch.net/​articles/​linuxpci.html 
 +    
 + 
  
-Voilà le résultat de cette commande. 
  
  
  
doc/systeme/lspci.txt · Dernière modification: 30/11/2020 19:08 par èfpé

Pied de page des forums

Propulsé par FluxBB