Kernel kompilieren

Kernel kompilieren

In diesem Beitrag lesen Sie wie Sie unter auf Debian basierenden Systemen einen neuen Kernel kompilieren.

Informationen

Unter auf Debian basierenden Systemen wie eben Debian selbst, Ubuntu, Kubuntu, Linux Mint und so weiter bekommen Sie im aktuell genutzten Release der Distribution nur Updates der Sicherheit für den aktuell genutzten Kernel, natürlich werden auch Fehler korrigiert - aber neue Kernel-Versionen erhalten Sie erst dann wenn das Betriebssystem auf eine neue Version aktualisiert wird.

Ein neuer Kernel bringt jedoch erstens neue und aktualisierte Treiber sowie meist auch höhere Geschwindigkeit wie auch neue Funktionen. Unter Debian hat man es recht einfach, hier ziehen Sie einfach den aktuellsten Kernel aus dem Experimental-Repository - keine Angst - diese funktionieren trotz des Namen des Repos zuverlässig (mehr dazu unter aktuellen Kernel für Debian), für Ubuntu und darauf basierende Systeme gibt es ebenfalls PPA's. Doch will man spezielle Funktionen selbst aktivieren gilt es den Kernel selbst zu kompilieren.

Keine Angst - dies funktioniert einfacher als normale Software zu kompilieren.

Voraussetzungen schaffen

Als erstes installieren Sie über die Paket-Verwaltung folgende wichtige Pakete:

build-essential kernel-package fakeroot libssl-dev libncurses-dev libelf-dev bison flex

Nun besorgen wir uns einen aktuellen Kernel von Kernel.org. Am besten laden Sie sich den aktuellsten Stable-Kernel herunter:

Aktuellen Linux-Kernel herunter laden

Aktuellen Linux-Kernel herunter laden

Klicken Sie dazu einfach auf den Eintrag "Tarball". Nun erstellen wir wenn nicht vorhanden im Wurzel-Verzeichnis das Verzeichnis "/src" als Administrator auf dem Terminal:

mkdir /src

Bleiben wir gleich auf dem Terminal, wir entpacken den Kernel ganz einfach via:

tar xvf linux-dateiname.tar.xz

Und nun verschieben wir das entpackte Verzeichnis gleich in unser erstelltes "src"-Verzeichnis (natürlich wieder als Administrator):

mv -R linux-verzeichnis/ /src/

Wir wechseln in das Verzeichnis:

cd /src/linux-verzeichnis/

Damit wären wir nun im richtigen Verzeichnis und können beginnen:

Aktuellen Linux-Kernel kompilieren

Aktuellen Linux-Kernel kompilieren

Nun wollen wir uns erst einmal die Konfiguration des aktuell genutzten Kernels besorgen - dann kann später nichts schief gehen, Änderungen können wir immer noch vor nehmen:

cp /boot/config-kernel-version .config

Nach dem Schreiben von "cp /boot/config-" drücken Sie Tabulator-Taste und fügen zuletzt noch ".config" hinzu und bestätigen mit der Eingabe-Taste (somit wird die genutzte Kernel-Version automatisch eingegeben, sind hier mehrere vorhanden drücken Sie die Tabulator-Taste 2 Mal und geben die richtige an). Damit hätten wir die alte Konfiguration in unserem Verzeichnis mit dem neuen Kernel in der versteckten Datei ".config" gespeichert. Jetzt kommt der Befehl:

yes "" | make oldconfig

Nun starten wir die Konfiguration des neuen Kernels mit dem Befehl:

make menuconfig
Aktuellen Linux-Kernel kompilieren

Aktuellen Linux-Kernel kompilieren

Wir landen nun direkt in der Konfiguration des neuen Kernels, wenn uns die Einstellungen des alten Kernels genügen brauchen wir nur so lange die Tabulator-Taste drücken bis wir ganz unten auf dem Eintrag "Save" markiert haben und mit der Eingabe-Taste bestätigen, dasselbe dann mit "Exit". Wollen wir uns die Einstellungen genauer ansehen oder auch ändern gehen wir mit den Pfeil-Tasten die Einträge hinunter und markieren den gewünschten, bestätigen mit der Eingabe-Taste und befinden uns in der jeweiligen Konfiguration:

Aktuellen Linux-Kernel kompilieren

Aktuellen Linux-Kernel kompilieren

Hier setzen wir mit der Leertaste die jeweilige Option fest oder deaktivieren diese, mit "Save" wird gespeichert, mit "Exit" geht man wieder einen Menü-Eintrag hoch. So arbeitet man sich durch die Konfiguration, speichert dann alles noch einmal und beendet die Konfiguration. Die jeweiligen Nachfragen beantworten Sie einfach mit der Vorgabe.

Müssen Sie etwaige Treiber aktivieren die im aktuellen Kernel nicht vorhanden sind starten Sie mit der Tastenkombination Umschalt + 7 die Suche, geben nun den Namen des Treibers ein und bestätigen, aktivieren wie zuvor beschrieben den Treiber und speichern.

Nun geht es an die eigentliche Kompilierung - also an das Übersetzen des Kernels:

fakeroot make-kpkg -j 9 --initrd --append-to-version=-robert kernel_image kernel_headers

Hier ersetzen Sie "=-robert" etwa einfach durch Ihren Namen - dieser wird dann an den Kernel-Namen angehängt. Bestätigen Sie mit der Eingabe-Taste und den Rest übernimmt nun das System bei der Kompilation:

Aktuellen Linux-Kernel kompilieren

Aktuellen Linux-Kernel kompilieren

Warten Sie nun ab bis die Aufgabe erledigt ist, ist etwas nicht installiert - was etwa bei anderen Distributionen vorkommen kann bricht das Kompilieren ab und die Software zeigt das fehlende Paket, installieren Sie dieses und starten den Befehl erneut - es wird da fort gesetzt wo abgebrochen wurde. Diverse kryptische Ausgaben während des Vorganges sollte Sie dabei nicht stören, warten Sie einfach ab bis der Eingabe-Prompt wieder zu sehen ist. Je nach Hardware kann dies etwas länger oder eben auch weniger lange dauern, in meinem Fall rund 15 Minuten.

Wurde das Kompilieren abgeschlossen wechseln Sie ein Verzeichnis höher, also auf dem Terminal einfach mit:

cd ..

Hier liegen nun zwei neue Debian-Dateien die Sie einfach via:

apt install /src/*.deb

installieren.

Schnellerer Kernel / schneller starten

Sind Sie sich sicher das Sie keine weitere neue Hardware anschließen oder einbauen kann man den Kernel auch dazu bringen um ein paar Sekunden weniger zu brauchen um zu starten. Dazu nutzen wir die Funktion des Kernels der beim Start nach neuer Hardware sucht und deaktivieren diese. Schließen Sie dazu alle Geräte, Drucker, Scanner, Kameras, etc an die Sie brauchen und starten den Rechner damit. Gehen Sie nun wie zuvor beim Kompilieren vor nutzen jedoch statt des Befehls:

yes "" | make oldconfig

den Befehl:

yes "" | make localmodconfig

Der Rest ist dann der selbe Vorgang.

Neuen Kernel wählen

Nach der Installation wählen Sie nun im Boot-Menü den neuen Kernel (unter Ubuntu / Mint und anderen Distributionen die das Boot-Menü nicht anzeigen drücken Sie die Pfeil-nach-oben-Taste und wählen nun den Kernel).