web-dev-qa-db-ja.com

USBの「ハブ6-0:1.0:ポート2」にあるデバイスを一意に識別するにはどうすればよいですか?

USB上にあるデバイスを一意に識別するにはどうすればよいですかhub 6-0:1.0: port 2

dmesgで時々メッセージを受信しますが、どのデバイスがそのポートに接続されているかをシステムに通知させたいです。

EDIT: OK、それがどのハブであるかはわかりますが、どのデバイスがポート2(4つのうち)にあるかはどうすればわかりますか。

udevadm info -q all -p /sys/bus/usb/devices/6-0:1.0
P: /devices/pci0000:00/0000:00:1d.0/usb6/6-0:1.0
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb6/6-0:1.0
E: DEVTYPE=usb_interface
E: DRIVER=hub
E: INTERFACE=9/0/0
E: MODALIAS=usb:v1D6Bp0001d0302dc09dsc00dp00ic09isc00ip00
E: PRODUCT=1d6b/1/302
E: SUBSYSTEM=usb
E: TYPE=9/0/0
E: UDEV_LOG=3
4
jippie

この情報を直接提供できるユーティリティはわかりませんが、いくつかの異なるユーティリティを使用して取得できます。

最短ルート:

udevadm info -q all -p /sys/bus/usb/devices/6-0:1.0

これにより、次のように表示される行の出力が得られます(明らかに、この出力はシステムと一致しません)。

E: DEVICE=/proc/bus/usb/006/053

次に、lsusbを実行し、Bus 006Device 053(上記の行の006/053から)でデバイスを探します。これがデバイスになります。

詳細については、必要に応じてその/sys/bus/usb/devices/6-0:1.0をざっと見てください。代わりに、udevadmコマンドをudevadm info -a -p ...に変更して、udevツリーを上に移動することもできます。

4
Patrick