Commandes Linux

À propos de la commande lspci sous Linux

À propos de la commande lspci sous Linux
lspci command est un utilitaire sur les systèmes Linux utilisé pour trouver des informations sur les bus PCI et les périphériques connectés au sous-système PCI. Vous pouvez comprendre le sens de la commande en considérant le mot lspci en deux parties.  La première partie, ls, est l'utilitaire standard utilisé sur Linux pour lister les informations sur les fichiers du système de fichiers.  Pci est la deuxième partie de la commande, vous pouvez donc voir naturellement la commande lspci listera les informations sur le sous-système PCI de la même manière que ls listera les informations sur le système de fichiers.

Dans cet article nous allons vous expliquer les bases de PCI, PCIe et la commande lspci pour afficher des informations sur votre système.

Qu'est-ce que le PCI?

PCI, ou Peripheral Component Interconnect est une interface permettant d'ajouter des composants matériels supplémentaires à un système informatique.  PCIe ou PCI Express est la norme mise à jour qui est utilisée aujourd'hui.  Par exemple, disons que vous souhaitez ajouter une carte Ethernet à votre ordinateur afin qu'il puisse accéder à Internet et échanger des données.  Eh bien, la carte a besoin d'un protocole pour communiquer avec le reste du système interne, PCI peut être l'interface standard utilisée pour ajouter cette carte à votre système.  Vous avez toujours besoin d'un pilote pour cette carte pour que le noyau l'utilise, cependant PCI est le slot, et le bus et l'interface qui seront utilisés pour ajouter le matériel dans le système avec une interface standard.  La création d'un pilote PCI linux suivra certaines interfaces standard, vous pouvez voir la documentation pour créer un pilote PCI linux ici.  Vous pouvez voir dans la structure ci-dessous les méthodes standard qui doivent être implémentées.  Des méthodes telles que sonde, supprimer, suspendre, reprendre, etc.

struct pci_driver
struct list_head        nœud ;
const char              *nom ;
const struct pci_device_id *id_table;
int (*probe)(struct pci_dev *dev, const struct pci_device_id *id);
void (*remove)(struct pci_dev *dev);
int (*suspend)(struct pci_dev *dev, état pm_message_t);
int (*resume)(struct pci_dev *dev);
void (*shutdown)(struct pci_dev *dev);
int (*sriov_configure)(struct pci_dev *dev, int num_vfs);
const struct pci_error_handlers *err_handler;
const struct attribute_group **groupes;
struct device_driver    pilote ;
struct pci_dynids       dynids ;
 ;

Vitesses et utilisations PCI

PCI 3.0 peut exécuter des données jusqu'à 1 Go/s par voie.  Différents appareils peuvent avoir plus d'une voie, il est donc possible que des appareils individuels puissent avoir plusieurs gigaoctets de taux de transfert de données.  Ces chiffres s'améliorent constamment à mesure que de nouvelles versions de la spécification sortent et que du nouveau matériel sort, alors vérifiez toujours les dernières et les plus rapides que vous pouvez trouver.  Les types de composants et de gadgets que vous pouvez acheter et qui se branchent sur une interface PCI incluent : adaptateurs WIFI, Bluetooth, cartes de stockage NVME Solid State, cartes graphiques, etc.

Exploration de la commande lspci

J'ai créé un Ubuntu 19.04 sur Google cloud et exécutera maintenant le lspci commande et vois ce qui se passe.

Ce que vous voyez est une ligne par appareil avec un code numérique et une description verbale de l'appareil.  Il y a en fait 5 champs affichés dans cette sortie par ligne : Slot, Class, Vendor, Device et Revision.

Donc, décomposer la première ligne ce que nous avons:

FENTE: 00:00.0
Classer: Pont hôte
Vendeur: Société intel
Appareil: 440FX - 82441FX PMC
Révision: 02

Et en regardant le slot 00:04.0 qui est notre contrôleur Ethernet, qui semble être un appareil virtuel dans le cadre de la magie virtuelle du déploiement cloud de Google.

Pour obtenir des informations plus détaillées et détaillées sur chaque emplacement PCI, exécutez la commande suivante :

# lspci -vmm

Cette commande décomposera chaque ligne en ses champs de composants et vous permettra d'analyser chaque appareil avec des étiquettes plus descriptives.

Vous pouvez également essayer l'option -v pour une sortie plus détaillée

# lspci -v

Et utilisez double v ou triple v pour une sortie verbeuse :

# lspci -vvv

Ou essayez l'option -mm pour le format de sortie lisible par script.

# lspci -mm

Afin de voir quel pilote de noyau est utilisé pour chaque périphérique, exécutez l'option -k.

Beaucoup de mes appareils utilisent le pilote virtio-pci.

Enfin, vous pouvez même voir un dump hexadécimal de "la partie standard de l'espace de configuration" pour chaque périphérique PCI.  Vous devriez être un vrai hacker du noyau pour comprendre comment utiliser ces informations.  -x option est ce qui vous donne la sortie de vidage.

# lspci -x

Conclusion

La commande lspci est une commande Linux standard qui peut être utilisée pour répertorier les informations sur les périphériques PCI connectés sur votre système.  Cela peut être utile pour savoir de quels périphériques matériels vous disposez.  C'est aussi très utile pour les développeurs, les créateurs de pilotes de périphériques, les gens du système de bas niveau pour demander des informations sur les périphériques, les pilotes et le système.  Profitez de lspci.

Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...
Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...
Meilleurs émulateurs de console de jeu pour Linux
Cet article répertorie les logiciels d'émulation de console de jeu populaires disponibles pour Linux. L'émulation est une couche de compatibilité logi...