cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 
jkoerner
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 32
Dabei seit: 06 / 2006
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 08.07.2007 - 18:07 Uhr  ·  #21
Warte noch mal ein wenig bis Martin aka aquamaniac(der programmiert die Treiber für Reiner) aus dem Prüfungsstress 'raus ist. Der kann bestimmt mehr sagen...
aquamaniac
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Homepage: aqbanking.de/
Beiträge: 642
Dabei seit: 03 / 2005
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 10.07.2007 - 12:21 Uhr  ·  #22
Zitat geschrieben von mak83

Sobald ich den Kartenleser an den USB Port anschließe, leuchten kurz die Lämpchen, der Schriftzug erscheint und das Ding geht direkt wieder aus.


Wie vermutet ist das Problem das neue Kernel-"Feature" usb autosuspend :-(

Ich habe jetzt mal auf Sourceforge
eine hotfix-release des Treibers gemacht (mit Paketen fuer das ebenfalls betroffende Ubuntu 7.04).

Das sollte das Problem zumindest mit Moneyplex loesen, ich muss mit noch anschauen, wie das mit Libchipcard arbeitet. Da Libchipcard ja mittels Libusb pollt, duerfte der Leser wohl entweder an bleiben oder aber immer wieder an- und ausgehen (abhaengig von den timeout-Einstellungen in der Configdatei von Libchipcard). Da werde ich also wohl mittelfristig auf libsysfs umstellen muessen.

Das Problem scheint nach ersten Tests folgendes zu sein: In /proc/bus/usb ist das Geraet ja ganz normal zu sehen, aber mit "lsusb" nicht. Der Aufruf von "lsusb" schaltet das Geraet ein (scheint das Aequivalent von usb_init() bzw. usb_find_devices() zu sein), und anschliessend versucht libusb scheinbar sofort dem Leser Informationen zu entlocken.

Der Leser braucht aber ein paar Sekunden, um aus dem Tiefschlaf aufzuwachen, und solange scheint Libusb nicht zu warten, zumindest scheint der entsprechende Dateideskriptor wohl sofort wieder geschlossen zu werden. Damit schaltet der Linux-Kernel nach 2s den Leser wieder ab (also gerade dann, als der mit der Initialiserung fertig wird).

Eine temporaere Loesung in unserem Treiber ist nun, dass einfach fuer bis zu 5s versucht wird, den Leser zu finden. Damit wird der autosuspend-Timer des Kernels immer wieder resetted, bis der Leser bereit ist und antworten kann. Damit bekommt dann Libusb seine Informationen und der Leser bleibt an (und ist vor allem auch fuer den Treiber sichtbar).

Generell muesste das wohl in Libusb gefixed werden, aber scheinbar sind die Jungs da momentan nicht so aktiv, zumindest habe ich laenger nichts mehr auf der Mailingliste gelesen...

Zumindest auf unserem Laptop mit Ubuntu7.04 geht das nun...


Gruss
Martin Preuss
phlo
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 23
Dabei seit: 06 / 2007
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 10.07.2007 - 14:57 Uhr  ·  #23
Ahh super Martin,

vielen dank schon mal für das Feedback.
Ich werde das die nächsten Tage mal testen.

Was ist denn eure Distributions empfehlung ?

Gruß

phlo
aquamaniac
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Homepage: aqbanking.de/
Beiträge: 642
Dabei seit: 03 / 2005
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 10.07.2007 - 16:27 Uhr  ·  #24
Update:

Ich habe mir das nun noch genauer angesehen, und das Problem scheint zwischen dem Linux-Kernel und dem neuen Cyberjack zu liegen...

Der Leser laesst sich ganz normal in den Schlaf versetzen, aber wenn Linux versucht, den Leser aufzuwecken, scheint es irgendwie zu einem USB-disconnect zu kommen (man bekommt erst zu diesem Zeitpunkt eine Meldung vom Kernel, dass der Leser disconnektiert wurde).

Der gleiche Vorgang funktioniert bei einem pinpad_a (idProduct: 0x300) einwandfrei.

Mein Hotfix behebt dieses Problem vorerst, wenngleich die Ursache damit noch nicht behoben ist...

Es scheint aber zumindest nichts zu sein, was ich ansonsten mit dem Treiber beeinflussen kann, also muessen wir erst mal abwarten, was genauere USB-Analysen ergeben.

Wer auf seinem System und mit seinem Leser bisher keine Probleme hat, kann beim Treiber in der Version 3.0.0 bleiben, Leute mit dem besagten Problem sollten die neueste Version probieren.

BTW: Dass sich der Leser direkt nach dem Anschliessen (ca 2s spaeter) abschaltet, ist mit einem aktuellen Kernel (zumindest ab 2.6.20) normal, er sollte sich z.B. bei einem "lsusb" (oder Zugriff durch Moneyplex) aber wieder einschalten (und anschliessend dann nach 2s wieder abschalten).


Gruss
Martin
aquamaniac
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Homepage: aqbanking.de/
Beiträge: 642
Dabei seit: 03 / 2005
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 10.07.2007 - 19:16 Uhr  ·  #25
Zitat geschrieben von aquamaniac
Update:


Noch ein Update: Inzwischen habe ich hier eine Firmware-Version vorliegen, die auf meinem Ubuntu-System laeuft, es scheint also daran gelegen zu haben.

Ich denke mal, dass die neue Firmware demnaechst zum allgemeinen Download verfuegbar sein wird.

Mit dem aktuellen Treiber (seit 3.0.0) kann man den neuen Cyberjack uebrigends auch unter Linux flashen, dafuer gibt es das Tool "cjflash" (geht allerdings nur mit den Geraeten mit der Id 0x400, aber es sind eh nur diese neuesten Cyberjacks, die dieses Problem aufweisen).


Gruss
Martin
phlo
Benutzer
Avatar
Geschlecht: keine Angabe
Beiträge: 23
Dabei seit: 06 / 2007
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 11.07.2007 - 10:36 Uhr  ·  #26
Hallo Martin,

wo kann ich die firmware files denn finden?
Hatte die alten auch mal gesucht und nicht gefunden. Habe dann unter windows geflasht. Aber unter linux wäre das viel angenehmer (unter Virtualbox zu flashen ist mir nicht unbedingt geheuer)

Danke

phlo
aquamaniac
Benutzer
Avatar
Geschlecht: keine Angabe
Herkunft: Hamburg
Homepage: aqbanking.de/
Beiträge: 642
Dabei seit: 03 / 2005
Betreff:

Re: cyberjack e-com taucht nicht mal unter lsusb auf (Gentoo)

 · 
Gepostet: 11.07.2007 - 10:55 Uhr  ·  #27
Zitat geschrieben von phlo

wo kann ich die firmware files denn finden?


Die Download-Adresse gebe ich sobald wie moeglich bekannt, ich warte noch auf eine Freigabe durch Reiner SCT.

Es wird dann vermutlich eine tar.gz-Datei (wie unter Linux ueblich), und diese werde ich dann sehr wahrscheinlich auf
Sourceforge
veroeffentlichen.


Gruss
Martin Preuss

EDIT: Typo geaendert.
Gewählte Zitate für Mehrfachzitierung:   0