Acerca del comando LSPCI en Linux

Acerca del comando LSPCI en Linux
LSPCI El comando es una utilidad en los sistemas Linux utilizados para encontrar información sobre los buses y dispositivos PCI conectados al subsistema PCI PCI. Puedes entender el significado del comando considerando la palabra LSPCI en dos partes. La primera parte de LS es la utilidad estándar utilizada en Linux para enumerar información sobre los archivos en el sistema de archivos. PCI es la segunda parte del comando, por lo que puede ver naturalmente el comando LSPCI Enumerará información sobre el subsistema PCI de la misma manera que LS Enumerará información sobre el sistema de archivos.

En este artículo explicaremos los conceptos básicos de PCI, PCIe y el comando LSPCI para mostrar información en su sistema.

Que es PCI?

PCI, o la interconexión de componentes periféricos es una interfaz para agregar componentes de hardware adicionales a un sistema informático. PCIe o PCI Express es el estándar actualizado que se usa hoy en día. Por ejemplo, supongamos que desea agregar una tarjeta Ethernet a su computadora para que pueda acceder a Internet e intercambiar datos. Bueno, la tarjeta necesita un protocolo para comunicarse con el resto del sistema interno, PCI puede ser la interfaz estándar utilizada para agregar esta tarjeta a su sistema. Todavía necesita un controlador para esta tarjeta para que el kernel la use, sin embargo, PCI es la ranura, y el bus y la interfaz que se utilizarán para agregar el hardware al sistema con una interfaz estándar. La creación de un controlador PCI Linux seguirá algunas interfaces estándar que puede ver la documentación para crear un controlador PCI Linux aquí. Puede ver desde la estructura a continuación los métodos estándar que deben implementarse. Métodos como Investigacion, eliminar, suspender, reanudar, etc.

struct pci_driver
struct list_head nodo;
const char *nombre;
const struct pci_device_id *id_table;
int ( *sonde) (struct pci_dev *dev, const struct pci_device_id *id);
void ( *eliminar) (struct pci_dev *dev);
int ( *suspender) (struct pci_dev *dev, pm_message_t state);
int ( *currículum) (struct pci_dev *dev);
void ( *apagado) (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;
Struct Device_driver controlador;
struct pci_dynids dinids;
;

PCI velocidades y usos

PCI 3.0 puede ejecutar datos de hasta 1 GB/seg por carril. Diferentes dispositivos pueden tener más de un carril, por lo que es posible que los dispositivos individuales puedan tener múltiples gigabytes de velocidad de transferencia de datos. Estos números siempre están mejorando a medida que salen las nuevas versiones de la especificación y sale un nuevo hardware, así que siempre verifique lo último y más rápido que puede encontrar. Los tipos de componentes y gadgets que puede comprar que se conecta en una interfaz PCI incluyen: adaptadores WiFi, Bluetooth, tarjetas de almacenamiento de estado sólido NVME, tarjetas gráficas y más.

Explorando el comando LSPCI

He creado un Ubuntu 19.04 instancia en Google Cloud y ahora ejecutará el LSPCI comandar y ver qué pasa.

Lo que ve es una línea por dispositivo con un código numérico y una descripción verbal del dispositivo. En realidad, se muestran 5 campos en esta salida por línea: ranura, clase, proveedor, dispositivo y revisión.

Así que rompiendo la primera línea lo que tenemos:

RANURA: 00:00.0
Clase: Puente anfitrión
Proveedor: Corporación Intel
Dispositivo: 440FX - 82441FX PMC
Revisión: 02

Y mirando la ranura 00:04.0 Ese es nuestro controlador Ethernet, que parece ser un dispositivo virtual como parte de la magia virtual de la implementación de la nube de Google.

Para obtener información más detallada y detallada sobre cada ranura PCI, ejecute el siguiente comando:

# lspci -vmm

Este comando desglosará cada línea en sus campos de componentes y le permitirá analizar cada dispositivo con etiquetas más descriptivas.

También puede probar la opción -v para una salida más detallada

# LSPCI -V

Y use Double V o Tripple V para la salida verbosa verby:

# LSPCI -VVV

O pruebe la opción -mm para el formato de salida legible de script.

# lspci -mm

Para ver qué controlador del kernel se está utilizando para cada opción de ejecución del dispositivo -k.

Muchos de mis dispositivos están utilizando el controlador Virtio-PCI.

Por último, incluso puede ver un volcado hexadecimal de "la parte estándar del espacio de configuración" para cada dispositivo PCI. Deberías ser un verdadero hacker del núcleo para descubrir cómo usar esa información. -X La opción es lo que le da la salida de volcado.

# LSPCI -X

Conclusión

El comando LSPCI es un comando estándar de Linux que se puede usar para enumerar información sobre los dispositivos conectados por PCI en su sistema. Esto puede ser útil para saber qué periféricos de hardware tiene. También es súper útil para desarrolladores, creadores de controladores de dispositivos, personas del sistema de bajo nivel para consultar información sobre los dispositivos, los controladores y el sistema. Disfruta usando LSPCI.