Kobil KAAN Professional USB
Aus Gentoo Linux Wiki
| Laptops • Motherboards • Servers • Eingabegeräte • RAID Controller • TV Karten • Wireless • Andere Hardware • Andere Architekturen • alphabetischer Hardware Index |
Im folgenden wird die Einrichtung des Chipkartenlesers Kobil KAAN Professional (USB-Version), sowie die Konfiguration von ctapi, pcsc und libchipcard unter Gentoo beschrieben. Ich möchte hier meine Informationen zusammenfassen, da es mir nicht ohne weiteres möglich war, den Chipkartenleser einzurichten.
Inhaltsverzeichnis |
[Bearbeiten] Installation
[Bearbeiten] Pakete
Folgende Pakete waren meine Grundlage für die Installation des KAAN Professional. Diese müssen alle in die /etc/portage/paackage.keywords Datei eingetragen werden.
- ccid-1.0.1-r1
- pcsc-lite-1.3.2
- libchipcard-2.1.7
[Bearbeiten] Kernel-Modul
Folgende Module müssen ausgewählt werden.
Device Drivers -->
USB Support -->
USB Serial Converter Support -->
<M> USB KOBIL chipcardreader
<M> USB Prolific 2303 Single Port Serial Driver
Nach Installation der Module und testen des Kernelmoduls durch ausführen von modprobe kobil_sct müsste der Chipkartenleser erkannt werden, siehe dmesg.
[Bearbeiten] Treiber vom Hersteller
Folgende Datei herunterladen und entpacken:
http://www.kobil.de/fileadmin/download/support/download/driver/ct-linux.zip
Danach die dort enthaltenen Dateien libct.so und libkobil_ifd.so nach /usr/lib kopieren:
cp libct.so /usr/lib/libct.so cp libkobil_ifd.so /usr/lib/libkobil_ifd.so
[Bearbeiten] Konfiguration Middleware
Jetzt kann die sogenannte Middleware konfiguriert werden. Diese vermittelt zwischen dem Chipkartenleser und den Programmen, die diesen einsetzen, wie z.B. gnucash oder kmymoney etc. Wer z.B. Gnucash, KMyMoney oder andere Homebanking-Programme benutzen möchte, die auf aqbanking aufsetzen, sollte den nächsten Abschnitt überspringen und bei der Konfiguration von libchipcard weitermachen. In diesem Fall darf der pcscd-Daemon nicht laufen.
[Bearbeiten] Konfiguration pcsc-lite
Wofür man den braucht, ist mir bislang unbekannt. Falls man als Middleware libchipcard benutzen möchte, z.B. wegen HBCI, dann sollte dieser Daemon deaktiviert sein.
emerge pcsc-lite
Dann folgendes in die Datei /etc/reader.conf.d/reader.conf schreiben:
# Configuration file for IFD Handler 2.0 drivers # FRIENDLYNAME: Any name # DEVICENAME: Any name # LIBPATH: Location of the driver library for your reader # CHANNELID: # 0x000001 - COM1 # 0x000002 - COM2 # 0x000003 - COM3 # 0x000004 - COM4 # # KOBIL Kaan Standard, KOBIL Kaan Standard Plus, # KOBIL Twin, KOBIL B1 Pro or KOBIL KAAN Pro (COM1) FRIENDLYNAME "Kobil KAAN Pro 00 00" DEVICENAME /dev/ttyUSB1 LIBPATH /usr/lib/libkobil_ifd.so CHANNELID 0x000001 # Note: Use the full path on LIBPATH.
Gegebenfalls sollte hier DEVICENAME auf die passende Adresse geändert werden. DEVICENAME findet man über
# dmesg | grep KOBIL
raus. Wie z.B. in dieser Zeile
# usb 1-2.1: KOBIL USB smart card terminal converter now attached to ttyUSB0
--> also /dev/ttyUSB0.
Danach den Befehl update-reader.conf ausführen und mit pcscd -df die Konfiguration überprüfen indem man z.B. eine Krankenversicherungskarte in das Gerät steckt.
Falls man pcsc-lite benutzen möchte, dann muss noch
rc-update add pcscd default
ausgeführt werden.
[Bearbeiten] Konfiguration von ctapi
Möchte man libchipcard benutzen, so wird im Normalfall die CTAPI des Lesers verwendet. Nach meinen Informationen kann auch der IFD Treiber für libchipcard verwendet werden. Ich habe jedoch noch nicht herausgefunden wie dies funktioniert.
Für CTAPI muss die Datei .CT_devices im Home-Folder oder/und in /root bzw. CT_devices in /etc/ erstellt werden. Falls die Einstellungen Systemweit gelten sollen, nimmt man die Datei /etc/CT_devices.
Inhalt von /etc/CT_devices:
GetPortType=#0 SetPortType=#0 DefaultPortType=#0 DefaultProtocollType=#0 UseOnlyDefaultProtocoll=#0 B1DTRLow=#50 B1DSRRespActive=#2000 PnPChar=#150 B1WaitForPnPString=#1500 KaanWaitForPnPString=#600 UseOldStyleManufacturerDataObject=#0 Port1=COM;/dev/ttyUSB1;1;0;USB reader at /dev/ttyUSB1: Kobil KAAN Pro 00 00 Port2=COM;/dev/ttyUSB1;1;0;USB reader at /dev/ttyUSB1: Kobil KAAN Pro 00 00 Port3=COM;/dev/ttyUSB1;1;0;USB reader at /dev/ttyUSB1: Kobil KAAN Pro 00 00 Port4=COM;/dev/ttyUSB1;1;0;USB reader at /dev/ttyUSB1: Kobil KAAN Pro 00 00
Die Zeile mit Port taucht hier viermal auf, da bei mir libchipcard nur versucht hat den Reader unter Port2 zu erreichen. Soweit ich herausgefunden hab muss am Ende dieser Zeilen genau "Kobil KAAN Pro 00 00" stehen, sonst funktiniert es nicht. Wieso, kann ich mir nicht erklären, weil die readme.txt aus ct-linux.zip (siehe oben) etwas anderes sagt. Hier muss noch die Adresse /dev/ttyUSB1 entsprechend angepasst werden.
Dann noch
./cardping -b1 20100000
(ohne Chipkarte) aus dem Installationspaket ausführen und hoffen, dass eine solche Ausgabe erfolgt:
Going to call CT_init CT_init (Port 1): 0 CT_Reset: 0 CT_data Aufruf mit: 20 10 00 00 CT_data: 0 Antwort: 90 00
bzw.
./cardping -b1 20100101 (mit Chipkarte):
Going to call CT_init CT_init (Port 1): 0 CT_Reset: 0 CT_data Aufruf mit: 20 10 01 01 CT_data: 0 Antwort: 3B FF 18 00 FF 81 31 FE 45 65 63 0D 07 63 07 64 00 0D 90 70 33 00 06 15 D2 90 01
Dann sollte der Leser über CTAPI funktionieren.
[Bearbeiten] Konfiguration von libchipcard
emerge libchipcard
Server einrichten:
cp /etc/chipcard3/server/chipcardd3.conf.default /etc/chipcard3/server/chipcardd3.conf
Client einrichten:
cp /etc/chipcard3/client/chipcardc3.conf.default /etc/chipcard3/client/chipcardc3.conf
Leser einrichten:
cp libct.so /usr/lib/chipcard3/server/lowlewel
USB-Leser, wie der KAAN Pro werden von libchipcard automatisch erkannt.
Server testen:
/usr/sbin/chipcardd3 --pidfile /var/run/chipcardd3.pid -f --loglevel notice --logtype console
Konfiguration testen (bei laufendem Server)
chipcard3-tool list
und falls der Leser angezeigt wird:
chipcard-tool check
Eine richtige Ausgabe sieht in etwa so aus:
Readers:
- auto1-ko_kaan_pro_usb (ko_kaan_pro_usb, port 0, Manufacturer="DEKOB";Terminal="CT399";Version="V2.09";
info="";unit0="icc1";unit1="KEYBOARD";unit2="DISPLAY"): up
Jetzt kann man z.B. eine Geldkarte / EC-Karte mit folgendem Aufruf testen:
geldkarte2 loaded
Bei Fehlern sollte man in die Logdateien im Verzeichnis /var/log/chipcard2/drivers schauen. Der chipcardd2-Server loggt im Normalfall ins Syslog.
[Bearbeiten] Initskript für chipcardd2
Folgendes Initscript benutze ich um chipcardd2 zu starten. Dafür sollte man noch cardping auf ct-linux.zip nach z.B. /bin kopieren. Das Initscript wird einfach nach /etc/init.d/chipcardd2 kopiert
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
start() {
ebegin "Loading Module kobil_sct"
modprobe kobil_sct
ebegin "Resetting Reader"
/bin/cardping -b1 20100000
/bin/cardping -b1 20100000
ebegin "Starting chipcardd2"
/usr/sbin/chipcardd2 --pidfile /var/run/chipcardd2.pid --logtype syslog
ebegin "Checking Chipcard-Reader"
chipcard-tool check
eend $?
}
stop() {
ebegin "Stopping chipcardd2"
start-stop-daemon --stop -q --pidfile /var/run/chipcardd2.pid
rmmod kobil_sct
eend $?
}
Dieses kann dann mit
rc-update add chipcardd2 default
beim Systemstart ausgeführt werden. Leider habe ich noch Probleme mit dem Initscript. Deswegen steht darin auch modprobe kobil_sct, welches normalerweise in die Datei /etc/modules.autoload.d/kernel-2.6 gehört. Bei Systemstart funktioniert der Chipkartenleser bei mir bis jetzt NIE. Führe ich dann später noch einmal
/etc/init.d/chipcardd2 restart
aus, so funktioniert der Chipkartenleser einwandfrei. Falls jemand dafür eine Lösung hat, würde ich mich freuen.
