无需 lsusb 即可获取 USB 设备树

无需 lsusb 即可获取 USB 设备树

我有一个 USB 设备,想查看它的父设备是什么,即它连接到哪个集线器。原因是我正在调试睡眠模式的问题。但是,这是在嵌入式平台(Android)上,并且我的 lsusb 实现是由 toybox 提供的,因此我无法使用它来显示树。不交叉编译lsusb,如何找到这些信息?

例如,我尝试查看 /sys/bus/usb/devices/3-1/...,我想找到哪个 /sys/bus/usb/devices/usb?对应于所连接的(内部)集线器。

答案1

从设备树的数字编码返回。例如,我的网络摄像头位于/sys/bus/usb/devices/3-1.1.2,这意味着它位于总线 3、总线根集线器的端口 1、根集线器下方集线器的端口 1 以及最后一个集线器的另一个集线器的端口。

或者与lsusb -t

$ lsusb -t
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M
        |__ Port 1: Dev 102, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 2: Dev 103, If 2, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 2: Dev 103, If 0, Class=Video, Driver=uvcvideo, 480M
            |__ Port 2: Dev 103, If 3, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 2: Dev 103, If 1, Class=Video, Driver=uvcvideo, 480M

因此,您3-1将位于总线 3 的根集线器的端口 1 上。

相关内容