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

lsusbベンダーID(Ralinkなど)がわかっている場合は、次のものを使用することもできます148fgrep

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

あなたは次のようなものを得るでしょう

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

答えとして。同じベンダーに複数のデバイスがある場合は、絞り込みを使用できますidProduct

答え2

一生懸命検索しているときproductVendor

答え3

最後にUSBデバイスの正しいバスIDが見つかりました。/sys/bus/usb/devices/次の内容を含むすべてのIDを一覧表示するファイルがあります。

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

これはlsusb0.5秒ごとに実行され、実行間の違いを強調表示します。単にデバイスを接続して再挿入すると、関連するデバイスが強調表示されます。

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

引用する

関連情報