Login
Login-Name Passwort


 
Newsletter
Werbung

Do, 5. August 2004, 00:00

USB-Kartenleser cyberjack-ecom unter Kernel 2.6.x

Das Problem

Ausgangssystem war eine SuSE 9.1 mit Kernel 2.6.5-7.95. Mein alter Kobil-Kartenleser (seriell+PS2) wollte nicht mehr und so bekam ich einen USB-Kartenleser von Reiner SCT, den cyberjack-ecom mit Display und Tastatur, zum Testen.

Also eine Konsole geöffnet, tail -f /var/log/messages eingetippt und den cyberjack angeschlossen: Aha, der cyberjack wurde erkannt (Treiber Ver.1.0.0), na super.

Moneyplex gestartet, EinstellungenChipkartenleser, und den Treiber unter .../moneyplex/ctapi angewählt. HBCI-Karte eingesteckt, auf Test geklickt und der cyberjack wurde erkannt (hurra), zweiter Versuch, kein Kartenleser gefunden (?). Um es kurz zu machen, der cyberjack lässt sich nach dem Anstecken nur einmal ansprechen ;-(.

Na gut, wir sind ja nicht bei beim OS vom Marktführer, also kann man sich ja helfen. Erste Einsicht: Ich bin nicht alleine mit diesem Problem! Erstmal mit den üblichen Verdächtigen experimentiert, dem SuSE-Hotplug-Mechanismus, aber das war es nicht.

Jetzt bei Google unter GroupsErweiterte Suche mal nach »2.6« und »cyberjack« gesucht. Aha, cyberjack ging mal mit Kernel 2.6.2 und jetzt nicht mehr, aber man arbeitet daran. Ebenfalls siehe die FAQ der Fa. Matrica zum Thema USB-Kartenleser unter Kernel 2.6.

Also E-Mail an die Firma Reiner SCT mit Anfrage zum Stand der Dinge. Einen Tag später eine freundliche Antwort mit angehängten Patch für die 2.6-Kernel (an dieser Stelle ein Dankeschön an den Support von Reiner SCT).

Der Inhalt inklusive Readme etc.:

  • cyberjack-1.01-2.6.4.patch für Kernel 2.6.3 bis 2.6.7-rc2
  • cyberjack-1.01-2.6.7.patch für Kernel 2.6.7
  • cyberjack-dontoops-rmmod-2.6.7.patch für Kernel 2.6.7, wenn man den Treiber mit rmmod entfernen will

Die Lösung

Mein letzter Kernelbau war noch zu den Zeiten, als man den PC dann 16 Stunden nicht benutzen konnte, also wieder Neuland.

  1. Mit YaST Kernel-Quellen installiert, Paket kernel-source
  2. Ich habe jetzt als root weitergemacht, war einfacher
  3. wichtige Lektüre: »Konfigurieren, Compilieren und Installieren eines Kernels 2.6 unter SuSE® Linux«, Autor und Copyright: Thomas Hertweck: http://www.thomashertweck.de/kernel26.html
  4. In der root-Konsole ins Verzeichnis der Kernelquellen wechseln: cd /usr/src/linux (ist ein Link auf /usr/src/linux-2.6.5-7.95)
  5. Kontrolle, ob man richtig in /usr/src/linux-2.6.5-7.95 ist (die Zahl nach 2.6.5 kann nach einem Kernelupdate mit YaST auch anders sein) und den Patch hierher kopieren
  6. Wenn bei den folgenden Arbeiten etwas schiefgeht, steht man beim Booten im Dunkeln, also vorbeugen! Nicht den laufenden Kernel ändern, sondern eine Kopie anfertigen. Das Makefile im Verzeichnis /usr/src/linux-2.6.5-7.95 mit einem Editor öffnen, die Zeile EXTRAVERSION auskommentieren und EXTRAVERSION mit eigener Info versehen, hier z.B. mit -reiner_patch:

    VERSION = 2
    PATCHLEVEL = 6
    SUBLEVEL = 5
    #EXTRAVERSION = -$(shell echo $(CONFIG_RELEASE)-$(CONFIG_CFGNAME))
    EXTRAVERSION =-reiner_patch
    
    Damit heißt unser neuer Kernel dann 2.6.5-reiner_patch und wir können ihn parallel zum alten Kernel installieren.
  7. trocken ( --dry-run ) den Patch testen: patch -p1 --dry-run < cyberjack-1.01-2.6.4.patch
  8. Wenn patch keine Fehler meldet, dann richtig patchen: patch -p1 < cyberjack-1.01-2.6.4.patch
  9. Mit z.B. xconfig noch andere Anpassungen vornehmen, z.B. alte CDROM-Treiber oder Amateurfunk raus (aber nur Sachen ändern, die man kennt!):

    make O=/usr/src/linux-2.6.5-7.95 xconfig
    Ob xconfig, gconfig oder anderes, ist Geschmackssache!
  10. make - jetzt abhängig von Prozessor Kaffee trinken oder Mittagsschlaf
  11. make modules_install - Module installieren
  12. cp /usr/src/linux-2.6.5-7.95/System.map /boot/System.map-2.6.5-reiner_patch - die System.map nach /boot kopieren
  13. cp /usr/src/linux-2.6.5-7.95/arch/i386/boot/bzImage /boot/vmlinuz-2.6.5-reiner_patch - den neuen Kernel nach /boot kopieren
  14. cd /boot - nach /boot wechseln
  15. mkinitrd -k vmlinuz-2.6.5-reiner_patch -i initrd-2.6.5-reiner_patch
    Ganz wichtig bei SUSE: Ramdisk einrichten
  16. /boot/grub/menu.lst mit neuem Eintrag versehen:

     kernel (hd0,10)/boot/vmlinuz-2.6.5-reiner_patch root=/dev/hda11 vga=0x317
    splash=silent desktop resume=/dev/hda14 showopts
     initrd (hd0,10)/boot/initrd-2.6.5-reiner_patch
    
    Am besten den Eintrag des laufenden Kernels im Editor kopieren und dann nur die Einträge für den neuen Kernel und Ramdisk ändern. Alles nochmal kontrollieren und dann neu booten und im Grub-Menü den neuen Kernel auswählen, cyberjack anstecken und los geht's.

Hinweis: Dieser Bericht ist von einem fortgeschrittenen Anfänger für Anfänger/Umsteiger. Positive Fehlerbereinigungen, Ergänzungen und Meinungen machen den Bericht dann zu der Hilfe, als die er geplant war.

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung