Sobre o comando lspci no Linux

Sobre o comando lspci no Linux
LSPCI O comando é um utilitário nos sistemas Linux usados ​​para descobrir informações sobre os barramentos e dispositivos PCI conectados ao subsistema PCI. Você pode entender o significado do comando considerando a palavra LSPCI em duas partes. A primeira parte LS é o utilitário padrão usado no Linux para listar informações sobre os arquivos no sistema de arquivos. PCI é a segunda parte do comando, para que você possa ver naturalmente o comando LSPCI listará informações sobre o subsistema PCI da mesma maneira que ls listará informações sobre o sistema de arquivos.

Neste artigo, explicaremos o básico do PCI, PCIE e do comando lspci para exibir informações em seu sistema.

O que é PCI?

A interconexão de componente PCI ou periférico é uma interface para adicionar componentes de hardware adicionais a um sistema de computador. PCIE ou PCI Express é o padrão atualizado que é usado hoje. Por exemplo, digamos que você queira adicionar um cartão Ethernet ao seu computador para que ele possa acessar a Internet e trocar dados. Bem, o cartão precisa de um protocolo para se comunicar com o restante do sistema interno, o PCI pode ser a interface padrão usada para adicionar este cartão ao seu sistema. Você ainda precisa de um driver para este cartão para que o kernel o use, no entanto, o PCI é o slot e o barramento e a interface que serão usados ​​para adicionar o hardware ao sistema com uma interface padrão. A criação de um driver PCI Linux seguirá algumas interfaces padrão, você pode ver a documentação para criar um driver PCI Linux aqui. Você pode ver na estrutura abaixo dos métodos padrão que devem ser implementados. Métodos como sonda, remover, suspender, retomar, etc.

estrutura pci_driver
Nó da estrutura list_head;
const char *nome;
const struct pci_device_id *id_table;
int ( *sonda) (struct pci_dev *dev, const struct pci_device_id *id);
void ( *remover) (struct pci_dev *dev);
int ( *suspender) (struct pci_dev *dev, pm_message_t state);
int ( *currículo) (struct pci_dev *dev);
void ( *desligamento) (struct pci_dev *dev);
int ( *sriiov_configure) (struct pci_dev *dev, int num_vfs);
const struct pci_error_handlers *err_handler;
const struct attribute_group ** grupos;
driver de dispositivo de dispositivo_driver;
struct pci_dynids dynids;
;

Velas e usos da PCI

PCI 3.0 pode executar dados de até 1 GB/s por pista. Diferentes dispositivos podem ter mais de uma pista, por isso é possível que dispositivos individuais possam ter multi-gigabytes de taxa de transferência de dados. Esses números estão sempre melhorando à medida que as novas versões da especificação são lançadas e o novo hardware é lançado; portanto, verifique sempre o mais recente e o mais rápido que você pode encontrar. Os tipos de componentes e gadgets que você pode comprá -los conectados a uma interface PCI incluem: adaptadores Wi -Fi, Bluetooth, NVME Solid State Storage Cards, placas gráficas e muito mais.

Explorando o comando lspci

Eu criei um Ubuntu 19.04 instância no Google Cloud e agora executará o LSPCI comando e veja o que acontece.

O que você vê é uma linha por dispositivo com um código numérico e uma descrição verbal do dispositivo. Na verdade, existem 5 campos exibidos nesta saída por linha: slot, classe, fornecedor, dispositivo e revisão.

Então, quebrando a primeira linha o que temos:

Slot: 00:00.0
Aula: Ponte host
Fornecedor: Intel Corporation
Dispositivo: 440FX - 82441FX PMC
Revisão: 02

E olhando para o slot 00:04.0 Esse é o nosso controlador Ethernet, que parece ser um dispositivo virtual como parte da magia virtual da implantação em nuvem do Google.

Para obter informações mais detalhadas e detalhadas sobre cada slot do PCI, execute o seguinte comando:

# lspci -vmm

Este comando dividirá cada linha em seus campos de componentes e permitirá que você analise cada dispositivo com etiquetas mais descritivas.

Você também pode experimentar a opção -v para obter mais saída detalhada

# lspci -v

E use Double V ou Tripple V para VERBY SAÍDABABOSA:

# lspci -vvv

Ou tente a opção -mm Formato de saída legível por script.

# lspci --mm

Para ver qual driver de kernel está sendo usado para cada opção de execução do dispositivo -k.

Muitos dos meus dispositivos estão usando o driver virtio-pci.

Por fim, você pode até ver um depósito hexadecimal de "a parte padrão do espaço de configuração" para cada dispositivo PCI. Você deve ser um hacker de kernel real para descobrir como usar essas informações. -X opção é o que lhe dá a saída de despejo.

# lspci -x

Conclusão

O comando lspci é um comando linux padrão que pode ser usado para listar informações sobre os dispositivos conectados do PCI em seu sistema. Isso pode ser útil para saber quais periféricos de hardware você tem. Também é super útil para desenvolvedores, criadores de driver de dispositivos, pessoas de baixo nível para consultar informações sobre os dispositivos, os drivers e o sistema. Aproveite o uso do LSPCI.