Usb

如何獲取 USB 設備的匯流排 ID

  • December 26, 2021

我想綁定/取消綁定我的 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

您可以從您獲得的設備樹中讀取序列lsusb -t。連字元前面的數字是匯流排,連字元後面的數字是埠順序。您的設備在匯流排01上,在此匯流排的根集線器的埠1上是另一個集線器,在3此集線器的埠上是您的設備:所以你得到1-1.3.

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

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

你會得到類似的東西

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

作為答案。如果有來自同一供應商的多個設備,您可以使用 縮小範圍idProduct

最後我找到了 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

引用自:https://unix.stackexchange.com/questions/242546