Ubuntu 10.04 „Lucid Lynx“
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Dieser Artikel dient als Ergänzung zu ISDN-Karten/AVM FRITZ!Card PCI. Ab Ubuntu 8.10 Intrepid Ibex muss das zum erfolgreichen Betrieb notwendige Kernelmodul
fcpci
selbst aus den Quellen übersetzt werden. Dieser Vorgang ist in im genannten Artikel ausführlich beschrieben.
Prinzipiell muss das Kompilieren des Kernelmoduls bei jedem Kernelupdate (manuell) wiederholt werden. Einen Ausweg bietet die Verwendung von DKMS. Über diesem Weg wird das Kernelmodul – falls erforderlich – automatisch neu kompiliert.
Empfehlenswert ist zuerst das manuelle Übersetzen (wie im Hauptartikel beschrieben), um das reibungslose Kompilieren und die Nutzung des Kernelmoduls zu testen. Wenn das soweit funktioniert, kann man sich mit der im folgenden beschriebenen Lösung beschäftigen.
Neben dem Paket:
dkms
mit apturl
Paketliste zum Kopieren:
sudo apt-get install dkms
sudo aptitude install dkms
sind zusätzlich die im Hauptartikel unter Vorbereitung erwähnten Pakete erforderlich [1].
Der Quelltext wird in einen Ordner unterhalb von /usr/src/ kopiert. Die Benennung des Unterordners folgt dabei immer dem Schema MODULNAME-VERSION
, also praktisch /usr/src/fcpci-VERSION. Mit VERSION
ist hier die Version des Quelltexts gemeint, nicht die Version des installierten Kernels (auch wenn die Versionsbezeichnung des Quelltexts daran angelehnt ist).
Nach dem Entpacken [2] mit Root-Rechten [3] in den Ordner /usr/src/fcpci-VERSION/ muss noch eine symbolische Verknüpfung (soft link) entsprechend der Systemarchitektur (32-/64-Bit) im Ordner /usr/src/fcpci-VERSION/src/ angelegt werden [4]:
sudo ln -s 32_fcpci-lib.o fcpci-lib.o
oder
sudo ln -s 64_fcpci-lib.o fcpci-lib.o
Die Datei /usr/src/fcpci-VERSION/dkms.conf ist bereits im Archiv enthalten und braucht nicht mehr gesondert erstellt zu werden.
Der Quelltext muss mit Root-Rechten in den Ordner /usr/src/fcpci-2.6.34/ entpackt werden.
je nachdem, ob man ein 32- oder 64-Bit System einsetzt, im Ordner /usr/src/fcpci-2.6.34/src/ eine symbolische Verknüpfung anlegen:
sudo ln -s 32_fcpci-lib.o fcpci-lib.o
oder
sudo ln -s 64_fcpci-lib.o fcpci-lib.o
Die Datei /usr/src/fcpci-2.6.34/dkms.conf mit Root-Rechten und folgendem Inhalt anlegen [5]:
PACKAGE_NAME=fcpci PACKAGE_VERSION=2.6.34 DEST_MODULE_LOCATION=/extra BUILT_MODULE_NAME=fcpci BUILT_MODULE_LOCATION=src/ MAKE="'make' -C src/ all" CLEAN="'make' -C src/ clean" AUTOINSTALL="yes"
Der Quelltext muss mit Root-Rechten in den Ordner /usr/src/fcpci-2.6.31/ entpackt werden.
je nachdem, ob man ein 32- oder 64-Bit System einsetzt, im Ordner /usr/src/fcpci-2.6.31/lib/ eine symbolische Verknüpfung anlegen:
sudo ln -sf 32_fcpci-lib.o fcpci-lib.o
oder
sudo ln -sf 64_fcpci-lib.o fcpci-lib.o
Die Datei /usr/src/fcpci-2.6.31/dkms.conf mit Root-Rechten und folgendem Inhalt anlegen:
PACKAGE_NAME=fcpci PACKAGE_VERSION=2.6.31 DEST_MODULE_LOCATION=/extra BUILT_MODULE_NAME=fcpci BUILT_MODULE_LOCATION=fcpci_src/ MAKE="'make' -C fcpci_src/ all" CLEAN="'make' -C fcpci_src/ clean" AUTOINSTALL="yes"
Das Kompilieren mittels DKMS wird mit folgenden Schritten getestet (Beispiel für Ubuntu 10.10; ansonsten bitte die Version anpassen):
Mit dem Befehl:
sudo dkms add -m fcpci -v 2.6.34
wird das Kompilieren von fcpci
vorbereitet.
Der eigentliche Kompilierungsvorgang wird mit:
sudo dkms build -m fcpci -v 2.6.34
gestartet.
Abschließend erfolgt die Installation des Kernelmoduls:
sudo dkms install -m fcpci -v 2.6.34
Nur erforderlich, wenn man das Kernelmodul wieder aus DKMS entfernen möchte:
sudo dkms remove -m fcpci -v 2.6.34 --all
Zukünftig wird nun bei jedem Kernel-Update das Kernelmodul fcpci
automatisch neu kompiliert. Beispiel:
... Richte linux-image-generic ein (2.6.35.27.35) ... Richte linux-generic ein (2.6.35.27.35) ... Richte linux-headers-2.6.35-27 ein (2.6.35-27.48) ... Richte linux-headers-2.6.35-27-generic ein (2.6.35-27.48) ... Examining /etc/kernel/header_postinst.d. run-parts: executing /etc/kernel/header_postinst.d/dkms 2.6.35-27-generic /boot/vmlinuz-2.6.35-27-generic * dkms: running auto installation service for kernel 2.6.35-27-generic * fcpci (2.6.34)... [ OK ] ...