CCID Chipkartenleser unter Linux

Aus Matrica Wiki
Wechseln zu: Navigation, Suche

Diese Anleitung beschreibt, wie ein CCID-Chipkartenleser unter Linux hinzugefügt wird. Dazu wird der Chipkartenleser in den CCID-Treiber eingetragen. Dies ist am Beispiel des REINERSCT tanJack USB erklärt.

Voraussetzungen

pcsd-lite

Auf Ihrem System muss das Paket pcsd-lite installiert sein. Sie können es über eine Paketverwaltung (z.B. Synaptic oder YaST) oder über die Kommandozeile installieren. Dabei werden Root-Rechte benötigt. Die Rechte erhält man mit sudo oder wenn dies nicht funktioniert mit su -l.

Distribution Befehl in der Konsole
Ubuntu, Mint und weitere sudo apt install pcscd
openSUSE zypper install pcsc-ccid
Fedora sudo dnf install pcsc-lite

libccid

Außerdem muss die Bibliothek libccid oder vorhanden sein.

Distribution Befehl in der Konsole
Debian und weitere apt install libccid
openSUSE zypper install libpcslite1
Fedora dnf install libccid

USB-Geräte anzeigen

Zunächst den Chipkartenleser an einem USB-Port anschließen.

Mit dem Tool lsusb kann man sich die am Computer angeschlossenen USB-Geräte anzeigen lassen. Dazu in einem Terminal-Fenster folgenden Befehl eingeben:

lsusb

In der Ausgabe wird der Chipkartenleser mit Hersteller-ID, Produkt-ID und Bezeichnung aufgeführt.

Ccid0.png

Konfigurationsdatei erweitern

Nun die angezeigten Daten in die Konfigurationsdatei Info.plist eintragen. Die Datei kann abhängig vom System an unterschiedlicher Stelle liegen.

Distribution Verzeichnis der Datei Hinweis
Ubuntu /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/ Ggf. libccid und pcscd nachinstallieren
openSUSE /usr/lib64/readers/ifd-ccid.bundle/Contents/ Über YaST das Paket pcsc-ccid installieren.
Falls das Paket libpcslite1 nicht vorhanden sein sollte, muss dieses nachinstalliert werden.
Fedora /usr/lib64/readers/ifd-ccid.bundle/Contents/ Mit dnf die Pakete ggf. pcsc-lite und libccid nachinstallieren

Zur Sicherheit kann eine Kopie dieser Datei angelegt werden. Die Datei Info.plist in einem Text-Editor öffnen. Dazu sind gegebenenfalls Root-Rechte erforderlich.

Hinweis: Der Aufruf von Info.plist mit Hilfe eines grafischen Texteditors (z.B. "gedit") mit Root-Rechten sollte nur mit "sudo -H" erfolgen, sonst können unbeabsichtigte Rechteveränderungen im Home-Verzeichnis erfolgen.
Beispiel für Ubuntu:
Tester@Testrechner:~$ sudo -H gedit /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist

Tipp: Wenn Sie die Root-Rechte nicht haben, die Datei schon geändert haben, können Sie die Datei info.plist zunächst auch in einm lokalen Verzeichns (beispielsweise Dokumente) als info_neu.plist speichern. Dann kopieren Sie mit sudo die neue Datei über die bisherige: sudo -H cp neue_Datei alte_Datei

Die Datei gliedert sich in drei Bereiche. Jeder Bereich besteht aus einer Liste von Einträgen.

  1. ifdVendorID
  2. ifdProductID
  3. ifdFriendlyName

Alle Einträge sind von sogenannten Tags umschlossen. Vor dem Wert steht das Präfix 0x, was den Wert als Hexadezimalzahl kennzeichnet.

<string> 0x Wert </string>

Abhängig vom Bereich wird einer der vorher ermittelten Werte eingetragen. Wichtig ist, dass der neue Eintrag in jedem Bereich an derselben Stelle erfolgt. Der Eintrag sollte zum Beispiel in jedem Bereich an oberster Stelle hinzugefügt werden. Es ist wichtig, dass die Anzahl der Einträge in allen drei Bereichen identisch ist. Es muss in allen drei Bereichen ein Eintrag an derselben Stelle hinzugefügt werden. Zum Beispiel fügen Sie Ihren Eintrag in jedem Bereich als erste Zeile hinzu.

Hersteller-ID

Im ersten Bereich ifdVendorID wird die Hersteller-ID eingetragen.

Ccid1.png

Produkt-ID

Im zweiten Bereich ifdProductID wird die Produkt-ID eingetragen.

Ccid2.png

Bezeichnung

Im dritten Bereich ifdFriendlyName wird ein eindeutiger Name für das Gerät eingetragen.

Ccid3.png

Anschließend die Datei info.plist speichern.

Neustart des pcsc Dämon

Um den pcsc-Dämon neu zu starten, wird folgender Befehl mit Root-Rechten in einem Terminal-Fenster eingegeben (unter openSUSE mit su als Root anmelden).

sudo killall /usr/sbin/pcscd; sudo /usr/sbin/pcscd --foreground --debug --apdu --color

Lassen Sie dieses Terminal-Fenster bitte geöffnet.

Chipkartenleser neu verbinden

Der Chipkartenleser wird nun aus dem USB-Port entfernt und danach wieder eingesteckt (ohne eingesteckte Karte). Jetzt sollte im Terminal-Fenster ein Log ausgegeben werden. Sobald man eine Chipkarte einlegt, sollte die ATR (eine lange Zeichenfolge bestehend aus Buchstaben und Zahlen) ausgegeben werden. Diese stellt sich wie folgt dar:

Card atr.png