Libchipcard: Problem mit neuen Kerneln gefixed

Martin Preuss <[email protected]> Fri, 7 Sep 2007 18:27:56 +0200
Newsgroups gmane.comp.finance.aqbanking.devel,gmane.comp.lib.libchipcard.devel
Message-ID <[email protected]>
Moin,

wer die Autoconfiguration von Libchipcard verwendet, wird mit neueren Kerneln 
(ab ca 2.6.20) eventuell feststellen, dass die Leser staendig blinken...

Das liegt an einem neuen Feature des Linux-Kernels: Autosuspend fuer USB.

Konkret bedeutet das, dass der Kernel standardmaessig USB-Geraete in den 
Sleep-Modus versetzt, wenn sie 2 Sekunden lang nicht verwendet werden.

Sobald ein Prozess auf den Leser zugreift, wird dieser wieder aktiviert. 
Normalerweise testet Libchipcard alle 1-2 Sekunden, ob es neue Geraete gibt. 
Dazu verwendete es bisher Libusb.

Das Problem ist nun, dass Libusb scheinbar immer die Dateien in /proc/bus/usb 
oeffnet, um die USB-Deskriptoren zu lesen. Das veranlasst den Kernel aber 
wiederum, das Geraet zu reaktivieren.

Die Loesung ist nun, die Geraete statt mit libusb mit SysFS zu scannen 
(/sys/bus/usb/devices). Wir verwenden SysFS ja auch schon, um PCMCIA-Geraete 
zu scannen. 

Die aktuelle Entwicklungsversion von Libchipcard macht nun genau das. Ein 
weiterer Vorteil ist, dass Libchipcard ab dann nicht laenger von Libusb 
abhaengt. Das ist schon einmal eine Abhaengigkeit weniger :-)

Eventuell wird diese Aenderung auch noch in die letzte stabile Version von 
Libchipcard eingebaut.


Gruss
Martin Preuss

-- 
"Things are only impossible until they're not"

Martin Preuss - http://www.aquamaniac.de/
AqBanking - http://www.aqbanking.de/
LibChipcard - http://www.libchipcard.de/

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/