Команды Linux

О команде lspci в Linux

О команде lspci в Linux
lspci команда - это утилита в системах Linux, используемая для получения информации о шинах PCI и устройствах, подключенных к подсистеме PCI. Вы можете понять значение команды, рассмотрев слово lspci в двух частях.  Первая часть ls - это стандартная утилита, используемая в Linux для вывода информации о файлах в файловой системе.  Pci - вторая часть команды, поэтому вы можете естественно видеть команду lspci отобразит информацию о подсистеме PCI так же, как ls отобразит информацию о файловой системе.

В этой статье мы объясним основы PCI, PCIe и команды lspci для отображения информации в вашей системе.

Что такое PCI?

PCI или Peripheral Component Interconnect - это интерфейс для добавления дополнительных аппаратных компонентов в компьютерную систему.  PCIe или PCI Express это обновленный стандарт, который используется сегодня.  Например, предположим, что вы хотите добавить карту Ethernet к своему компьютеру, чтобы он мог получать доступ к Интернету и обмениваться данными.  Карта нуждается в протоколе для связи с остальной частью внутренней системы, PCI может быть стандартным интерфейсом, используемым для добавления этой карты в вашу систему.  Вам по-прежнему нужен драйвер для этой карты, чтобы ядро ​​могло его использовать, однако PCI - это слот, а шина и интерфейс, которые будут использоваться для добавления оборудования в систему со стандартным интерфейсом.  Создание драйвера PCI linux будет следовать некоторым стандартным интерфейсам, вы можете увидеть документацию по созданию Драйвер PCI linux здесь.  Вы можете видеть из структуры ниже стандартные методы, которые должны быть реализованы.  Такие методы как зонд, Удалить, приостановить, резюме, так далее.

struct pci_driver
struct list_head узел;
const char * name;
const struct pci_device_id * id_table;
int (* probe) (struct pci_dev * dev, const struct pci_device_id * id);
void (* удалить) (struct pci_dev * dev);
int (* приостановить) (struct pci_dev * dev, состояние pm_message_t);
int (* резюме) (struct pci_dev * dev);
void (* выключение) (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 ** группы;
struct device_driver драйвер;
struct pci_dynids dynids;
;

Скорость и использование PCI

PCI 3.0 может обрабатывать данные до 1 ГБ / сек на полосу.  Различные устройства могут иметь более одной полосы, поэтому возможно, что отдельные устройства могут иметь скорость передачи данных в несколько гигабайт.  Эти цифры всегда улучшаются по мере выхода новых версий спецификации и выпуска нового оборудования, поэтому всегда проверяйте наличие последних и самых быстрых из возможных.  Типы компонентов и гаджетов, которые вы можете купить, которые подключаются к интерфейсу PCI, включают: адаптеры WIFI, Bluetooth, карты твердотельного хранилища NVME, видеокарты и многое другое.

Изучение команды lspci

Я создал Ubuntu 19.04 в облаке Google и теперь будет запускать lspci командуй и посмотри, что произойдет.

Вы видите по одной строке на устройство с числовым кодом и словесным описанием устройства.  Фактически в этом выводе отображается 5 полей в каждой строке: слот, класс, поставщик, устройство и версия.

Итак, разбив первую строку, что у нас есть:

СЛОТ: 00:00.0
Класс: Хост-мост
Продавец: Корпорация Intel
Устройство: 440FX - 82441FX PMC
Редакция: 02

И глядя на слот 00:04.0, это наш контроллер Ethernet, который выглядит как виртуальное устройство как часть виртуальной магии облачного развертывания Google.

Чтобы получить более подробную и подробную информацию о каждом слоте PCI, выполните следующую команду:

# lspci -vmm

Эта команда разбивает каждую строку на поля компонентов и позволяет анализировать каждое устройство с помощью более описательных меток.

Вы также можете попробовать опцию -v для более подробного вывода

# lspci -v

И используйте double v или tripple v для подробного подробного вывода:

# lspci -vvv

Или попробуйте параметр -mm для формата вывода, доступного для чтения сценарием.

# lspci -mm

Чтобы узнать, какой драйвер ядра используется для каждого устройства, запустите параметр -k.

Многие из моих устройств используют драйвер virtio-pci.

Наконец, вы даже можете увидеть шестнадцатеричный дамп «стандартной части конфигурационного пространства» для каждого устройства PCI.  Вы должны быть настоящим хакером ядра, чтобы понять, как использовать эту информацию.  -x - это то, что дает вам вывод дампа.

# lspci -x

Заключение

Команда lspci - это стандартная команда Linux, которую можно использовать для вывода информации о подключенных PCI устройствах в вашей системе.  Это может быть полезно, чтобы узнать, какие аппаратные периферийные устройства у вас есть.  Это также очень полезно для разработчиков, создателей драйверов устройств, системных специалистов низкого уровня для запроса информации об устройствах, драйверах и системе.  Наслаждайтесь использованием lspci.

Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...
Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...