Comment identifier un périphérique > PCI
Comment "identifier" les matériels PCI comme les cartes (AGP, PCI-Express, CardBus, Express Card, etc) installés sur votre ordinateur.
Beaucoup de gens utilisent lspci, qui est disponible sur tous les systèmes Debian, pour avoir une liste des périphériques PCI sur leur ordinateur. hardinfo peut être installé et utilisé sur les environnements de bureau basés sur GTK tels que GNOME, MATE ou Xfce. Avec le Bureau Plasma de KDE, on peut utiliser kinfocenter.
PCI-id
Les matériels PCI sont identifiés par une paire de nombres hexadécimaux. Par exemple, 1014:003E :
- Les 4 premiers chiffres représentent l'ID du vendeur (1014 = IBM).
- Les 4 derniers chiffres représentent l'ID du périphérique (003e = 16/4 Token ring).
Il y a aussi des sub-vendor-id, (pour identifier l'ordinateur/pour la mise en oeuvre) qui définissent la fonction et la classe... voir références pour plus d'informations.
Certains des périphériques (device-id) gérés par Debian sont listés ici : DeviceDatabase/PCI.
lspci
lspci, fourni par le paquet : pciutils, est l'outil de base pour connaître les matériels connectés à n'importe que bus compatible PCI de votre ordinateur.
$ lspci -nn 00:00.0 Host bridge [0600]: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub [8086:27a0] (rev 03) 00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a2] (rev 03) 00:02.1 Display controller [0380]: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller [8086:27a6] (rev 03) 00:1b.0 Audio device [0403]: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller [8086:27d8] (rev 02) 00:1c.0 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 [8086:27d0] (rev 02) 00:1c.1 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 [8086:27d2] (rev 02) 00:1c.2 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 [8086:27d4] (rev 02) 00:1c.3 PCI bridge [0604]: Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 [8086:27d6] (rev 02) 00:1d.0 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 [8086:27c8] (rev 02) 00:1d.1 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 [8086:27c9] (rev 02) 00:1d.2 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 [8086:27ca] (rev 02) 00:1d.3 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 [8086:27cb] (rev 02) 00:1d.7 USB Controller [0c03]: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller [8086:27cc] (rev 02) 00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev e2) 00:1f.0 ISA bridge [0601]: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge [8086:27b9] (rev 02) 00:1f.2 IDE interface [0101]: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller [8086:27c4] (rev 02) 00:1f.3 SMBus [0c05]: Intel Corporation 82801G (ICH7 Family) SMBus Controller [8086:27da] (rev 02) 02:00.0 Ethernet controller [0200]: Intel Corporation 82573L Gigabit Ethernet Controller [8086:109a] 03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:4227] (rev 02) 15:00.0 CardBus bridge [0607]: Texas Instruments PCI1510 PC card Cardbus Controller [104c:ac56] 16:00.0 Ethernet controller [0200]: ADMtek 21x4x DEC-Tulip compatible 10/100 Ethernet [1317:1985] (rev 11)
Notes concernant l'exemple ci-dessus :
- 104c:ac56 est le cardbus bridge ("controleur")
- 1317:1985 est une PCCard (32-bit Cardbus) adaptateur Ethernet.
Si la description du matériel retourne 'Unknown device' vous pouvez mettre à jour votre fichier pci-id en tapant la commande update-pciids en tant que super-utilisateur.
/usr/share/misc/pci.ids - contient une table complète de correspondance de tous les IDs et des noms de périphériques.
Vous pouvez utiliser grep pour avoir une liste par type de matériel comme ci-dessous :
$ lspci -nn | grep Network 03:00.0 Network controller [0280]: Intel Corporation PRO/Wireless 3945ABG Network Connection [8086:4227] (rev 02)
Avec Gnome : hardinfo
hardinfo (copies d'écran) fourni par le paquet : hardinfo) donne des infos sur les périphériques PCI installés dans sa section « Périphériques PCI ».
Avec KDE : KInfoCenter
Kinfo de KDE (dans Menu K / Système / KDE Info Center ou Centre d'information KDE, copies d'écran), fourni par le paquet kcontrol, donne des informations diverses et variées sur les cartes PCI.
Note : KInfoCenter donne le nom des périphériques PCI et non les ID des périphériques.
discover
La commande discover (fournie par le paquet discover) peut lister les périphériques PCI :
$ discover --vendor-id --model-id pci | uniq 8086 27a0 Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub 8086 27a0 Intel Corporation Mobile 945GM/PM/GMS/940GML and 945GT Express Memory Controller Hub 8086 27a2 Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller 8086 27a2 Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller 8086 27a6 Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller 8086 27a6 Intel Corporation Mobile 945GM/GMS/940GML Express Integrated Graphics Controller 8086 27d8 Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller 8086 27d0 Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 8086 27d2 Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 8086 27d4 Intel Corporation 82801G (ICH7 Family) PCI Express Port 3 8086 27d6 Intel Corporation 82801G (ICH7 Family) PCI Express Port 4 8086 27c8 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 8086 27c8 Intel Corporation 82801G (ICH7 Family) USB UHCI #1 8086 27c9 Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 8086 27c9 Intel Corporation 82801G (ICH7 Family) USB UHCI #2 8086 27ca Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 8086 27ca Intel Corporation 82801G (ICH7 Family) USB UHCI #3 8086 27cb Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 8086 27cb Intel Corporation 82801G (ICH7 Family) USB UHCI #4 8086 27cc Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller 8086 2448 Intel Corporation 82801 Mobile PCI Bridge 8086 27b9 Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge 8086 27c4 Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller 8086 27da Intel Corporation 82801G (ICH7 Family) SMBus Controller 8086 109a Intel Corporation 82573L Gigabit Ethernet Controller8086 4227 Intel Corporation PRO/Wireless 3945ABG Network Connection 104c ac56 Texas Instruments PCI1510 PC card Cardbus Controller
discover utilise ses propres fichiers :/lib/discover/pci-busclass.xml, /lib/discover/pci-device.xml, /lib/discover/pci-vendor.xml
Recherche manuelle
/proc/bus/pci/devices
Si lspci n'est pas disponible (!), vous pouvez afficher le contenu de /proc/bus/pci/devices pour avoir la liste détaillée des vendeurs et des ID des périphériques.
cat /proc/bus/pci/devices
/sys/bus/pci
Toujours si lspci n'est pas disponible (!), aller dans /sys/bus/pci (en supposant que sysfs est monté sur /sys). La documentation du noyau Linux sysfs PCI (aussi disponible dans les paquets linux-doc) donne des détails sur les fichiers de /sys/bus/pci.
Références
wikipedia – PCI (en anglais, la page Française est moins complète).
Le site The PCI ID Repository tient à jour une liste des device-id et vendor-id pour les correspondances d'identifiant (utilisée par lspci, xorg et d'autres).