У меня есть USB-считыватель RFID, и основное программное обеспечение, которое я нашел в Linux, может использовать его через /dev/ttyUSB0 устройство.

Когда я подключил его к своему ноутбуку, я вижу, что команда lsusb возвращает:

Bus 001 Device 012: ID ffff:0035

Или sudo lsinput возвращает:

/dev/input/event16
   bustype : BUS_USB
   vendor  : 0xffff
   product : 0x35
   version : 272
   name    : "Sycreader USB Reader"
   phys    : "usb-0000:00:14.0-1/input0"
   uniq    : "08FF20150112"
   bits ev : (null) (null) (null) (null) (null)

Я уже настроил правила в

more /etc/udev/rules.d/20-rwrfid.rules 
# Chinese RFID RW
ATTR{idVendor}=="ffff", ATTR{idProduct}=="0035", MODE="664", GROUP="plugdev"

Что я пропустил ?

1
dubis 2 Авг 2018 в 22:59
Вы пытались запустить evtest /dev/input/event16 (или любой другой номер, который он получает при подключении) и что-то сканировать с помощью ридера? Вы что-нибудь видите?
 – 
dirkt
6 Авг 2018 в 11:17

2 ответа

Устройство не представляет себя как устройство с последовательным портом USB, поэтому оно не получит устройство /dev/ttyUSB*. По-видимому, он представляет собой устройство ввода USB.

Вы не сможете использовать /dev/bus/usb/001/012 точно так же, как устройство /dev/ttyUSB*: для использования этих устройств потребуется использовать libusb, hidapi или USB-API ядра Linux напрямую.

Погуглив «Sycreader USB Reader», я вижу, что по крайней мере некоторые продукты Sycreader делают вид, что они являются устройством ввода USB.

Утверждается, что этот скрипт Python работает с некоторыми устройствами Sycreader: его также можно адаптировать к вашему устройству.

2
telcoM 6 Авг 2018 в 11:39

Вы можете монтировать блочные устройства только для файловых систем.

Если вы хотите использовать его как /dev/ttyUSB0, вам нужен драйвер, чтобы представить его как последовательное устройство. Если бы был драйвер для этого устройства, он бы уже загрузился.

Идентификатор поставщика 0xffff странный. Возможно, ваш ридер совместим с другим USB-устройством. Если это так, вы должны выяснить, какой драйвер будет работать для вашего устройства, и загрузить этот драйвер. Кроме того, вы должны убедить водителя принять ваше устройство. Детали этого зависят от водителя.

Изменить:

Бег

lsusb -d ffff:0035 -v

И найдите слово «Класс». это должно сказать вам, какой драйвер может работать для вашего USB-устройства.

1
RalfFriedl 6 Авг 2018 в 08:30
Может я не правильно задал вопрос. В моем случае я должен использовать эту шину: /dev/bus/usb/001/012 или что-то в этом роде.
 – 
dubis
3 Авг 2018 в 09:32
Слово "крепление" не подходит, остальное понятно. Я добавил абзац о lsusb.
 – 
RalfFriedl
6 Авг 2018 в 08:31