Соберите все подключенные устройства на 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 для всего, что хотел широко распространять. Если вы делаете внутренний код, то подход с использованием каталогов должен работать хорошо. Изменений в интерфейсе должно быть мало и далеко друг от друга.

Другие вопросы по тегам