Если у нас есть список перечисленных USB-устройств, например, результат lsusb
, и мы смотрим на /dev
, как мы можем определить, какие узлы устройств в /dev
созданы из определенного USB-устройства?
Я знаю, что есть несколько похожих вопросов, но большинство из них сопровождаются более конкретным примером, и принятые ответы также являются специализированными.
решение1
В нем /sys/bus/usb
вы найдете все, что вам нужно. Он немного запутан, но вполне поддается анализу.
Например (на моей машине Ubuntu) существование пути /sys/bus/usb/drivers/usb-storage/4-4\:1.0/host1/target1\:0\:0/1\:0\:0\:0/block/sdd
говорит мне, что блочное устройство sdd
находится по адресуusb-4-4:1.0
Это соответствует
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 3: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 4: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M