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
doc:systeme:lspci [06/11/2015 20:37]
bendia [La commande lspci]
doc:systeme:lspci [30/11/2020 19:08] (Version actuelle)
èfpé [Syntaxe] correction mineure
Ligne 1: Ligne 1:
-====== ​La commande ​lspci ======+====== lspci ======
  
-  * Objet : La commande lspci+  * Objet : la commande lspci
   * Niveau requis :​{{tag>​débutant avisé}}   * Niveau requis :​{{tag>​débutant avisé}}
-  * Commentaires : //​Pour ​connaître le matériel de votre PC utilisant le protocole ​PCI ou USB//+  * Commentaires : //​Pour ​lister l'​ensemble des périphériques connectés aux bus PCI du système//
   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)   * Débutant, à savoir : [[:​doc:​systeme:​commandes:​le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
   * Suivi :    * Suivi : 
-    * Création par [[user>​mattux]] le  17/06/2007+    * Création par [[user>​mattux]] le 17/06/2007
     * Testé par [[user>​milou]] le 31/07/2015     * Testé par [[user>​milou]] le 31/07/2015
     * Modification par [[user>​bendia]] le 6/11/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 !)) +  * Commentaires sur le forum : [[https://​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 !))
  
 +Voir : [[doc:​systeme:​ls|ls]] \\
 +La commande pour les périphériques USB : [[doc:​systeme:​lsusb|lsusb]]
  
 +===== Introduction =====
  
-Voir : [[:​doc:​systeme:​ls | ls]]\\ +La commande ''​lspci''​ permet de connaître la liste du matériel (cartes, //​chipsets//,​ contrôleurs,​ etc.) de votre PC utilisant l'​interface PCI.
-Commande voisine pour les périphériques USB : [[:​doc:​systeme:​lsusb |lsusb]]+
  
- +===== Syntaxe ​=====
- +
-===== Utilisation ​===== +
- +
-La commande lspci permet de connaître la liste du matériel (cartes, chipsets etc.) de votre PC utilisant le protocole PCI. +
- +
-==== Syntaxe ​====+
  
 <code user>​lspci</​code>​ <code user>​lspci</​code>​
-Donne sur mon PC +Donne par exemple ​
-<file config retour de la commande>​ +<file config retour de la commande>​00:​00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge
-    ​00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] RS880 Host Bridge+
 00:01.0 PCI bridge: ASUSTeK Computer Inc. AMD RS780/RS880 PCI to PCI bridge (int gfx) 00:01.0 PCI bridge: ASUSTeK Computer Inc. AMD RS780/RS880 PCI to PCI bridge (int gfx)
 00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4) 00:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] RS780/RS880 PCI to PCI bridge (PCIE port 4)
Ligne 56: Ligne 51:
 04:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [Audio Port] (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 controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [MPEG Port] (rev 05) 04:05.2 Multimedia controller: Conexant 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) +04:08.0 FireWire (IEEE 1394): VIA Technologies,​ Inc. VT6306/7/8 [Fire II(M)] IEEE 1394 OHCI Controller (rev c0)</​file>​
-</​file>​+
  
-Voilà le résultat ​de cette commande. Il peut se décomposer comme suit :+Le retour ​de cette commande 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>​+<​code>​<Numéro de bus>:<Numéro de périphérique>.<Fonction> <Classe 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.+Magique non Comment le système fait-il pour obtenir automatiquement ces informations ? Hé bien chaque composant du bus PCI contient un certain nombre d'​informations directement dans sa mémoire, ce 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+On peut d'​ailleurs voir à quoi ressemblent ​les informations enregistrées directement dans le périphérique avec :
  
-<code user> lspci -n</​code>​Ce qui donne chez moi+<code user>​lspci -n</​code>​
 <code config retour de la commande>​00:​00.0 0600: 1022:9601 <code config retour de la commande>​00:​00.0 0600: 1022:9601
 00:01.0 0604: 1043:9602 00:01.0 0604: 1043:9602
Ligne 99: Ligne 93:
 04:08.0 0c00: 1106:3044 (rev c0)</​code>​ 04:08.0 0c00: 1106:3044 (rev c0)</​code>​
  
-Moins lisible ​hein :-/ Cependantc'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 ​+Moins lisible, ​n'est-ce pas ? C'est cependant ​ce mode d'​affichage ​qui permet de retrouver avec certitude le modèle ​d'​un ​périphérique. On peut également afficher à la fois le nom et les identifiants numériques ​
  
 <code user>​lspci -nn</​code>​ <code user>​lspci -nn</​code>​
Ligne 131: Ligne 125:
 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.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: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) +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>​
-</​code>​+
  
-==== Options de tri ====+===== 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.+Bon, c'est bien joli tout ça, mais on se rend compte que c'est un peu longcomme 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 ===+==== Filtrer par slot (dit "​emplacement"​) ====
  
-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+On peut filtrer le résultat ​par //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 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>​+<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)</​code>​
  
-=== Filtrer par nom de périphérique ===+==== 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''​+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 ''​IdentifiantVendeur:IdentifiantPériphérique''​. Exemple :
 <code user>​lspci -d 1106:​3044</​code>​ <code user>​lspci -d 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)</​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>​
  
-<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 +==== Filtrer par classe de périphériques ==== 
-<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+Il est également possible de filtrer par classe de périphériques((À partir ​de la version 3.3.0 des //[[https://mj.ucw.cz/sw/pciutils/|PCI Utilities]]//,​ soit en pratique à partir de Debian 9 Stretch.)), toujours avec l'​option ''​-d''​. Exemple : 
-<​code>​04:​05.1 Multimedia controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [Audio Port] (rev 05) +<code user>lspci -d ::0480</code
-04:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [MPEG Port] (rev 05) +<​code ​config retour de la commande>04:05.1 Multimedia controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [Audio Port] (rev 05) 
-</code></​note>+04:05.2 Multimedia controller: Conexant Systems, Inc. CX23880/​1/​2/​3 PCI Video and Audio Decoder [MPEG Port] (rev 05)</​code>​
  
-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.+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 ====+===== Options d'​affichage ​=====
  
-Les options ''​-v'',​ ''​-vv''​ et ''​-vvv''​ permettent d'​augmenter la quantité d'​informations affichées+Les options ''​-v'',​ ''​-vv''​ et ''​-vvv''​ permettent d'​augmenter la quantité d'​informations affichées. Exemple :
  
-<​code ​user>lspci -vd 1106:​3044</​code>​ +<​code ​root>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])+<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) (prog-if 10 [OHCI])
  Subsystem: ASUSTeK Computer Inc. Motherboard  Subsystem: ASUSTeK Computer Inc. Motherboard
  Flags: bus master, medium devsel, latency 64, IRQ 23  Flags: bus master, medium devsel, latency 64, IRQ 23
Ligne 173: Ligne 166:
  Kernel driver in use: firewire_ohci</​code>​  Kernel driver in use: firewire_ohci</​code>​
  
- +On voit apparaître ici une information fort intéressante,​ à savoir le pilote (ze //driver//, en anglois m() utilisé ​''​Kernel driver in use''​. Il est possible de n'​ajouter que cette information (ou presque) à la sortie habituelle avec l'​option ''​-k''​. Exemple :
-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 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) <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)
Ligne 180: Ligne 172:
  Kernel driver in use: firewire_ohci</​code>​  Kernel driver in use: firewire_ohci</​code>​
  
 +===== Périphérique "​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 ''​Device''​... Votre carte est inconnue au bataillon.
  
-===== Mon périphérique est inconnu =====+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écimal,​ en réalité ;-)). Pour afficher des informations lisibles par le débianeux moyen, ''​lspci''​ fait correspondre les codes hexadécimaux aux données présentes dans le fichier ''/​usr/​share/​misc/​pci.ids''​. On peut mettre à jour ce fichier avec la commande : 
 +<code root>​update-pciids</​code>​ 
 +<code config retour de la commande>​Downloaded daily snapshot dated 2018-12-18 03:​15:​01</​code>​
  
-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.+Et puisque ​le débianeux moyen est vachement curieux (ou curieuse, il paraît que le neutre se conjugue ​au masculin ^_^) :
  
-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 user>ls -lh /usr/share/misc/pci.ids*</​code>​ 
-<code root>​update-pciids</​code>​ +<code config retour de la commande>​-rw-r--r-- 1 root root 1,1M déc.  18 03:15 /​usr/​share/​misc/​pci.ids 
-<code config retour de la commande>​Downloaded daily snapshot dated 2015-11-05 03:15:01</​code>​+-rw-r--r-- 1 root root 1,1M nov.  30  2016 /​usr/​share/​misc/​pci.ids.old</​code>​
  
 ===== Pense-bête ===== ===== Pense-bête =====
Ligne 197: Ligne 193:
 ===== Liens utiles ===== ===== Liens utiles =====
  
-  * La liste des codes PCI : http://​pci-ids.ucw.cz/​ +  * Manuel de l'​administrateur Linux (2008) : https://​delafond.org/​traducmanfr/​man/​man8/​lspci.8.html 
-  * //Decoding PCI data and lspci output on Linux hosts// ​(en anglais, vous l'​aurez deviné ;-) ) http://www.prefetch.net/​articles/​linuxpci.html +  * (en) //The PCI ID Repository//​ (dépôt de référence pour les identifiants PCI) https://​pci-ids.ucw.cz/​ 
-    +  * (en) //Decoding PCI data and lspci output on Linux hosts// : https://​prefetch.net/​articles/​linuxpci.html
- +
- +
- +
- +
  
doc/systeme/lspci.1446838675.txt.gz · Dernière modification: 06/11/2015 20:37 par bendia

Pied de page des forums

Propulsé par FluxBB