Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
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 Archiv/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 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).
Für Ubuntu 13.04 wurde eine eigene Skript-Lösung entwickelt. Es muss nichts mehr manuell installiert werden, da das angebotene Skript alle Abhängigkeiten selbst auflöst und bei Bedarf nachinstalliert. Darüber hinaus wurde das Herunterladen des Quelltextes, das Kompilieren und das Einbinden mittels DKMS komplett in dieses Skript ausgelagert. Dieses Skript kümmert sich auch um das korrekte Anlegen von udev-Regeln und erzeugt eine passende Blacklist. Außerdem gibt es einen Workaround für die zum Zeitpunkt der Erstellung dieses Skriptes (Ende Mai 2013) immer noch bei Ubuntu defekte Installation des Pakets capiutils. Kurz: es ist als "Rundum-Glücklich-Skript" gedacht. Soweit zumindest die Theorie, da es bisher nur auf sehr wenigen Systemen getestet wurde.
Bitte helft dem Autor Lutz Willek bei der Verbesserung des Skripts und schickt ihm die angelegte Protokolldatei zu (auch wenn alles erfolgreich geklappt hat). Diese Datei findet man als /var/log/fcpci_build.log.
Diese Vorgehensweise ist nur zur Neuinstallation auf einem frisch installiertem Systems gedacht. Alle Programme schließen, da der Rechner am Ende der Installation neu gestartet wird. Hinweis für Server-Betreiber: Der Neustart lässt sich umgehen, wird aber ausdrücklich empfohlen.
Ein Terminal öffnen:
wget -O install.sh http://belug.de/~lutz/pub/fcpci/install380.sh chmod +x install.sh sudo ./install.sh
Wenn man ein bestehendes System nutzt und ein Update dieses Systems auf Ubuntu 13.04 plant, dann ist eine Installation nur des Kernelmoduls mit DKMS unter Umständen besser geeignet. Das angebotene Skript verändert bereits vorhandene Konfigurationsdateien, was bestehende Installation unbrauchbar machen könnte. In diesem Fall sollte das Skript nur als Anregung dienen, was man alles noch machen könnte.
sudo su - apt-get install -y linux-headers-generic dkms build-essential python-apport python-gi make gcc cd /usr/src/ wget https://belug.de/~lutz/pub/fcpci/fritz-fcpci-3.8.0.tar.bz2 tar xjvf fritz-fcpci-3.8.0.tar.bz2 dkms install -m fcpci -v 3.8.0 exit
Nach dem Entpacken [2] mit Root-Rechten [3] in den Ordner /usr/src/fcpci-VERSION/ muss noch eine symbolische Verknüpfung 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-VERSION/ entpackt werden.
je nachdem, ob man ein 32- oder 64-Bit System einsetzt, im Ordner /usr/src/fcpci-VERSION/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-VERSION/dkms.conf mit Root-Rechten und folgendem Inhalt anlegen [5]:
PACKAGE_NAME=fcpci PACKAGE_VERSION=VERSION ## beispielsweise 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"
Das Kompilieren mittels DKMS wird mit folgenden Schritten getestet (Beispiel für Ubuntu 10.10 - 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 ] ...
Diese Revision wurde am 16. November 2015 21:50 von aasche erstellt.