[gnucash-de] Probleme mit Towitoko Chipdrive - genauere Informationen

Bernhard Kausler bernhardkausler at compuserve.de
Fre Mar 5 13:29:11 CST 2004


Hallo!

Hier sind jetzt meine genauen Konfigurationen. Danke schon mal an alle, 
die mir helfen bzw. helfen werden ;)
Mittlerweile haben mich schon andere Leute kontaktiert, die ähnliche 
Probleme haben. Langsam bekomme ich den Ehrgeiz, ein einfaches 
verständliches HOWTO für Computer-Laien zu entwickeln, die einfach nur 
Homebanking unter Linux möchten ohne sich mit den technischen Details 
befassen zu müssen.  (Vielleicht auch einen besseren Konf.-Assistenten 
entwickeln...)

So, zu Beginn, folgende Module sind geladen:
Module                  Size  Used by
pl2303                 15620  0
usbserial              26092  1 pl2303
sg                     30880  0
sd_mod                 11936  0
yenta_socket           14464  0
pcmcia_core            54208  1 yenta_socket
nvidia               1703212  12

"* USB readers: Linux kernel version 2.4.12 or greater with PL2303 USB
  serial driver enabled is needed.
  See http://www.linux-usb.org/USB-guide/book1.html
  Note that PL2303 support is still in experimental stage!
  Also note that pl2303.c drivers from kernel versions previous to 2.4.12
  will surely not work with this driver and will probably hang your 
machine."
So stehst in der README zum towitoko Treiber 2.0.7 von Carlos Prados. 
Meine Kernel-Version ist der gepachtte Gentoo-Kernel 2.6.3. Wie man 
sieht, ist der erforderliche Treiber geladen, allerdings "used by 0" 
obwohl zu dem Zeitpunkt mein Lesegerät eingesteckt ist.

Mein Leser wird folgendermaßen als USB-Gerät erkannt:

SPRx32 USB Smart Card Reader

Hersteller: SCM Microsystems Inc.
Seriennummer: 02001991

Klasse                      0 (Schnittstelle)
Unterklasse             0
Protokoll                 0
USB-Version           1.16
Anbieter-Kennung 0x4e6 (Shuttle Technology Inc.)
Produkt-Kennung  0xe003
Revision                  4.21
Geschwindigkeit    12 Mbit/s
Kanäle                      0
Max. Paketgröße    0

Soweit scheint alles in Ordnung zu sein.

Mein Notebook besitzt drei USB-Anschlüsse. Es werden allerdins 4 
UHCI-Kontroller erkannt. Der vierte ist wahrscheinlich der integrierte 
SD-Kartenleser. Das hab ich allerdins noch nicht ausprobiert.
So ich stecke jetzt mal einen Leser an alle drei Anschlüsse an. Folgende 
Messages druckt dabei mein system-logger:
Mar  5 19:39:32 nb-bdkausle usb 3-1: new full speed USB device using 
address 6
Mar  5 19:39:32 nb-bdkausle usb.agent[5863]: ... no modules for USB 
product 4e6/e003/415
Mar  5 19:39:33 nb-bdkausle usb 3-1: USB disconnect, address 6
Mar  5 19:39:38 nb-bdkausle usb 2-1: new full speed USB device using 
address 3
Mar  5 19:39:39 nb-bdkausle usb.agent[5923]: ... no modules for USB 
product 4e6/e003/415
Mar  5 19:39:39 nb-bdkausle usb 2-1: USB disconnect, address 3
Mar  5 19:39:46 nb-bdkausle usb 4-1: new full speed USB device using 
address 5
Mar  5 19:39:46 nb-bdkausle usb.agent[5977]: ... no modules for USB 
product 4e6/e003/415

Stecke ich den Leser immer wieder am selben Anschluss ein und aus, zählt 
die "address" jeweils um eins weiter und die (anscheinend) Prozessnummer 
(z.B. [5977]) wird erhöht.
Wie man sieht, erkennt der Kernel nicht, dass er hier doch jetzt 
bitteschön den "pl2303" Treiber einsetzen soll! Bloß warum nicht??

Meine libchipcard Konfigurationsdateien sehen folgendermaßen aus:
chipcardc.conf:
timeout="750"
maxmsg="20"
commands="/usr/share/libchipcard/commands"

[service/1]
type="local"
address="/tmp/chipcardd-socket"

chipcardd.conf:
type="local"
address="/tmp/chipcardd-socket"
timeout="750"
maxmsg="20"
enabled="1"

[reader/1]
readertype="towitoko"
drivertype="pcsc"                            #hier hab ich auch schon 
ctapi ausprobiert, ändert auch nichts
driver="/usr/lib/libtowitoko.so"
name="towitoko"
port="USB1"    #hier hab ich schon alles mögliche und unmögliche probiert
flags=                  #mein Leser hat ja eigentlich ein Pinpad, das 
soll aber erst in der kommenden Version 1.0 der libchipcard unterstützt 
werde. Also erstmal weglassen.

So, jetzt starte ich mal den pcscd mit ein paar Debuging-Ausgaben...
bash-2.05b# pcscd -d stdout
pcscdaemon.c:258 main: debug messages to stdout
pcscdaemon.c:395 main: warning: no reader.conf found

pcscdaemon.c:413 main: pcsc-lite daemon ready.

Gut keine Fehlermeldung. Das Ding ist im Standby.  Die reader.conf ist 
nur bei seriellen Lesegeräten erforderlich.
Zitat aus der README zu pcsc-lite:
"USB users do not need to use the /etc/reader.conf.  pcscd will give
a warning that the file does not exist or contain anything useful."

Mit einer passenden reader.conf gehts allerdins auch nicht.

So, jetz noch den libchipcardd starten.
bash-2.05b# chipcardd
Sehr schön, ebenfalls keine Fehlermeldung.

Aber oh! Was macht der pcscd da!!
winscard_msg.c:263 SHMProcessEvents: Common channel packet arrival
winscard.c:77 SCardEstablishContext: Establishing Context: 17024034
winscard.c:77 SCardEstablishContext: Establishing Context: 16977293
winscard.c:154 SCardConnect: Attempting Connect to towitoko
winscard.c:160 SCardConnect: Reader towitoko Not Found
winscard.c:154 SCardConnect: Attempting Connect to towitoko
.
.
.
winscard.c:154 SCardConnect: Attempting Connect to towitoko
winscard.c:160 SCardConnect: Reader towitoko Not Found
winscard.c:88 SCardReleaseContext: Releasing Context: 17024034
winscard.c:88 SCardReleaseContext: Releasing Context: 16977293
pcscdaemon.c:141 SVCServiceRun: Client 8 has disappeared.

hbcicard info fordert micht gleichzeitig auf:
bash-2.05b# hbcicard info
Kontaktiere Karte.
Bitten legen Sie Ihre Karte in einen Leser ein
Keine Karte innerhalb einiger Sekunden eingelegt, abgebrochen.
4:2004/03/05 20-10-08:hbcicard(7240):libchipcard.c:  523: Some requests 
still enlisted

Dabei hab ich doch wie ein Wahnsinniger alle möglichen Karten in das 
Gerät geschoben!
Schließlich hab ich den chipcardd-Prozess getötet.

Hier noch die Ausgaben des system-loggers zu diesen Vorgang:
Mar  5 20:07:06 nb-bdkausle chipcardd[7233]: chipcardd.c:  717: 
Chipcardd v0.9.1.0 (STABLE) started.
Mar  5 20:07:06 nb-bdkausle chipcardd[7235]: chipcardd.c:  950: 
Initializing daemon.
Mar  5 20:07:06 nb-bdkausle chipcardd[7234]: chipcardd.c:  780: Nanny 
now supervising daemon 7235
Mar  5 20:07:06 nb-bdkausle chipcardd[7235]: ctcore.c: 1141: Checking 
for PC/SC readers
Mar  5 20:07:06 nb-bdkausle chipcardd[7235]: ctcore.c:  244: Added 
reader "towitoko" (id=2771)
Mar  5 20:07:07 nb-bdkausle chipcardd[7235]: ctdriver_pcsc.c:  241: 
Could not connect (80100009)
.
.
.
Mar  5 20:07:20 nb-bdkausle chipcardd[7235]: ctdriver_pcsc.c:  241: 
Could not connect (80100009)
Mar  5 20:07:21 nb-bdkausle chipcardd[7235]: ctdriver_pcsc.c:  241: 
Could not connect (80100009)
Mar  5 20:07:21 nb-bdkausle chipcardd[7235]: chipcardd.c:  440: Daemon 
got a termination signal
Mar  5 20:07:21 nb-bdkausle chipcardd[7235]: ctdriver_pcsc.c:  241: 
Could not connect (80100009)
Mar  5 20:07:21 nb-bdkausle chipcardd[7234]: chipcardd.c:  444: Nanny 
got a termination signal, will terminate child.
Mar  5 20:07:21 nb-bdkausle chipcardd[7234]: chipcardd.c:  814: 
Terminating daemon.
Mar  5 20:07:21 nb-bdkausle chipcardd[7234]: chipcardd.c:  463: Nanny 
got a child signal
Mar  5 20:07:21 nb-bdkausle chipcardd[7234]: chipcardd.c:  843: Daemon 
terminated, exiting.

So, ich hoffe das reicht. Mehr relevante Informationen fallen mir jetzt 
auch nicht mehr ein.
Hoffentlich kann mir jemand helfen. Ich bin mit meinem Latein am Ende.

Bernhard