Соберите все подключенные устройства на Linux
Я пытаюсь написать компонент, который собирает данные о подключенных / подключенных устройствах.
Мой компонент должен работать как в Linux, так и в Windows. В настоящее время мне удалось сделать это на компьютерах с Windows, запросив Win32_PnPEntity.
Я ищу способ программно собирать данные обо всех подключенных устройствах (например, USB-устройства, диски, Bluetooth и т. Д.) В Linux.
После поиска в Интернете я не нашел никакого решения, чтобы получить всю эту информацию.
Как я уже сказал, в Windows я могу запросить Win32_pnpentity, есть ли способ сделать то же самое в Linux? (Я скорее не использую утилиты, такие как lshw и т. Д...)
Спасибо, Амит.
1 ответ
libusb предлагает примеры / listdevs.c, и этот код должен одинаково хорошо работать в Windows и Linux.
Кроме того, вы можете просто покопаться в /sys/bus/usb/devices
, Например, записи типа 1-2
, 1-4
, (цифра, тире и цифра) представляют целые подключенные устройства, и эти каталоги содержат manufacturer
а также product
файлы, представляющие устройство.
Я бы использовал подход libusb для всего, что хотел широко распространять. Если вы делаете внутренний код, то подход с использованием каталогов должен работать хорошо. Изменений в интерфейсе должно быть мало и далеко друг от друга.