Symbol Barcode Scanner - funktioniert nicht

1

Ich habe ein seltsames Problem mit einem Barcodescanner, den ich testen möchte. Lassen Sie sich vorab sagen, dass ich weder die Marke noch das Modell des Geräts kenne, abgesehen davon, was das System sagt.

Wenn ich es anschließe, reagiert das Gerät überhaupt nicht (normalerweise blinken die Scanner, gucken ... Sie verstehen), aber es wird irgendwie vom System erkannt (Ubuntu 15.10 64Bit):

Ausgabe von dmesg:

[ 4499.987323] usb 1-2: new full-speed USB device number 11 using xhci_hcd
[ 4500.116992] usb 1-2: New USB device found, idVendor=05e0, idProduct=1900
[ 4500.117000] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 4500.117003] usb 1-2: Product: Symbol Bar Code Scanner
[ 4500.117006] usb 1-2: Manufacturer: Symbol Technologies, Inc, 2008
[ 4500.117009] usb 1-2: SerialNumber: S/N:B78495535C643D4AAC4AD8C7C803D91A Rev:PAABLS00-003-R009
[ 4500.121560] hid-generic 0003:05E0:1900.000F: hiddev0,hidraw1: USB HID v1.10 Device [Symbol Technologies, Inc, 2008 Symbol Bar Code Scanner] on usb-0000:00:14.0-2/input0

Ausgabe von USB-Geräten:

T:  Bus=01 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 11 Spd=12  MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=05e0 ProdID=1900 Rev=01.00
S:  Manufacturer=Symbol Technologies, Inc, 2008
S:  Product=Symbol Bar Code Scanner
S:  SerialNumber=S/N:B78495535C643D4AAC4AD8C7C803D91A Rev:PAABLS00-003-R009
C:  #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=00 Prot=00 Driver=usbhid
I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=00 Driver=(none)

Es scheint jedoch nicht als Eingabegerät ( xinput list) berücksichtigt zu werden , wie es passiert, wenn ich einen anderen Barcode-Scanner (z. B. eine Honeywell Eclipse) anschließe:

↳ Honeywell Scanning and Mobility Honeywell Scanning and Mobility Scanner   id=16   [slave  keyboard (3)]

Soweit ich weiß, funktioniert das Gerät unter Windows 7 problemlos und verwendet den Treiber:

Symbol SNAPI USB Imaging Driver v1.1.2, der für Linux anscheinend nicht verfügbar ist.

Also im Grunde bin ich hier total verloren und weiß nicht, wie ich vorgehen soll ... Jede Hilfe wäre dankbar!

Grüße

Eduardo López
quelle

Antworten:

0

Also habe ich das endlich geklärt und es hat sich herausgestellt, dass es auch für andere Geräte wie Kunden-Displays und generell für alle anderen "serial to usb" -Geräte hilfreich sein kann, die nicht automatisch auf ttyUSBX abgebildet werden.

Das Hauptproblem scheint zu sein, dass der Treiber ftdi_sio (Seriell zu USB-Treiber) ein bestimmtes Gerät nicht automatisch erkennt, obwohl das USB-Subsystem dies tut (lsusb). Zusätzlich kann dieses Kernelmodul je nach Distribution geladen oder nicht geladen sein. Unser Hauptziel ist es also:

  • Laden Sie ggf. den Treiber ftdi_sio
  • Registrieren Sie unser Produkt im Treiber ftdi_sio

Laden Sie den Treiber ftdi_sio

Wenn es geladen ist, sollte der lsmod | grep "ftdi_sio"Befehl in einer Terminal-Eingabeaufforderung etwa Folgendes ausgeben:

ftdi_sio               53248  0
usbserial              53248  1 ftdi_sio

Ansonsten müssen wir es laden:

  • Befristet durch Ausgabe des Befehls sudo modprobe ftdi_sio
  • Indem Sie die Zeile ftdi_sioam Ende der /etc/modulesDatei (möglicherweise in Nicht-Debian-Distributionen anders!) Hinzufügen und neu starten.

Registrieren Sie unser Produkt im Treiber ftdi_sio

Ok, das Modul sollte jetzt geladen sein. Jetzt müssen wir das Produkt im Treiber registrieren. Hier kommt der alberne Teil, weil einige Hersteller Ihnen den folgenden Befehl empfehlen:

modprobe ftdi_sio vendor=05e0 product=1900

Wobei Hersteller und Produkt die Werte sind, die Sie vom USB-Subsystem erhalten, indem Sie zum Beispiel den usb-devicesBefehl absetzen und "0x" voranstellen;

Nach diesem Commit hat dies jedoch ab Kernel 3.12 absolut nichts mehr zu bedeuten:

Entfernen Sie die Hersteller- und Produktmodulparameter, die vor langer Zeit hinzugefügt wurden, als wir nicht über die dynamische sysfs-Schnittstelle zum Hinzufügen neuer Geräte-IDs verfügten (und die nicht auf ein einzelnes neues VID / PID-Paar beschränkt sind).

Ein VID / PID-Paar kann mithilfe von sysfs dynamisch hinzugefügt werden. Beispiel:

echo 0403 1234> / sys / bus / usb-serial / drivers / ftdi_sio / new_id

Korrigieren Sie auch den In-Code-Kommentar, bei dem der sysfs-Pfad falsch angegeben wurde.

Abgezeichnet von: Johan Hovold Abgezeichnet von: Greg Kroah-Hartman

Nach diesen Informationen müssen Sie also den folgenden Befehl ausgeben:

echo 05e0 1900 >/sys/bus/usb-serial/drivers/ftdi_sio/new_id

Ich kann mich momentan nicht erinnern, ob danach ein Neustart erforderlich ist. Denken Sie jedoch daran, wenn das Gerät danach nicht sofort funktioniert.

Zusammenfassung

Zum Glück liebe ich meinen Job mehr als meine Frau. (OMF Zitat ;-))

Eduardo López
quelle