Comandos Linux

Sobre o comando lspci no Linux

Sobre o comando lspci no Linux
lspci comando é um utilitário em sistemas Linux usado para descobrir informações sobre os barramentos PCI e dispositivos 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, então você pode ver naturalmente o comando lspci irá listar informações sobre o subsistema PCI da mesma forma que ls irá listar informações sobre o sistema de arquivos.

Neste artigo, explicaremos os fundamentos do PCI, PCIe e o comando lspci para exibir informações em seu sistema.

O que é PCI?

PCI, ou Peripheral Component Interconnect, é 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ê deseja adicionar uma placa Ethernet ao seu computador para que ele possa acessar a internet e trocar dados.  Bem, a placa precisa de um protocolo para se comunicar com o resto do sistema interno, PCI pode ser a interface padrão usada para adicionar esta placa ao seu sistema.  Você ainda precisa de um driver para esta placa para que o kernel a use, no entanto PCI é o slot, 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 linux PCI seguirá algumas interfaces padrão, você pode ver a documentação para a criação de um Driver linux PCI aqui.  Você pode ver na estrutura abaixo os métodos padrão que devem ser implementados.  Métodos como sonda, remover, suspender, retomar, etc.

struct pci_driver
nó struct list_head;
const char * name;
const struct pci_device_id * id_table;
int (* teste) (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 (* sriov_configure) (struct pci_dev * dev, int num_vfs);
const struct pci_error_handlers * err_handler;
const struct attribute_group ** grupos;
driver struct device_driver;
struct pci_dynids dynids;
;

Usos e velocidades PCI

PCI 3.0 pode executar dados até 1 GB / segundo por pista.  Dispositivos diferentes podem ter mais de uma pista, então é possível que dispositivos individuais possam ter vários gigabytes de taxa de transferência de dados.  Esses números estão sempre melhorando à medida que novas versões das especificações são lançadas e novos hardwares são lançados, portanto, verifique sempre as versões mais recentes e mais rápidas.  Os tipos de componentes e dispositivos que você pode comprar e que se conectam a uma interface PCI incluem: adaptadores WIFI, Bluetooth, placas de armazenamento de estado sólido NVME, placas gráficas e muito mais.

Explorando o Comando lspci

Eu criei um Ubuntu 19.04 instância na nuvem do Google e agora irá executar o lspci comandar e ver 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 hospedeira
Fornecedor: Intel Corporation
Dispositivo: 440FX - 82441FX PMC
Revisão: 02

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

Para obter informações mais detalhadas e detalhadas sobre cada slot 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 rótulos mais descritivos.

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

# lspci -v

E use v duplo ou v triplo para saída verbosa verby:

# lspci -vvv

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

# lspci -mm

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

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

Por último, você pode até ver um despejo hexadecimal da "parte padrão do espaço de configuração" para cada dispositivo PCI.  Você deve ser um verdadeiro hacker do kernel para descobrir como usar essa informação.  -A opção x é o que lhe dá a saída de despejo.

# lspci -x

Conclusão

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

Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...
Instale o emulador Dolphin mais recente para Gamecube e Wii no Linux
O Dolphin Emulator permite que você jogue seus jogos de Gamecube e Wii escolhidos em computadores pessoais Linux (PC). Sendo um emulador de jogo disp...
Como usar o GameConqueror Cheat Engine no Linux
O artigo cobre um guia sobre como usar o mecanismo de cheat GameConqueror no Linux. Muitos usuários que jogam no Windows costumam usar o aplicativo “C...