如何区分相同的 USB

如何区分相同的 USB

我有一个系统,其中有 8 个 USB RFID 读取器,我想将它们彼此区分开来。以下是摘录自lsusb

Bus 002 Device 011: ID 05fe:1010 Chic Technology Corp. Optical Wireless
Bus 002 Device 012: ID 05fe:1010 Chic Technology Corp. Optical Wireless

如您所见,两个 USB RFID 阅读器的idVendor和是相同的。idProduct

Q1:有人能帮我做一个吗 --attrubute-walk udev info 这样我就能知道是否有任何参数是每个读者独有的。(我使用的是 Ubuntu 14.04 LTS)

这是我认为应该查看的系统路径,以及文件夹包含的内容:

nicolai@nicolai-K53SV:~$ ls /sys/bus/usb/devices/
1-0:1.0  1-1:1.0  1-1.2:1.0  1-1.4      2-0:1.0  2-1:1.0  4-0:1.0  usb2  usb4
1-1      1-1.2    1-1.2:1.1  1-1.4:1.0  2-1      3-0:1.0  usb1     usb3

因此我当然尝试了以下方法:

udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb1
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb2
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb3
udevadm info --attribute-walk --path=/sys/bus/usb/devices/usb4

但我似乎找不到顶部列出的两个设备(ID 为 05fe:1010)。

Q2:如果有一个对于单个读者来说是唯一的参数,我如何(希望使用 python)区分它们?

下面是一些我认为可以使用的 Python 代码(直到我意识到每个 RFID 阅读器的 ID 都是相同的)

import usb

dev = usb.core.find(idVendor=0x05fe,idProduct=0x1010)
if dev is None:
    raise ValueError('Device not found')
else:
    print('Device found')


更新

答案1:以下是的输出lsusb -vhttp://paste.ubuntu.com/7818192/

从图中可以看出,iSerial 为零,其他所有属性对于两个设备来说都是相同的。

对于第二季度来说:我想知道我是否可以使用setserialbash 命令将序列写入 USB RFID 阅读器。如果可以,这个序列是否在断电后仍会保存,还是必须创建一个每次启动时都创建序列的脚本?

任何建议都是有帮助的。

相关内容