Mahlzeit allseits,
nachdem ich gestern mein gutes Hardy auf Ibex aktualisierte, stellte ich erschrocken fest, dass Ubuntu keine Module mehr für die AVM Fritz Card DSL und andere Fritz Produkte liefert. Bis zur Version 8.04 waren sie in den linux-restricted-modules enthalten. Und da ich nach einiger Suche im Internet zwar ein paar Lösungsansätze fand, die aber alle nicht ganz vollständig waren, möchte ich hier eine kleine Anleitung geben, die Fritz Card DSL unter neueren Ubuntu Versionen zu betreiben. Die Anleitung wurde getestet unter Intrepid Ibex (8.10) und Jaunty Jackalope (9.04)
Zunächst müssen alle CAPI Pakete wie im Wiki beschrieben installiert werden, welche da wären: libcapi20-dev, libcapi20-3, capiutils, pppdcapiplugin, drdsl. Diese Pakete sind auf der Desktop-Installations-CD zu finden.
Nun benötigen wir den Treiber-Quellcode und die Firmware. Beide ziehen wir uns an einem internetfähigen PC aus dem Hardy Reporsitory auf einen USB Stick und kopieren sie dann ins Home Verzeichnis.
Treiber-Quellcode: http://archive.ubuntu.com/ubuntu/pool/restricted/l/linux-restricted-modules-2.6.24/avm-fritz-kernel-source_3.11+2.6.24.18-24.1_i386.deb
Die Firmware wird ganz normal per dpkg installiert.
Wir holen uns dauerhaft root Rechte, damit wir uns das 'sudo' vor jedem Befehl sparen...
1 | alex@homer:~/fritz$ sudo -s |
Installieren der Fritz Firmware...
1 | root@homer:~/fritz# dpkg -i avm-fritz-firmware-2.6.24-24_3.11+2.6.24.18-24.1_i386.deb |
Damit das CAPI-System die Firmware findet, müssen noch einige Dinge geändert werden. Zum einen muss in der Datei /etc/isdn/capi.conf die Auskommentierung für die entsprechende Karte entfernt werden. Bei der normalen Fritz Card DSL heißt das Treibermodul fcdsl.
# card file proto io irq mem cardnr options fcdsl fdslbase.bin DSS1 - - - -
Mehr Infos dazu auch im Wiki
Die Firmware selbst befindet sich in einem Unterverzeichnis von /usr/share/isdn (in meinem Fall 2.6.24-24). Um vom Kernel gefunden zu werden, muss noch ein symbolischer Link mit dem aktuellen Kernelbezeichner auf dieses Verzeichnis gesetzt werden...
1 | root@homer:/usr/share/isdn# ln -s 2.6.24-24 `uname -r` |
Kompilieren und Installieren des Treibers
Da das avm-kernel-source Paket einige Abhängigkeiten besitzt, die nicht erfüllt sind, wollen wir es nicht installieren, sondern nur entpacken.
1 2 3 4 | root@homer:~/fritz# dpkg -x avm-fritz-kernel-source_3.11+2.6.24.18-24.1_i386.deb . root@homer:~/fritz# cp ./usr/src/avm-fritz.tgz /usr/src root@homer:~/fritz# cd /usr/src root@homer:/usr/src# tar -xzvf avm-fritz.tgz |
Wir wechseln ins Verzeichnis /usr/src/fritz/fcdsl. Wenn wir jetzt 'make' aufrufen bekommen wir einen Fehler, weil sich die Kernel-Schnittstellen wieder mal geändert haben.
/usr/src/fritz/fcdsl/src/driver.c:1401: Fehler: Implizite Deklaration der Funktion »find_task_by_pid«
Laut dieser Diskussion in der LKML ist die Funktion nicht mehr zuverlässig und sollte durch find_task_by_vpid() ersetzt werden. Also ersetzen wir in der Datei driver.c alle Vorkommen (bei fcdsl nur eines) von find_task_by_pid durch find_task_by_vpid und sind glücklich. Dann....
1 2 3 4 5 6 7 | root@homer:/usr/src/fritz/fcdsl# make clean root@homer:/usr/src/fritz/fcdsl# make root@homer:/usr/src/fritz/fcdsl# make install root@homer:/usr/src/fritz/fcdsl# depmod -a root@homer:/usr/src/fritz/fcdsl# modprobe fcdsl root@homer:/usr/src/fritz/fcdsl# capiinit root@homer:/usr/src/fritz/fcdsl# drdsl |
Nun noch den Internetzugang wie im Wiki beschrieben einrichten
Diese Anleitung funktioniert für die alte Fritz Card DSL (fcdsl) unter Ibex und Jaunty. Ob sie auf die neueren Varianten V2 und SL ebenfalls anwendbar ist, weiß ich nicht.
Achja, scheinbar bin ich zu dumm, mit diff und patch umzugehen. Wer also einen Patch für die driver.c erstellen möchte, kann dies gerne tun und ihn hier anhängen. ☺
Es wäre auch vorteilhaft, wenn sich DKMS so einrichten ließe, dass der Treiber bei einem Kernelupdate automatisch neu kompiliert und ein neuer Link unter /usr/share/isdn gesetzt wird.
Habe fertig! ☺