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
この情報を直接提供できるユーティリティはわかりませんが、いくつかの異なるユーティリティを使用して取得できます。
最短ルート:
udevadm info -q all -p /sys/bus/usb/devices/6-0:1.0
これにより、次のように表示される行の出力が得られます(明らかに、この出力はシステムと一致しません)。
E: DEVICE=/proc/bus/usb/006/053
次に、lsusb
を実行し、Bus 006
Device 053
(上記の行の006/053
から)でデバイスを探します。これがデバイスになります。
。
詳細については、必要に応じてその/sys/bus/usb/devices/6-0:1.0
をざっと見てください。代わりに、udevadm
コマンドをudevadm info -a -p ...
に変更して、udevツリーを上に移動することもできます。