ubuntuusers.de

DKMS

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Wiki/Icons/pci.png 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.

Experten-Info:

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.

Wiki/Icons/synaptic.png

Installation

Neben dem Paket:

  • dkms

Befehl zum Installieren der Pakete:

sudo apt-get install dkms 

Oder mit apturl installieren, Link: apt://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).

Wiki/Icons/settings.png

Konfiguration

Ubuntu 13.04

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.

Hinweis:

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.

Neuinstallation

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  

Update einer funktionierenden Installation

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 

Ab Ubuntu 11.04

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.

Bis Ubuntu 10.10

  1. Der Quelltext muss mit Root-Rechten in den Ordner /usr/src/fcpci-VERSION/ entpackt werden.

  2. 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 
  3. 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"

Wiki/Icons/develop.png

Verwendung von DKMS

Das Kompilieren mittels DKMS wird mit folgenden Schritten getestet (Beispiel für Ubuntu 10.10 - bitte die Version anpassen):

  1. Mit dem Befehl:

    sudo dkms add -m fcpci -v 2.6.34 

    wird das Kompilieren von fcpci vorbereitet.

  2. Der eigentliche Kompilierungsvorgang wird mit:

    sudo dkms build -m fcpci -v 2.6.34 

    gestartet.

  3. Abschließend erfolgt die Installation des Kernelmoduls:

    sudo dkms install -m fcpci -v 2.6.34 
  4. Nur erforderlich, wenn man das Kernelmodul wieder aus DKMS entfernen möchte:

    sudo dkms remove -m fcpci -v 2.6.34 --all 

Ergebnis

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 18. März 2021 10:53 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, unfreie Software, ISDN, Server