Соберите все подключенные устройства на Linux - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь написать компонент, который собирает данные о подключенных / подключенных устройствах.

Мой компонент должен работать как в Linux, так и в Windows. В настоящее время мне удалось сделать это на компьютерах с Windows, запросив Win32_PnPEntity.

Я ищу способ программно собирать данные обо всех подключенных устройствах (например, USB-устройствах, дисках, Bluetooth и т. Д.) В Linux.

После поиска в интернете, Я не нашел никакого решения, чтобы получить всю эту информацию.

Как я уже сказал, в Windows я могу запросить Win32_pnpentity, Есть ли способ сделать то же самое в Linux? (Я скорее не использую утилиты, такие как lshw и т. Д.)

Спасибо, Амит.

1 Ответ

0 голосов
/ 29 августа 2018

libusb предлагает examples / listdevs.c , и этот код должен одинаково хорошо работать в Windows и Linux.

Кроме того, вы можете просто поковыряться в /sys/bus/usb/devices. Например, записи типа 1-2, 1-4, (цифра, тире и цифра) представляют целые подключенные устройства, и эти каталоги содержат файлы manufacturer и product, представляющие устройство.

Я бы использовал подход libusb для всего, что хотел широко распространять. Если вы делаете внутренний код, то подход с использованием каталогов должен работать хорошо. Изменений в интерфейсе должно быть немного и далеко друг от друга.

...