table of contents
| lspci(8) | Утилиты PCI | lspci(8) |
НАИМЕНОВАНИЕ¶
lspci - выводит список всех устройств PCI
СИНОПСИС¶
lspci [options]
ОПИСАНИЕ¶
Утилита lspci — это утилита для отображения информации о шинах PCI в системе и подключенных к ним устройствах.
По умолчанию отображается краткий список устройств. Используйте описанные ниже опции, чтобы получить более подробный вывод или вывод, предназначенный для анализа другими программами.
Если вы собираетесь сообщить о программных ошибках в драйверах устройств PCI или в самом lspci, пожалуйста, приложите вывод "lspci -vvx" или еще лучше "lspci -vvxxx" (однако ниже приведены возможные предостережения).
Некоторые части вывода, особенно в режимах с большим количеством подробностей, вероятно, будут понятны только опытным специалистам по PCI. Точное определение полей можно найти в спецификациях PCI или в заголовочных файлах header.h и /usr/include/linux/pci.h.
Во многих операционных системах доступ к некоторым разделам конфигурационного пространства PCI ограничен правами суперпользователя, поэтому возможности lspci, доступные обычным пользователям, ограничены. Тем не менее lspci делает все возможное, чтобы отобразить как можно больше доступной информации, а все остальное помечает текстом <access denied>.
ОПЦИИ¶
Основные режимы отображения¶
- -m
- Выгрузка данных с устройства PCI в обратно совместимой машиночитаемой форме. Подробнее смотрите ниже.
- -mm
- Выгрузка данных с устройств PCI в машиночитаемом формате для удобного анализа скриптами. Подробнее смотрите ниже.
- -t
- Отобразить древовидную схему, содержащую все шины, мосты, устройства и соединения между ними.
Опции отображения¶
- -v
- Выводить подробную информацию обо всех устройствах.
- -vv
- Сообщать больше сведений и раскрывать больше подробностей. Этот уровень включает в себя всё, что может оказаться полезным.
- -vvv
- Сообщать еще больше сведений и выводите все, что мы можем проанализировать, даже если это совсем неинтересно (например, неопределенные области памяти).
- -k
- Показать драйверы ядра, обрабатывающие каждое устройство, а также модули ядра, способные его обрабатывать. Включается по умолчанию, если в обычном режиме вывода указан -v. (В настоящее время работает только в Linux с ядром версии 2.6 и выше.)
- -x
- Показать шестнадцатеричный дамп стандартной части конфигурационного пространства (первые 64 байта или 128 байт для мостов CardBus).
- -xxx
- Показать шестнадцатеричный дамп всего конфигурационного пространства PCI. Это доступно только для пользователя root, так как некоторые устройства PCI "выдают ошибку" crash при попытке прочитать некоторые части конфигурационного пространства (такое поведение, вероятно, не нарушает стандарт PCI, но, по крайней мере, выглядит очень глупо). Однако такие устройства встречаются редко, так что не стоит сильно беспокоиться.
- -xxxx
- Показать шестнадцатеричный дамп расширенного (4096 байт) конфигурационного пространства PCI, доступного на шинах PCI-X 2.0 и PCI Express.
- -b
- Представление с точки зрения шины. Отображение всех номеров и адресов прерываний IRQ в том виде, в котором их видят платы на шине PCI, а не в том, в котором их видит ядро.
- -D
- Всегда отображать номера доменов PCI. По умолчанию lspci не отображает их на компьютерах, у которых есть только домен 0.
- -P
- Идентифицировать устройства PCI по пути прохождения через каждый мост, а не по номеру шины.
- -PP
- Идентифицировать устройства PCI по пути прохождения через каждый мост, указав номер шины и номер устройства.
Опции управления преобразованием идентификаторов в наименования¶
- -n
- Отображать коды производителей и устройств PCI в виде чисел, а не искать их в списке идентификаторов PCI ID.
- -nn
- Отображать коды производителей и устройств PCI как в виде чисел, так и в виде названий.
- -q
- Использовать DNS для запроса к центральной базе данных идентификаторов PCI ID, если устройство не найдено в локальном файле pci.ids. Если запрос к DNS выполнен успешно, то результат кэшируется в $XDG_CACHE_HOME/pci-ids и распознается при последующих запусках, даже если -q больше не используется. Пожалуйста, используйте этот переключатель только в автоматизированных скриптах и с осторожностью, чтобы не перегружать серверы базы данных.
- То же, что и -q, но локальный кэш сбрасывается.
- -Q
- Запросить данные из центральной базы даже для тех записей, которые распознаются локально. Используйте эту функцию, если считаете, что отображенная запись неверна.
Опции выбора устройств¶
- -s [[[[<domain>]:]<bus>]:][<device>][.[<func>]]
- Показать только устройства в указанном домене (если на вашем компьютере несколько хост-мостов, они могут либо использовать общий диапазон номеров шин, либо каждый из них может обращаться к собственному домену PCI; домены нумеруются от 0 до ffff), шины (от 0 до ff), устройство (от 0 до 1f) и функции (от 0 до 7). Каждый компонент адреса устройства можно не указывать или заменить на "*", что означает "любое значение". Все числа указаны в шестнадцатеричной системе счисления. Например, "0:" означает все устройства на шине 0, "0" — все функции устройства 0 на любой шине, "0.3" — третью функцию устройства 0 на всех шинах, а ".4" — только четвертую функцию каждого устройства.
- -d [<vendor>]:[<device>][:<class>[:<prog-if>]]
- Показать только устройства с указанным идентификатором ID производителя, устройства, класса и интерфейса программирования. Идентификаторы указываются в шестнадцатеричном формате и могут быть опущены или заменены на "*", что означает "любое значение". Идентификатор класса может содержать символы "x", обозначающие "любую цифру".
При объединении -s и -d выбираются только устройства, соответствующие обоим критериям. Если одна и та же опция используется несколько раз, то последняя из них имеет приоритет, и выдается предупреждение.
Другие параметры¶
- -i <file>
- Использовать <file> в качестве списка идентификаторов PCI ID вместо /usr/share/misc/pci.ids.
- -p <file>
- Использовать <file> в качестве карты идентификаторов PCI ID, обрабатываемых модулями ядра. По умолчанию lspci использует /lib/modules/kernel_version/modules.pcimap. Применимо только к системам Linux с достаточно новыми инструментами для работы с модулями.
- -M
- Включить режим сопоставления шин, который выполняет тщательное сканирование всех устройств PCI, в том числе тех, которые подключены через неправильно настроенные мосты и т. д. Эта опция дает значимые результаты только в режиме прямого аппаратурного доступа, для которого обычно требуются права суперпользователя. По умолчанию программа сопоставления шин сканирует домен. С помощью опции -s можно выбрать другой домен.
- --version
- Отобразить версию lspci. Эта опция должна применяться отдельно от других.
Опции доступа к PCI¶
Утилиты PCI используют библиотеку PCI для взаимодействия с устройствами PCI (подробности смотрите в pcilib(7)). Вы можете использовать следующие опции, чтобы изменить их поведение:
- -A <method>
- Библиотека поддерживает различные методы доступа к аппаратуре PCI. По умолчанию используется первый доступный метод доступа, но с помощью этой опции можно изменить это значение. Список доступных методов и их описание смотрите в подразделе -A help.
- -O <param>=<value>
- Поведение библиотеки контролируется несколькими именованными параметрами. Эта опция задает значение любого из параметров. Для получения списка известных параметров и их значений по умолчанию используйте -O help.
- -H1
- Использовать прямой доступ к аппаратуре через механизм настройки Intel 1. (сокращение от -A intel-conf1.)
- -H2
- Использовать прямой доступ к аппаратуре через механизм настройки Intel 2. (это сокращение от -A intel-conf2.)
- -F <file>
- Вместо обращения к реальной аппаратуре прочитать список устройств и значения их регистров конфигурации из указанного файла, созданного при предыдущем запуске lspci -x. Если файл file — это один прочерк (-), то прочитать содержимое из стандартного ввода.
- Это очень удобно для анализа пользовательских отчетов об ошибках, поскольку вы можете отобразить конфигурацию оборудования любым удобным для вас способом, не отвлекая пользователя запросами на отправку дополнительных дампов.
- -G
- Увеличить уровень отладки библиотеки.
МАШИНОЧИТАЕМЫЙ ВЫВОД¶
Если вы планируете автоматически обрабатывать результаты lspci, то используйте один из машиночитаемых форматов вывода (-m, -vm, -vmm), описанных в этом разделе. Все остальные форматы могут меняться в разных версиях lspci.
Все числа всегда выводятся в шестнадцатеричном формате. Если вы хотите обрабатывать числовые идентификаторы, а не наименования, то добавьте переключатель -n.
Простой формат (-m)¶
В простом формате каждое устройство описывается в одной строке, которая форматируется как набор параметров, подходящих для передачи в сценарий командной оболочки, то есть значений, разделенных пробелами, заключенных в кавычки и при необходимости экранированных. Некоторые аргументы являются позиционными: слот, класс, название производителя, название устройства, название производителя подсистемы и название подсистемы (последние два аргумента не указываются, если у устройства нет подсистемы); остальные аргументы являются дополнительными.
Относительный порядок позиционных аргументов и опций не определен. В будущих версиях могут быть добавлены новые опции, но они всегда будут иметь один аргумент, не отделенный от опции пробелами, поэтому их можно легко проигнорировать, если они не распознаются.
Подробный формат (-vmm)¶
Подробный вывод представляет собой последовательность записей, разделенных пустыми строками. Каждая запись описывает одно устройство с помощью последовательности строк, каждая строка содержит одну пару "тег:значение" - tag: value. Символы tag и value разделены одним символом табуляции. Ни записи, ни строки внутри записи не расположены в каком-либо определенном порядке. В тегах учитывается регистр символов.
Определены следующие тэги:
- Slot
- Название слота, в котором находится устройство ([domain:]bus:device.function). Этот тег всегда является первым в записи.
- Class
- Наименование класса.
- Vendor
- Наименование продавца.
- Device
- Наименование устройства.
- SVendor
- Название продавца подсистемы (необязательно).
- SDevice
- Название подсистемы (необязательно).
- PhySlot
- Физический слот, в котором находится устройство (необязательно, только для Linux).
- Rev
- Номер редакции (необязательно).
- ProgIf
- Интерфейс программирования (необязательно).
- Driver
- Драйвер ядра, который в данный момент обрабатывает устройство (необязательно, только для Linux).
- Module
- Сообщение от модуля ядра, что он способен управлять устройством (необязательно, только для Linux). Может быть несколько строк с этим тегом.
- NUMANode
- Узел NUMA, к которому подключено это устройство (необязательно, только для Linux).
- IOMMUGroup
- Группа IOMMU, частью которой является это устройство (необязательно, только для Linux).
В будущих версиях могут быть добавлены новые теги, поэтому не обращайте внимания на те, которые вам незнакомы.
Подробный формат с обратной совместимостью (-vm)¶
В этом режиме lspci обеспечивает полную совместимость со старыми версиями. Это почти то же самое, что обычный подробный формат, но тег Device используется как для слота, так и для названия устройства, поэтому в одной записи он встречается дважды. Пожалуйста, не используйте этот формат в новом коде.
ФАЙЛЫ¶
- /usr/share/misc/pci.ids
- Список всех известных идентификаторов PCI (производителей, устройств, классов и подклассов). Обновляется на сайте https://pci-ids.ucw.cz/. Для загрузки последней версии используйте утилиту update-pciids.
- /usr/share/misc/pci.ids.gz
- Если lspci скомпилирован с поддержкой сжатия, то этот файл проверяется перед pci.ids.
- $XDG_CACHE_HOME/pci-ids
- Все идентификаторы, найденные в режиме DNS-запроса, кэшируются в этом файле.
ПРОГРАММНЫЕ ОШИБКИ¶
Иногда lspci не может полностью расшифровать регистры конфигурации. Обычно это происходит, когда у авторов недостаточно документации. В таких случаях программа выводит хотя бы метку <?>, чтобы показать, что, возможно, есть что-то ещё, о чём можно сказать. Если вам известны подробности, мы будем рады вашим исправлениям.
Доступ к расширенному пространству конфигурации в настоящее время поддерживается только бэкендом linux_sysfs.
СМОТРИТЕ ТАКЖЕ¶
АВТОР¶
Утилиты PCI сопровождаются Мартином Маресом (Martin Mares) <mj@ucw.cz>.
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал(и) Василий Коломеец <boojuman@gmail.com> и Aleksandr Felda <afelda@ro.ru>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 05.04.2026 | pciutils-3.15.0 |