lspci - Lister tous les périphériques PCI
lspci est un utilitaire pour afficher des informations sur
les bus PCI dans le système et les périphériques qui y
sont connectés.
Il montre une courte liste de périphériques par
défaut. Utilisez les options décrites ci-dessous pour demander
une sortie plus détaillée ou une sortie destinée
à être interprétée par d'autres programmes.
Si vous voulez rapporter des bogues de pilotes de
périphériques PCI ou dans lspci lui-même, merci
d'y inclure la sortie de « lspci -vvx » ou
encore mieux « lspci -vvxx » (toutefois, voir
ci-dessous pour d'éventuelles mises en garde).
Quelques parties de la sortie, spécialement dans les modes
très détaillés, ne sont probablement intelligibles que
par des informaticiens expérimentés dans le domaine de PCI.
Pour des définitions exactes des champs, merci de consulter les
spécifications PCI ou les fichiers joints header.h et
/usr/include/linux/pci.h.
L'accès à certaines parties de l'espace de
configuration PCI est restreint au superutilisateur sur de nombreux
systèmes d'exploitation, ce qui limite les caractéristiques de
lspci disponibles pour les utilisateurs non
privilégiés. Cependant, lspci essaie de faire de son
mieux pour afficher le plus d'informations disponibles et marquer les autres
informations avec le texte <access denied>.
- -m
- Extraire les données du dispositif PCI dans un format
rétrocompatible lisible par une machine. Voir ci-dessous pour les
détails.
- -mm
- Extraire les données d'un périphérique PCI sous une
forme lisible par les machines pour être facilement partageable par
les scripts. Voir ci-dessous pour les détails.
- -t
- Afficher un diagramme sous forme d'arbre contenant tous les bus, ponts,
périphériques et les connexions entre eux.
- -v
- Être bavard et afficher des informations détaillées
sur tous les périphériques.
- -vv
- Être très bavard et afficher encore plus de détails.
Ce niveau comprend tout ce qui est jugé utile.
- -vvv
- Être encore plus bavard et afficher tout ce qui peut l'être,
même si cela ne semble pas du tout intéressant (par exemple,
les régions de la mémoire non définies).
- -k
- Afficher les pilotes du noyau qui gèrent chaque
périphérique ainsi que les modules du noyau capables de le
gérer. Activé par défaut lorsque v est
spécifié dans la sortie en mode normal. (Ne fonctionne
actuellement que sous Linux avec un noyau 2.6 ou plus
récent.)
- -x
- Afficher le vidage en hexadécimal de la partie standard de l'espace
de configuration (les premiers 64 octets ou 128 octets pour
les ponts CardBus).
- -xxx
- Afficher le vidage hexadécimal de tout l'espace de configuration
PCI. Cela n'est valable que pour le superutilisateur, étant
donné que plusieurs périphériques PCI
plantent lorsque vous essayez de lire des parties
de l'espace de configuration (ce comportement ne viole probablement pas le
standard PCI, mais c'est très stupide). Toutefois, de tels
périphériques sont rares, donc vous n'avez pas besoin de
trop vous en inquiéter.
- -xxxx
- Afficher le vidage hexadécimal de l'espace de configuration PCI
étendu (4096-octets) disponible sur PCI-X 2.0 et les bus PCI
Express.
- -b
- Vue centrée sur le bus. Afficher tous les numéros d'IRQ
(« Interrupt ReQuest », interruption
matérielle) et les adresses comme vues par les cartes du bus PCI au
lieu de les montrer vues par le noyau.
- -D
- Toujours afficher les numéros de domaines PCI. lspci les
supprime par défaut sur les machines qui n'ont que le
domaine 0.
- -P
- Identifier les périphériques PCI par le chemin à
travers chaque pont et non par numéro de bus.
- -PP
- Identifier les périphériques PCI par le chemin à
travers chaque pont, en affichant le numéro de bus ainsi que le
numéro du périphérique.
- -n
- Afficher les codes des appareils et fabricants PCI sous forme de nombres
au lieu de les chercher dans la liste d'identifiants PCI.
- -nn
- Afficher les codes appareils et fabricants PCI à la fois sous forme
de nombres et de noms.
- -q
- Utiliser le DNS pour interroger la base de données centrale des
identifiants PCI si un périphérique n'a pas
été trouvé dans le fichier pci.ids local. Si
la requête DNS réussit, le résultat est mis en cache
dans ~/.pciids-cache et sera reconnu dans les appels
ultérieurs, même si l'option -q n'est pas fournie.
Merci de bien vouloir utiliser avec parcimonie cette option dans des
scripts automatisés afin d'éviter la surcharge des serveurs
de bases de données.
- -qq
- Identique à -q, sauf que le cache local est
réinitialisé.
- -Q
- Interroger la base de données centrale même pour les
entrées reconnues localement. Utilisez cette option si vous
suspectez que l'entrée affichée est erronée.
- -s
[[[[<domain>]:]<bus>]:][<device>][.[<func>]]
- Montrer seulement les périphériques du domaine
indiqué (si votre machine possède plusieurs ponts
d'hôtes, soit ils peuvent partager le même numéro de
bus, soit chacun d'eux peut s'adresser à un domaine PCI ;
les domaines sont numérotés de 0 à ffff), le
bus (0 à ff), le périphérique (0 à 1f) et la
fonction (0 à 7). Chaque élément de l'adresse
du périphérique peut être omis ou défini
à « * », les deux signifiant
« valeur quelconque ». Tous les numéros
sont hexadécimaux. Par exemple,
« 0 » : signifie tous les
périphériques sur le bus 0,
« 0 » signifie toutes les fonctions du
périphérique 0 de tous les bus,
« 0.3 » sélectionne la troisième
fonction du périphérique 0 sur tous les bus et
« .4 » montre seulement la quatrième
fonction de chaque périphérique.
- -d
[<vendor>]:[<device>][:<class>[:<prog-if>]]
- Afficher seulement les périphériques dont les identifiants
de classe, fabricant, périphérique et interface de
programmation sont spécifiés. Les identifiants sont
indiqués sous forme hexadécimale et peuvent être omis
ou définis sous la forme « * », les
deux signifiant « valeur quelconque ».
L'identifiant de classe peut contenir des caractères
« x » qui signifient « tout
chiffre ».
- -i <file>
- Utiliser <file> comme liste d'identifiants PCI au lieu de
/usr/share/misc/pci.ids.
- -p <file>
- Utiliser <file> comme carte des identifiants PCI pris en
charge par le noyau. lspci utilise
/lib/modules/version_noyau/modules.pcimap par défaut. Cela
n'est utilisé que sur les systèmes Linux avec des outils de
module assez récents.
- -M
- Invoquer le mode de correspondance de bus qui effectue un balayage
exhaustif de tous les périphériques PCI, y compris ceux qui
se trouvent derrière des ponts mal configurés, etc.
Cette option ne donne des résultats significatifs qu'avec un
accès direct au matériel, ce qui nécessite
généralement les privilèges du superutilisateur. Le
mappeur de bus examine le domaine 0 par défaut. Vous pouvez
utiliser l'option -s pour choisir un domaine différent.
- --version
- Afficher la version de lspci. Cette option doit être
utilisée seule.
Les utilitaires PCI utilisent la bibliothèque PCI pour
dialoguer avec les périphériques PCI (voir pcilib(7)
pour plus de détails). Vous pouvez utiliser les options suivantes
pour modifier son comportement :
- -A <method>
- Cette bibliothèque prend en charge des méthodes diverses
pour accéder au matériel PCI. Par défaut, c'est la
première méthode d'accès disponible qui est
utilisée, mais vous pouvez utiliser cette option pour surcharger
cette décision. Consulter -A help pour une liste des
méthodes disponibles et leur description.
- -O
<param>=<value>
- Le comportement de la bibliothèque est contrôlé par
plusieurs paramètres nommés. Cette option permet de
définir la valeur de chaque paramètre. Utiliser -O
help pour une liste des paramètres et leur valeur par
défaut.
- -H1
- Utiliser l'accès direct au matériel à l'aide du
mécanisme 1 de la configuration d'Intel (Intel configuration
mechanism 1). (Il s'agit d'un raccourci de -A
intel-conf1.)
- -H2
- Utiliser l'accès direct au matériel à l'aide du
mécanisme 2 de la configuration Intel. (Cela est un
raccourci de -A intel-conf2.)
- -F <file>
- Plutôt que d'accéder vraiment au matériel, lire la
liste des périphériques et les valeurs de leurs registres de
configurations à partir du fichier fourni produit par une
exécution précédente de lspci -x. Cela est
très pratique pour l'analyse des rapports de bogues fournis par les
utilisateurs, car vous pouvez afficher la configuration matérielle
de la manière que vous le voulez sans déranger l'utilisateur
en lui réclamant plus de vidage.
- -G
- Accroître le niveau de débogage de la bibliothèque.
Si vous avez l'intention de traiter automatiquement la sortie de
lspci, veuillez utiliser l'un des formats de sortie lisible par les machines
(-m, -vm, -vmm) décrits dans cette section. Tous
les autres formats sont susceptibles d'être modifiés entre
deux versions de lspci.
Tous les nombres sont toujours affichés sous forme
hexadécimale. Si vous voulez traiter les identifiants
numériques plutôt que les noms, veuillez ajouter l'option
-n.
Dans le format simple, chaque périphérique est
décrit sur une seule ligne, formatée sous forme de
paramètres appropriés à leur passage à un script
d'interpréteur, c'est-à-dire des valeurs
séparées par des espaces, entourées de guillemets et
échappées si nécessaire. Certains arguments sont
positionnels : emplacement (slot), classe, nom du fabricant, nom du
périphérique, nom du fabricant du sous-système et nom
du sous-système (les deux derniers arguments sont vides si le
périphérique n'a pas de sous-système) ; les
arguments restants sont de type option :
- -rrev
- Numéro de révision.
- -pprogif
- Interface de programmation.
L'ordre relatif des arguments positionnels et des options n'est
pas défini. De nouvelles options peuvent être introduites dans
de futures versions, mais elles auront toujours un seul paramètre
accolé (sans espace entre l'option et le paramètre), ainsi ils
peuvent être facilement ignorés s'ils ne sont pas
reconnus.
La sortie détaillée est une séquence
d'enregistrements séparés par des lignes vides. Chaque
enregistrement décrit un seul périphérique dans une
séquence de lignes, chaque ligne contenant une seule paire «
étiquette : valeur ».
L'étiquette et la valeur sont séparées
par un simple caractère de tabulation. Ni les enregistrements, ni les
lignes contenant un enregistrement ne sont dans un ordre particulier. Les
étiquettes sont sensibles à la casse.
Les étiquettes suivantes sont définies :
- Slot
- Le nom de l'emplacement où se situe le périphérique
([domaine:]bus:périphérique.fonction).
Cette étiquette est toujours en premier dans un enregistrement.
- Class
- Nom de la classe.
- Vendor
- Nom du fabricant.
- Device
- Nom du périphérique.
- SVendor
- Nom du fabricant du sous-système (optionnel).
- SDevice
- Nom du sous-système (optionnel).
- PhySlot
- L'emplacement physique où se situe le périphérique
(optionnel, uniquement sous Linux).
- Rev
- Numéro de révision (optionnel).
- ProgIf
- Interface de programmation (optionnel).
- Driver
- Le pilote du noyau gérant actuellement le
périphérique (optionnel, seulement sous Linux).
- Module
- Module du noyau indiquant qu'il est capable de gérer le
périphérique (optionnel, seulement sous Linux). Il peut y
avoir plusieurs lignes avec cette étiquette.
- NUMANode
- Nœud NUMA auquel est connecté ce périphérique
(optionnel, seulement sous Linux).
- IOMMUGroup
- Groupe IOMMU auquel appartient ce périphérique (optionnel,
Linux seulement).
De nouvelles étiquettes peuvent être ajoutées
dans des versions futures, vous devriez ignorer silencieusement toute
étiquette que vous ne reconnaissez pas.
Dans ce mode, lspci essaie d'être parfaitement
compatible avec ses anciennes versions. Cela est similaire au format
détaillé classique, mais l'étiquette
périphérique est utilisée à la fois pour
l'emplacement et le nom de périphérique, donc cela
apparaît deux fois dans un enregistrement unique. Merci
d'éviter l'utilisation de ce format dans tout nouveau code.
- /usr/share/misc/pci.ids
- Une liste de tous les identifiants PCI connus (fabricants,
périphériques, classes et sous classes). Entretenue sur
https://pci-ids.ucw.cz/. Utilisez l'outil update-pciids pour
télécharger la version la plus récente.
- /usr/share/misc/pci.ids.gz
- Si lspci est compilé avec la prise en charge de la
compression, ce fichier est essayé avant pci.ids.
- ~/.pciids-cache
- Tous les identifiants trouvés dans le mode requête DNS sont
mis en cache dans ce fichier.
Quelquefois, lspci n'est pas capable de décoder
entièrement les registres de configuration. Cela survient
généralement quand il n'y avait pas assez de documentation
disponible pour les auteurs. Dans ces cas, il affiche au moins le symbole
<?> pour signaler qu'il y a potentiellement quelque chose de
plus à dire. Si vous connaissez ces détails, les correctifs
sont bien sûr bienvenus.
L'accès à l'espace de configuration étendue
n'est actuellement pris en charge que par le dorsal linux_sysfs.
setpci(8), pci.ids(5), update-pciids(8),
pcilib(7)
Les utilitaires PCI sont entretenus par Martin Mares
<mj@ucw.cz>.
La traduction française de cette page de manuel a
été créée par Alain Portal
<aportal@univ-montp2.fr> et bubu <bubub@no-log.org>
Cette traduction est une documentation libre ; veuillez
vous reporter à la
GNU General
Public License version 3 concernant les conditions de copie et de
distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
debian-l10n-french@lists.debian.org.