Kernel bauen

Aus Ubuntu-Forum Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis


1 Warum selbst einen Kernel bauen

Da Ubuntu möglichst viel Hardware unterstützen soll, ist der Standard-Kernel extrem überladen. Das kann das System langsam und instabil machen. Mit einem selbst gebauten Kernel umgeht man diese Probleme, indem man den Kernel genau auf sein System zuschneidet. Das erfordert zwar viel Übung, bis man einen guten Kernel gebaut hat, es rechnet sich aber in der Leistung und Stabilität. Außerdem gewinnt man einen Einblick in das Innenleben seines Linux.

Den perfekten Kernel wird es nur in wenigen Ausnahmefällen geben. Man arbeitet sich eher an die perfekte Konfiguration schrittweise heran.

2 Vorbereitung

Man installiert folgende Pakete um den Kernel bearbeiten und kompilieren zu können:

sudo apt-get install build-essential kernel-package xmlto libncurses5-dev


Anschließend lädt man sich die neusten stable Kernel-Sources von Kernel.org, indem man auf den Link "F" klickt. Das Paket speichert man in seinem persönlichen Ordner.


Dann verschiebt man das Paket in das Verzeichnis /usr/src:

sudo mv ~/linux-*.tar.bz2 /usr/src/

wechselt in das Verzeichnis:

cd /usr/src

und entpackt es schließlich mit folgendem Befehl:

sudo tar xfvj linux-*.tar.bz2 


Damit die Kernel-Sources später auch von Programmen gefunden werden können, verlinkt man auf den entpackten Ordner mit einem symbolischen Link:

sudo ln -s Zielordner linux

Als Zielordner ist der eben entpackte Ordner anzugeben.


Nun kann man mit:

cd linux

in den Kernel-Source Ordner hineinwechseln.

3 Konfiguration

Nun kommt man zum wichtigsten und schwersten Teil der ganzen Sache: der Konfiguration.

Um den Kernel richtig zu konfigurieren, sollte man sich über sein System und die verbaute Hardware schlau machen. Hilfreiche Befehle sind hier:

sudo lspci

und

sudo lsusb
Das Konfigurationsmenu


Hat man diese Informationen, kopiert man sich die Konfiguration des alten Kernels in den Ordner:

sudo cp /boot/config-`uname -r` /usr/src/linux/.config


Um in das Konfigurationsmenu zu gelangen, gibt man nun folgendes ein:

sudo make menuconfig


Falls man nur den Kernel upgraden will (bezüglich Sicherheitslecks, Bugs) kann man auch statt des oben genannten Befehls die Kernelkonfiguration des laufenden Kernels übernehmen:

sudo make oldconfig


3.1 Navigation


3.2 Optionen

Wer eine ausführliche Beschreibung der einzelnen Optionen sucht, findet man unter den folgenden Links im Gentoo-Wiki eine exzellente Erklärung der Punkte:

4 Den Kernel kompilieren

Wenn die Konfiguration des Kernels überstanden ist, kann man damit beginnen den Kernel zu kompilieren.

Wenn man aus den gleichen Quellen zuvor einen Kernel kompiliert hat, sollte man das Verzeichnis von Überesten säubern:

sudo make-kpkg clean


Nun kann man mit folgendem Befehl ein deb Paket erstellen:

sudo make-kpkg --initrd --revision Kernelversion binary

Als Kernelversion gibt man die Versionsnummer des zu kompilierenden Kernels an, zB.: 2.6.24.3


Wenn man sich sehr gut auskennt, kann man auch den Parameter --initrd weglassen, allerdings müssen dann die Treiber für die Festplatten fest in den Kernel eingebunden werden. Das Wegfallen eines initramfs beschleunigt den Systemstart merklich.

Mehr zu initrd gibt es in Wikipedia


Der Kernel kompiliert nun eine Weile und wenn er fertig ist kann man die deb Pakete installieren.

5 Installation

Die kompilierten deb Pakete befinden sich nun im Ordner /usr/src:

cd /usr/src

Anschließend kann man die kompilierten Pakete auf folgende Weise installieren, vorausgesetzt, dass sich vorher keine früheren deb Pakete darin befanden:

sudo dpkg -i linux-*.deb


Nach einem Neustart findet sich der Kernel als neuer Eingrag im Grub-Menü. Falls ihr die Fehlermeldung Kernel Panic bekommt, startet das System noch mal neu probiert nochmal, den Kernel zu laden. Falls das nicht erfolgreich war, habt ihr eine wichtige Einstellungen im Kernel verbockt oder ausgelassen. Man bootet den alten Kernel und wiederholt die Anleitung ab

sudo make menuconfig

bis es funktioniert.

6 Links

Gentoo-Wiki: Kernelkonfiguration

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Forum
Navigation
Internes
Bearbeitungshilfen
Werkzeuge