ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

SCM SCR 243 PCMCIA SmartCard-Reader

Archivierte Anleitung

Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.

Dieser Artikel beschreibt die Installation des SCM SCR 243 PCMCIA SmartCard-Readers unter Ubuntu zur Verwendung als HBCI Kartenleser in der Finanzverwaltung. Da der Hersteller nur einen PCSC-Treiber für ältere Kernel anbietet, muß der Sourcecode geringfügig angepasst werden. Weiterhin muß ein PCSC-CTAPI-Wrapper installiert werden zur Verwendung mit Anwendungen, die die CTAPI benötigen z.B. Moneyplex {de}.

Getestete Kartenleser

  • SCM SCR 243 PCMCIA SmartCard-Reader

Installation benötigter Pakete

Folgende Pakete werden benötigt [1]

  • build-essential

  • autoconf

  • libusb-0.1-4

  • libpcsclite1

  • libpcsclite-dev

  • pcscd (universe, [2])

  • pcsc-tools (universe)

  • libccid (universe)

Paketliste zum Kopieren:

sudo apt-get install libusb-0.1-4 libpcsclite1 libpcsclite-dev pcscd pcsc-tools build-essential autoconf libccid 

sudo aptitude install libusb-0.1-4 libpcsclite1 libpcsclite-dev pcscd pcsc-tools build-essential autoconf libccid 

Installation des PCSC-Treibers

Jetzt kann man den Treiber von dieser Seite {en} herunterladen, wobei man darauf achten muss, die Datei für den richtigen Kernel (also 2.6.x) auszuwählen. Das heruntergeladen Archiv wird entpackt [3], wobei einige Unterverzeichnisse entstehen. Hier wechselt man innerhalb der entstandenen Struktur ins Unterverzeichnis /src, öffnet dort die Datei includes.h mit einen Editor mit Root-Rechten [4] und nimmt folgende Änderungen vor:

....
#include <linux/semaphore.h> // <-- dies ist die 1.Änderung ( vorher: #include <asm/semaphore.h> )
#include <asm/io.h>
#include <asm/segment.h>
#include <asm/system.h>
#include <asm/unistd.h>
#include <asm/uaccess.h> // copy_to_user et al
#include <asm/delay.h>

//#include <pcmcia/version.h>

#include <pcmcia/cs_types.h>
#include <pcmcia/cs.h>
#include <pcmcia/cistpl.h>
#include <pcmcia/ciscode.h>
#include <pcmcia/ds.h>
#include <pcmcia/cisreg.h>
#include <pcmcia/ss.h>
//#include <pcmcia/bulkmem.h> // <-- dies ist die 2. Änderung ( vorher: #include <pcmcia/bulkmem.h> )
....

Jetzt kann das src-Verzeichnis verlassen werden. Im Verzeichnis darüber sollte sich die Datei install befinden, die man nun mit Root-Rechten ausführt, z.B. im Terminal mittels [6]

sudo ./install 

Der Treiber legt kein Device-File an, deshalb muss die von Hand erledigt werden [6]:

cd /dev
sudo mknod SCR24x0 c 251 0
cd /lib/udev/devices
sudo mknod SCR24x0 c 251 0 

Jetzt kann man die PCMCIA-Karte einstecken (incl. HBCI-Karte ) und startet PCSC-Daemon neu:

sudo /etc/init.d/pcscd restart 

Testen, ob alles richtig läuft, kann man im Terminal mit den folgenden Befehlen:

lspcmcia -v 

sollte folgende Ausgabe ergeben:

Socket 0 Bridge: [yenta_cardbus] (bus ID: 0000:06:09.0)
Configuration: state: on ready: unknown
Voltage: 5.0V Vcc: 5.0V Vpp: 0.0V
Socket 0 Device 0: [scr24x_cs] (bus ID: 0.0)
Configuration: state: on
Product Name: SCR243 PCMCIA Smart Card Reader
Identification: manf_id: 0xffff card_id: 0x0001
prod_id(1): "SCR243 PCMCIA" (0x2054e8de)
prod_id(2): "Smart Card Reader" (0xf5a90d5d)
prod_id(3): --- (---)
prod_id(4): --- (---)

Der Aufruf von

pcsc_scan 

sollte folgende Ausgabe ergeben:

PC/SC device scanner
V 1.4.14 (c) 2001-2008, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.4.99
Scanning present readers
0: SCR24x Smart Card Reader 00 00

Tue Dec 30 16:09:42 2008
 Reader 0: SCR24x Smart Card Reader 00 00
  Card state: Card inserted, 
  ATR: 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 54 30 03 09 05 00 6B

ATR: 3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 54 30 03 09 05 00 6B
+ TS = 3B --> Direct Convention
+ T0 = FF, Y(1): 1111, K: 15 (historical bytes)
  TA(1) = 18 --> Fi=372, Di=12, 31 cycles/ETU (115200 bits/s at 3.57 MHz)
  TB(1) = 00 --> VPP is not electrically connected
  TC(1) = FF --> Extra guard time: 255 (special value)
  TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1 
-----
  TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1 
-----
  TA(3) = FE --> IFSC: 254
  TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5
+ Historical bytes: 65 63 11 06 40 02 50 00 10 54 30 03 09 05 00
  Category indicator byte: 65 (proprietary format)
+ TCK = 6B (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B FF 18 00 FF 81 31 FE 45 65 63 11 06 40 02 50 00 10 54 30 03 09 05 00 6B
3B FF 18 00 FF 81 31 .. 45 65 63 .. .. .. .. .. .. .. .. .. .. .. .. .. ..
	Geldkarte (generic ATR)


Installation des PCSC-CTAPI-Wrappers

Der Download des Wrappers erfolgt auf der Sourceforge Projektseite {en}. Nun entpackt man das Archiv [3], wechselt in das entstandene Verzeichnis (pcsc-ctapi-wrapper-0.3, ggf. Versionsnummer anpassen) und kompiliert dort das Programm wie gewohnt [5] mittels make und make install, auf den configure-Schritt kann man verzichten.

Der HBCI Kartenleser kann nun über die CTAPI /usr/local/lib/libpcsc-ctapi-wrapper.so angesprochen werden.

ubuntuusers.local › WikiArchivSCM SCR 243 PCMCIA SmartCard-Reader