У меня есть эта система, где у меня есть 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
Как вы можете видеть, что idVendor
и idProduct
одинаковы для двух USB RFID-считывателей.
В1: Может ли кто-нибудь помочь мне сделать --attrubute-walk
с udev info
, чтобы я мог видеть, есть ли какой-либо параметр, который является уникальным для отдельных читателей. (Я использую Ubuntu 14.04 LTS)
Это путь sys, который, я думаю, я должен искать, и что содержит папка:
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
Но я не могу найти два устройства, перечисленных вверху (с идентификатором 05fe: 1010).
Q2: Если есть параметр, который является уникальным для отдельного читателя, как я могу (надеюсь, в python) различать их?
Вот некоторый код на Python, который я думал, что я мог использовать (пока я не понял, что идентификаторы одинаковы для каждого считывателя RFID)
import usb
dev = usb.core.find(idVendor=0x05fe,idProduct=0x1010)
if dev is None:
raise ValueError('Device not found')
else:
print('Device found')
A1: Вот вывод из lsusb -v
: http://paste.ubuntu.com/7818192/
Как можно видеть, iSerial равен нулю, а все остальные атрибуты одинаковы для обоих устройств.
Итак, для Q2: мне было интересно, могу ли я использовать команду setserial
bash для записи серийного номера в USB RFID-ридер. Если да, сохраняется ли этот сериал даже после отключения питания, или вам нужно создать сценарий, который создает сериалы при каждой загрузке?
Любое предложение полезно.