lspci - Lister tous les périphériques PCI
lspci [
options]
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 brève 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 cette option dans des scripts
automatisés avec parcimonie 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 fausse.
- -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
« toute valeur ». 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 spécifiés. Les deux 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 les paramètres cités. Cette
option permet de définir la valeur de chaque paramètre.
Utiliser -O help pour une liste des paramètres et leurs
valeurs 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
para 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-sytè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 signalant 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 <
[email protected]>.
La traduction française de cette page de manuel a été
créée par Alain Portal <
[email protected]> et bubu
<
[email protected]>
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 à
[email protected]