如何获取USB设备的总线ID

如何获取USB设备的总线ID

我想绑定/取消绑定我的 USB 设备 - 无线适配器。

echo -n "1-1:1.0" > /sys/bus/usb/drivers/ub/unbind

为了做到这一点,我需要总线 ID。lsusb打印出以下内容:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter

lsusb -t

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
        |__ Port 2: Dev 4, If 0, Class=vend., Driver=rt73usb, 480

那么在哪里可以找到这个公交车ID呢?谢谢!
更新: 以下是有关无线设备的详细信息:( lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null)

Bus 001 Device 004: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2

答案1

您可以从获得的设备树中读取序列lsusb -t。连字符之前的数字是总线,连字符之后的数字是端口序列。您的设备位于总线 上,该总线的根集线器的01端口上是另一个集线器,而该集线器的端口上是您的设备:因此您得到。131-1.3

如果您知道供应商 ID lsusb(例如148fRalink),您也可以grep使用

grep 148f /sys/bus/usb/devices/*/idVendor

你会得到类似的东西

/sys/bus/usb/devices/1-1.3/idVendor:148f

作为答案。如果同一供应商有多个设备,您可以使用 缩小范围idProduct

答案2

当我正在苦苦寻找productVendor

答案3

最后我找到了USB设备的正确总线ID。有一个文件列出了所有 ID,/sys/bus/usb/devices/内容如下:

root@raspberrypi:/home/pi# ls /sys/bus/usb/devices
1-0:1.0  1-1  1-1.1  1-1:1.0  1-1.1:1.0  1-1.3  1-1.3:1.0  usb1

以及相应的lsusb:

root@raspberrypi:/home/pi# lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
        |__ Port 3: Dev 17, If 0, Class=vend., Driver=rt73usb, 480M

root@raspberrypi:/home/pi# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 017: ID 148f:2573 Ralink Technology, Corp. RT2501/RT2573 Wireless Adapter

所以我尝试使用 1-1.3 作为 ID,成功了。但 1-3 却失败了。

root@raspberrypi:/home/pi# echo -n "1-3" > /sys/bus/usb/drivers/usb/unbind
bash: echo: write error: No such device

答案4

对我来说,查找总线 ID:设备 ID (nnn:mmm) 的最简单方法是:

watch -n 0.5 -d lsusb

这将lsusb每半秒运行一次并突出显示运行之间的差异。只需插入并重新插入设备,相关设备就会突出显示。

Bus 001 Device 006 # → Bus ID: 001, Device: ID 006

参考

相关内容