Linux Bibel online

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Linux ist wie schon unter Was ist Linux? beschrieben nicht das Betriebssystem Linux sondern nur der Kern des Systems, erst im Zusammenspiel mit Treibern und Anwendungen ist Linux dann auch tatsächlich ein benutzbares System. Nun geht es in diesem Beitrag um das kompilieren eines neuen Kernels - und keine Angst, das kompilieren eines Linux-Kernels ist keineswegs so aufwendig wie das Übersetzen anderer Software wie etwa unter Kompilieren beschrieben. Es gilt nur einige essentielle Programme zu installieren und dann kann es auch schon los gehen.

Warum könnte es nötig sein einen neuen Kernel zu erstellen?

Die Frage ist eigentlich sehr einfach zu beantworten, nehmen wir einmal an Sie haben neue Hardware gekauft deren Treiber sich im aktuell installierten Kernel noch nicht findet, neuere Kernel bringen meist auch mehr Geschwindigkeit, neue Funktionen und Stabilität.

In diesem Beitrag geht es nun darum einen neuen Linux-Kernel zu konfigurieren, diesen zu übersetzen und eben auch zu installieren. In diesem Beitrag geht es dabei speziell um auf Debian basierende Linux-Distributionen zu denen natürlich etwa auch Ubuntu, Kubuntu, Linux Mint und viele weitere gehören. Unter anderen Distributionen wie etwa Fedora, Open SuSE, Mageia und so weiter und so fort nutzen andere Namen der Pakete die Sie zum übersetzen installieren müssen - diese Anleitung bezieht sich also speziell um auf Debian basierende Systeme.

Nötige Software installieren

Zum Kompilieren - also zum Übersetzen eines neuen Linux-Kernels aus dem Quellcode muss man erst die nötige Software installieren, das sind folgende Pakete die Sie einfach über die Paket-Verwaltung installieren: fakeroot kernel-package gcc libc6-dev binutils make and pkg-config libssl-dev libncurses5-dev. Für kleine Spezialitäten hilft auch die Datei "/usr/share/doc/kernel-package/README.gz".

Kernel herunter laden

Das was wir nun benötigen sind natürlich die Quellen des Kernels, diese finden wir unter Kernel.org. Achten Sie darauf das Sie wirklich das Tar.xz-Archiv herunter laden und nicht etwa den Patch. In diesem Fall wäre die aktuellste Version die Nummer 4.9 (ca 89MB).

In meinem Fall liegt nun im Download-Verzeichnis das komprimierte Archiv mit dem Dateinamen "linux-4.9.xz". Dieses Archiv entpacken wir nun gleich auf dem Terminal als Nutzer root in das richtige Verzeichnis namens "/usr/src" und wechseln gleich darauf in dieses Verzeichnis durch den Befehl:

tar xf linux-4.9.tar.xz mkdir /usr/src/linux-4.9 mv linux-4.9 /usr/src/linux-4.9 cd /usr/src/linux-4.9/linux-4.9

Wir haben also das Archiv entpackt womit wir das Verzeichnis "linux-4.9" erhalten haben, wir haben das Verzeichnis "/usr/src/linux-4.9" erstellt, das entpackte Verzeichnis verschoben und in dieses Verzeichnis gewechselt.

Kernel konfigurieren

Nach der Installation aller Komponenten gilt es die Übersetzung der Quellen vor zu bereiten, einen Linux-Kernel man man mit unzähligen Optionen kompilieren. Man kann Treiber und Module fix einbauen - dies ist für die Sicherheit ganz extrem - so könnte ein Hacker etwa keine Module nach laden oder diese erst nachladen lassen wenn diese auch wirklich benötigt werden. Nun wollen wir uns einmal den vollen Umfang der Optionen ansehen:

Volle Konfiguration

In diesem Spektakel hat der Nutzer die volle Kontrolle - sollte aber auch wissen was er tut, welche Treiber er benötigt und so weiter und so fort. Wir starten also im Verzeichnis in dem die entpackten Quellen liegen als Administrator den Befehl:

make menuconfig

Linux-Kernel unter Debian zum kompilieren vorbereiten

Linux-Kernel unter Debian zum kompilieren vorbereiten

In diesem auf Ncurses basierendem Fenster sehen wir nun alle Optionen mit Unter-Menüs aufgelistet. Darunter finden sich Schaltflächen zum speichern, zur Hilfe und so weiter und so fort, mit den Pfeil-Tasten rauf und runter wechselt man nun die Einträge in den Menüs, mit den Pfeil-Tasten links und rechts bedient man die Schaltflächen - bestätigt wird jeweils mit der Eingabe-Taste, mit der Leertaste wiederum setzt man Optionen indem man ein Sternchen für den Eintrag setzt.

Diese nette kleine Software bringt für jede Option eine ausführliche Hilfe indem man den Eintrag markiert und nun unten die Schaltfläche "Hilfe" nutzt:

Linux-Kernel unter Debian zum kompilieren vorbereiten

Linux-Kernel unter Debian zum kompilieren vorbereiten

Mittels "Exit" geht man wieder eine Menü-Ebene hoch. Wichtig ist es nach den vor genommenen Einstellungen diese natürlich auch am Ende mittels "Save" zu speichern. Dies erstellt dann die Konfiguration des Kernels die dann zum kompilieren genutzt wird.

Viel einfacher mit ein wenig Hilfe

Nicht jeder Nutzer will gleich den kompletten Kernel selbst konfigurieren, in den meisten Fällen ist dies auch nicht nötig, man nutzt einfach die Konfiguration des bereits laufenden Kernels. Dazu kopiert man sich natürlich ebenfalls als Nutzer root die bestehenden Konfigurationsdateien aus dem System-Verzeichnis "/boot" in das Verzeichnis in dem die Quellen liegen:

cp /boot/config-`uname -r` .config

Damit hätten wir die Konfiguration des alten aktuell genutzten Kernels da wo sie sein soll (versteckte Datei ".config"), nun bringen neue Kernel meist auch neue Funktionen mit die wir durch den Befehl:

yes "" | make oldconfig

in diese Konfiguration ein bringen.

Kernel übersetzen

Hat man seine Konfiguration nun auf welche Art auch immer erstellt kann man an das Übersetzen der Quellen gehen - dies übernimmt der Befehl:

make-kpkg --initrd buildpackage

Dieser Befehl erstellt direkt im übergeordneten Verzeichnis die passenden Debian-Pakete mit allem rund herum. Der Kernel ist natürlich kein kleines Ding an Software - das Übersetzen kann so schon etwas dauern, je nach Hardware und Geschwindigkeit der Festplatte - in meinem Fall 4GB RAM Hauptspeicher, SSD und zwei Prozessor-Kernen mit je 2,4GHz dauerte es beim Kernel 4.9 rund 35 Minuten.

Ist das Übersetzen abgeschlossen wechselt man nun ein Verzeichnis hoch:

cd ..

und startet die Installation aller Pakete durch den Befehl:

dpkg -i *.deb

Nach einem Neustart kann man den neuen Kernel wählen und wenn alles so läuft wie man es sich wünscht den alten deinstallieren.

Suche Nach oben Startseite Mail an den Autor Links rund um Linux

SiteLock