sudoなしでiSerialを入手するには、lsusbを使用してください。

sudoなしでiSerialを入手するには、lsusbを使用してください。

私のsudoerユーザー(rootではない)の下に、私のデバイスにが含まれていることがわかりますlsusb。ただし、発行する必要があるiSerial番号を表示するにはlsusb -v多くの情報が印刷されますが、「デバイスを開くことができません。一部の情報はLost」も出力に表示されます。iSerialは欠落している情報の1つです。うまくいきますsudo lsusb -v

私はそれを試したsudo chmod -R o+rw /dev/bus/usb後、sudoなしでiSerialをチェックできます。しかし、再起動後は動作しません。新しいデバイスを接続しても役に立ちません。

これを行うより良い方法はありますか?

ベストアンサー1

udevがデバイスを認識すると、udevから情報を取得できます。たとえば、UPSデバイスがあります。

$ lsusb | grep UPS
Bus 004 Device 041: ID 0463:ffff MGE UPS Systems UPS

バスとデバイス番号(004/041)を使用すると、ルートでなくてもudevadmから情報を取得できます。これには、iSerial 値と同じ ID_SERIAL_SHORT 値が含まれます。

$ udevadm info -p $(udevadm info -q path -n /dev/bus/usb/004/041)
P: /devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.4/4-1.4.2
N: bus/usb/004/041
E: DEVNAME=/dev/bus/usb/004/041
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.4/4-1.4.2
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
...
E: ID_SERIAL=EATON_ELLIPSE_BX9M050Z1
E: ID_SERIAL_SHORT=BX9M050Z1
...

$ sudo lsusb -v -s 004:041 | grep iSerial
iSerial                 4 BX9M050Z1

おすすめ記事