lspci(8) Les utilitaires PCI lspci(8)

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>.

Extraire les données du dispositif PCI dans un format rétrocompatible lisible par une machine. Voir ci-dessous pour les détails.
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.
Afficher un diagramme sous forme d'arbre contenant tous les bus, ponts, périphériques et les connexions entre eux.

Être bavard et afficher des informations détaillées sur tous les périphériques.
Être très bavard et afficher encore plus de détails. Ce niveau comprend tout ce qui est jugé utile.
Ê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).
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.)
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).
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.
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.
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.
Toujours afficher les numéros de domaines PCI. lspci les supprime par défaut sur les machines qui n'ont que le domaine 0.
Identifier les périphériques PCI par le chemin à travers chaque pont et non par numéro de bus.
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.

Afficher les codes des appareils et fabricants PCI sous forme de nombres au lieu de les chercher dans la liste d'identifiants PCI.
Afficher les codes appareils et fabricants PCI à la fois sous forme de nombres et de noms.
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.
Identique à -q, sauf que le cache local est réinitialisé.
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.

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.
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 ».

Utiliser <file> comme liste d'identifiant PCI au lieu de /usr/share/hwdata/pci.ids.
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.
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.
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 :

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.
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.
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.)
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.)
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.
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 :

Numéro de révision.
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 :

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.
Nom de la classe.
Nom du fabricant.
Nom du périphérique.
Nom du fabricant du sous-système (optionnel).
Nom du sous-système (optionnel).
L'emplacement physique où se situe le périphérique (optionnel, uniquement sous Linux).
Numéro de révision (optionnel).
Interface de programmation (optionnel).
Le pilote du noyau gérant actuellement le périphérique (optionnel, seulement sous Linux).
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.
Nœud NUMA auquel est connecté ce périphérique (optionnel, seulement sous Linux).
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/hwdata/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/hwdata/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.

20 November 2022 pciutils-3.9.0