Насколько я понимаю, linux может перечислять только те устройства, которые он понимает, т.е. для которых установлены драйверы. Я думаю, что lspci - это команда для этого.
Но как можно выяснить, существует ли в системе какое-то устройство, для которого не установлены драйверы, и, возможно, какой-то намек на то, для чего это устройство и какой драйвер подойдет для него.
Я хотел бы знать эту информацию, чтобы иметь возможность перекомпилировать свое ядро Linux до минимума и хотел бы избежать пробного подхода.
lspci -v
покажет подключенные устройства, даже если нет соответствующего драйвера.
lspci сделает свое дело, как говорят некоторые другие.
Некоторые дополнительные пояснения:
Каждый современный шинный интерфейс (Vesa Local Bus, PCMCIA, CardBus, PCI, PCI-X, PCI-e, Thurderbolt, IDE, ATAPI, SATA, USB, Firewire, и это лишь некоторые из них, которые приходят на ум) определяет набор низкоуровневые команды проверки, чтобы ОС могла определить, какие устройства (если есть) присутствуют на этой шине.
Такие команды возвращают в ОС идентификатор устройства. Затем ОС сравнивает этот идентификатор с идентификаторами, которые драйверы «рекламируют» как идентификаторы, которые они считают способными обрабатывать.
Это необходимо, поскольку в противном случае ОС не могла бы определить, что находится в машине. Если ОС не может определить, что там есть, у нее нет способа сопоставить устройство с требуемым драйвером.
(Вышесказанное верно для любой современной ОС. Linux, Windows и OSX делают то же самое.)
Вернемся к Linux:
Драйверы ОС для этого являются частью основных драйверов для различных интерфейсных шин, которые должны присутствовать в ядре (или как загружаемый модуль).
Конечно: любой шинный интерфейс / драйверы устройств, необходимые для загрузки и загрузки корневой файловой системы, должны находиться в ядре во время загрузки. Все остальное может быть модулем, если вы хотите уменьшить размер ядра, или вообще опускаться, если такого оборудования в системе нет вообще.
Типичная первая ошибка - создание ВСЕХ модулей драйверов файловой системы. Вам понадобится хотя бы один из них, чтобы иметь возможность загружать корневую файловую систему.
Мне также нравится lshw
в тех дистрибутивах, чтобы предложить это.
Много полезной информации о ваших процессорах, слотах памяти, слотах USB, дисках и многом другом.
Если вам нужна расширенная информация обо всем оборудовании, вы можете использовать dmidecode
команда. Он выгружает содержимое таблицы DMI.