如何获取USB设备的总线ID

lap*_*asz 15 usb devices

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

echo -n "1-1:1.0" > /sys/bus/usb/drivers/ub/unbind
Run Code Online (Sandbox Code Playgroud)

所以为了能够做到这一点,我需要总线 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
Run Code Online (Sandbox Code Playgroud)

并且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
Run Code Online (Sandbox Code Playgroud)

那么我在哪里可以找到这个巴士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
Run Code Online (Sandbox Code Playgroud)

dir*_*rkt 11

你可以从你得到的设备树中读出序列lsusb -t。连字符前的数字是总线,连字符后的数字是端口序列。你的设备在 bus 上01,在1这个总线的根集线器的端口上是另一个集线器,在3这个集线器的端口上是你的设备:所以你得到1-1.3.

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

grep 148f /sys/bus/usb/devices/*/idVendor
Run Code Online (Sandbox Code Playgroud)

你会得到类似的东西

/sys/bus/usb/devices/1-1.3/idVendor:148f
Run Code Online (Sandbox Code Playgroud)

作为答案。如果有来自同一供应商的多个设备,您可以使用idProduct.


see*_*con 10

当我正在苦苦寻找时,productVendor 我一直在想这不会那么难(尽管很有创意)......也可能是 RTFM。man lsusb:

-t, --tree
              Tells lsusb to dump the physical USB device hierarchy as a tree. Verbosity can be increased twice with the v option.
Run Code Online (Sandbox Code Playgroud)

...两次。两次。lsusb -tvv:

/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    ID 1d6b:0001 Linux Foundation 1.1 root hub
    /sys/bus/usb/devices/usb6  /dev/bus/usb/006/001
    |__ Port 2: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
        ID 0bda:8771 Realtek Semiconductor Corp.
        /sys/bus/usb/devices/6-2  /dev/bus/usb/006/002 <--these guys right here
    |__ Port 2: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M
        ID 0bda:8771 Realtek Semiconductor Corp.
        /sys/bus/usb/devices/6-2  /dev/bus/usb/006/002
Run Code Online (Sandbox Code Playgroud)