Вопрос или проблема
Я хочу увидеть древовидную структуру всех устройств в Linux. В Windows я могу использовать Диспетчер устройств с функцией “показать по подключению”. BSD-системы сообщают такие данные в dmesg в формате “дочерний элемент у родительского” и имеют утилиты, такие как devinfo
, так что легко понять отношения между устройствами.
В Linux эта информация хранится в /sys
, но её формат не дружелюбен для пользователя.
Я могу запрашивать каждый шина с помощью lspci
, lsusb
, lsscsi
и т. д., но есть ли что-то, что я могу использовать для воссоздания полной иерархии устройств? lshw
показывает информацию о шине, но не о устройствах.
Утилиты на основе lshw
предоставят вам такой вывод. Для полного вывода выполните его от имени root.
Скорее всего, вам понадобится gtk-lshw
. На моей системе он выглядит так:
Здесь вы можете увидеть различные сущности (такие как USB контроллер, PCI мост), которые написаны жирным шрифтом и имеют отметку, указывающую на то, что они содержат подэлементы, в которые вы можете углубиться двойным щелчком.
Вы также можете выполнить sudo lshw -html > /tmp/devices.html
и затем открыть html файл в браузере, хотя в настоящее время (по состоянию на версию B.02.18
) его дизайн неудобен.
Примечание: есть небольшая ошибка в том, что кэши L1
, L2
, L3
отображаются так, как будто они принадлежат материнской плате, в то время как на самом деле они являются частью процессора. Кроме этого, древо выглядит корректно.
Ответ или решение
Инструменты для отображения иерархии устройств в Linux
В мире операционных систем Linux существует несколько инструментов, которые могут помочь вам визуализировать иерархию устройств в системе. Это может быть особенно полезно при диагностике или анализе конфигурации вашего оборудования. В отличие от Windows, где используются такие утилиты, как "Диспетчер устройств", Linux предлагает свои решения.
1. Использование lshw
Одним из наиболее мощных инструментов для отображения информации об аппаратуре является утилита lshw
. Она выводит детальную информацию о конфигурации системы и поддерживает вывод в удобном для пользователя формате.
-
Установка: В большинстве дистрибутивов Linux
lshw
можно установить с помощью пакетного менеджера. Например, для Ubuntu вы можете использовать команду:sudo apt-get install lshw
-
Использование: Для получения подробной информации об устройствах выполните команду:
sudo lshw
Если вы хотите получить графический интерфейс, можно установить
gtk-lshw
, который предоставляет дерево устройств и позволяет исследовать иерархию устройств:sudo apt-get install gtk-lshw
При запуске
gtk-lshw
на экране появится визуализированная структура, где основные компоненты (например, USB-контроллеры или PCI-шины) будут выделены жирным шрифтом. Доступ к подчиненным устройствам можно получить двойным щелчком мыши. -
HTML-вывод: Вы можете сохранить вывод
lshw
в формате HTML для удобства просмотра в веб-браузере:sudo lshw -html > /tmp/devices.html
Обратите внимание, что некоторые версии могут иметь не совсем удобный дизайн данного вывода.
2. Дополнительные утилиты
-
lspci
: Этот инструмент позволяет посмотреть на устройства, подключенные по шине PCI. Чтобы вывести список всех PCI-устройств, выполните:lspci
-
lsusb
: Для отображения устройств, подключенных по USB, используйте команду:lsusb
-
lsscsi
: Утилита для отображения SCSI-устройств:lsscsi
Каждое из этих средств предоставляет информацию, которая может быть полезной для анализа системы, но они показывают информацию на более низком уровне, чем lshw
.
3. Решение проблемы с иерархией
Хотя lshw
является отличным инструментом для вывода информации об устройстве, он имеет небольшой недостаток — кеши L1, L2 и L3 могут отображаться как принадлежащие материнской плате, в то время как на самом деле они являются частью процессора. Несмотря на это, вся информация о подключении между устройствами в целом выглядит корректной и подходит для большинства пользователей.
Заключение
В Linux действительно существует несколько способов визуализировать иерархию устройств. Использование lshw
и связанных с ним инструментов позволит вам получить комплексную и детализированную информацию о вашем аппаратном обеспечении в формате, удобном для работы. Это может значительно облегчить процессы диагностики и оптимизации системы.