Für Anfänger ist die Installation einer ISDN Karte nicht immer einfach. Es gibt viele verschiedene Kartentypen, einige sind sehr günstig zu beschaffen, einige weniger. In erster Linie wird hier die Installation einer A1 Karte (PCI) behandelt. Besser, allerdings auch teurer, arbeitet die B1 Karte, da sie das System durch eine interne CPU weniger belastet und zusätzlich die Treiberunterstützung besser sein soll. Zu meinem Erstaunen hat AVM keine vernünftig funktionierde Treiber für A1 Karten für die aktuellen Linux Versionen bereitgestellt. Mit den Suchmaschinen konnte schließlich eine Variante von Lutz Willek, die für die Kernelversionen 2.6.24 bis 2.6.28 gepatched wurde, beschafft werden. Kubuntu/Ubuntu 10.04 hat einen neueren Kernel. Auch mit diesem funktionieren die Treiber einwandfrei.
Der Treiber kann hier geladen werden: fritz-fcpci-src-2.6.31.zip
Nun wird von vorne begonnen. Die Kubuntu bzw. Ubuntu 10.04 Installation ist normal abgeschlossen und alles funktioniert soweit. Für das Ändern von Textdateien kann pico/nano oder schlicht der Midnight Commander (mc) verwendet werden. Die Pakete müssen ebenso nachinstalliert werden. Hat der Anwender einen Editor seiner Wahl, dann sollte dieser installiert werden.
Als erstes müssen die Kernel-Header installiert werden, damit der Treiber kompilieren werden kann. Das erledigt fix apt-get mit entsprechenden root-Rechten. Der Anwender gibt ein:
# apt-get install linux-headers-2.6.32-21-generic
An dieser Stelle muss angemerkt werden, dass dies die Kernel-Header von der Kubuntu 10.04 sind. Wurde ein anderer Kernel installiert, so müssen entsprechend diese Header installiert werden. Nun werden die benötigten Teile des Compilers installiert, damit überhaupt etwas übersetzt werden kann. Die nötigen Bestandteile werden mit dem Paket build-essential installiert. Der Anwender gibt ein:
# apt-get install build-essential
Nun wird die Linux CAPI installiert, damit die ISDN Karte auch später mit der Außenwelt sprechen kann. Dazu sind drei Pakete nötig: capi-utils, libcapi20-3
und libcapi20-dev
. Dazu wird das Paket pppdcapiplugin
installiert. Dazu gibt der Anwender ein:
# apt-get install capi-utils
# apt-get install libcapi20-3
# apt-get install libcapi20-dev
# apt-get install pppdcapiplugin
Das Paket libcapi20-3
wird sehr wahrscheinlich in Abhängigkeit mit capi-utils
automatisch mitinstalliert. Das Eingeben des Befehls schadet nicht, es erscheint ggf. die Meldung, dass dieses Paket bereits installiert worden ist.
Nun ist es an der Zeit die Sourcen des Fritz-Karten Treibers zu entpacken. Geeignet ist das Home-Verzeichnis des normalen Benutzers. Entpackt werden kann entsprechend mit Root, entsprechende Rechte werden für die Kompilierung benötigt. Nun kopiert der Anwender die komprimierte Datei in ein Verzeichnis seiner Wahl. Bei .tar.gz Dateien lautet das Parameter -xvzf. Zum Entpacken wird folgendes eingegeben:
Originalfile von Lutz Willek:
# tar -xvjf fritz-fcpci-src-2.6.31.tar.bz2
Oben zur Verfügung gestelltes Zip-File:
# unzip
fritz-fcpci-src-2.6.31.zip
Jetzt muss definiert werden, um welche Prozessor-Architektur es sich handelt, worauf der Treiber kompiliert und gestartet werden soll. Handelt es sich um einen 32-Bit Prozessor, so muss die 32-fcpci-lib.o
verlinkt werden. Kann der Prozessor 64-Bit Befehle verarbeiten und ist auch ebenso ein entsprechender Kernel installiert, was meist bei der Installation automatisch entschieden wird, so muss die Datei 64_fcpci-lib.o
verlinkt werden. Beispielsweise handelt es sich bei einem Pentium 4 um einen 32-Bit Prozessor, während ein AMD Phenom 64-Bit fähig ist. Besteht an dieser Stelle Unsicherheit, so hilft Wikipedia entsprechend weiter. Der Anwender wechselt in das lib-Verzeichnis des Source-Codes.
# cd fritz-fcpci-src-2.6.24-2.6.31
# cd lib
In diesem Verzeichnis existieren zunächst einmal drei Dateien, nämlich 32_fcpci-lib.o, 64_fcpci-lib.o
und fcpci-lib.o
. Bei der letzten Datei handelt es sich um einen Dummy, der ausgetauscht wird durch einen sog. symbolischen Link, der auf eine der anderen Dateien verweisen wird. Die Dummy-Datei hat 0 Byte. Der Dateiname wird kurz gemerkt und die Datei wird gelöscht.
# rm fcpci-lib.o
Nun muss ein neuer symbolischer Link erzeugt werden, der entsprechend Zugriffe auf diesen Namen zu einer anderen Datei umleitet.
# ln -s 64_fcpci-lib.o fcpci-lib.o
Für 64-Bit Prozessoren eingeben
# ln -s 32_fcpci-lib.o fcpci-lib.o
Für 32-Bit Prozessoren eingeben
Soll überprüft werden, ob die Verlinkung funktioniert hat, so kann dies leicht mit dem Befehl ls -l
gemacht werden. Hat alles geklappt findet sich ein Eintrag, ähnlich wie dieser: fcpci-lib.o -> 64_fcpci-lib.o
Nun ist die Voreinstellung abgeschlossen. Jetzt wird entsprechend in das Verzeichnis fcpci-3.11.07
gewechselt.
# cd ..
# cd fcpci-3.11.07
In diesem Verzeichnis befinden sich entsprechend die c-Dateien und die make-Dateien. Falls mit dem Code bereits gearbeitet wurde, sollte vorhei ein make clean
ausgeführt werden, um alte Binärdateien zu löschen. Der Befehl make all
erzeugt nun automatisch die entsprechend Kernelobjekte.
# make all
Hat alles geklappt ist nun viel auf dem Bildschirm erschienen und es existieren einige neue .ko Dateien im gleichen Verzeichnis. Jetzt müssen die Dateien an die richtige Stelle kopiert werden. Dazu wird zunächst ein Verzeichnis angelegt, wo diese Objekt für den Kernel abgelegt werden. Der Anwender gibt ein:
# mkdir /lib/modules/`uname -r`/extra
Jetzt werden die Kernel-Objekts in dieses Verzeichnis kopiert. Entsprechend wird folgendes eingegeben:
# cp fcpci.ko /lib/modules/`uname -r`/extra
Nun muss entsprechend das neue Objekt eingerichtet werden. Dies erledigt der Befehl depmod
.
# depmod -a
Jetzt ist das Kernel-Objekt bereit und kann geladen werden. Der Befehl modprobe
wird Kernel-Objekte laden und entladen. Es wird zunächst das Kernel-Modul geladen und anschließend getestet, ob es auch geladen worden ist.
# modprobe -rf fcpci
# modprobe -v fcpci
Hat alles geklappt, nun freuen. Oft funktioniert es an dieser Stelle gerade nicht. Es erscheint eine Fehlermeldung …device or ressource busy… Kein Grund zur Panik. Ein anderes Kernel-Modul verhindert das Laden von fcpci
. Dabei handelt es sich häufig um das Modul mit dem Namen avmfritz
. Dies kann wiederum mit modprobe
entladen werden. Anschließend der neue Versuch mit den neuen Treibern.
# modprobe -r avmfritz
# modprobe -rf fcpci
# modprobe -v fcpci
Hat alles funktioniert, so erscheint unten im Text eine entsprechende zweizeilige Erfolgsmeldung. Das ist schonmal ganz gut, allerdings wird beim Neustart des System das Problem wieder auftreten. Damit das vermieden wird, so ist es nötig entsprechend dem System klar zu machen, dass es das Modul avmfritz
nicht mehr lädt. Das Setzen von avmfritz
auf eine Blacklist schafft dauerhaft Abhilfe und fcpci
kann beim Start normal laden. Es wird eine neue Datei erzeugt.
# pico /etc/modprobe.d/blacklist-avmfritz.conf
In dieser Datei wird folgendes eingetragen:
blacklist avmfritz
Die Zeile bitte mit einem Enter abschließen, so dass der Cursor links unter dem Text steht. Nun speichern und neu starten. Entsprechend wieder einloggen und in die Root-Console wechseln.
Die ISDN Karte ist nun installiert. Jetzt muss die CAPI eingerichtet werden. Hierzu gibt es einen seperaten Blogeintrag.
Mehr dazu bei: Installation von CAPI4Hylafax
Auch nützlich hierzu: CAPI einrichten unter Ubuntu 10.04