Linux-Umsteiger.de

Und der Einstieg fällt leicht!
Tux
Home
Programme
Tutorials
Links
Unterhaltung
Projekte


Erzeugen eines Linux Kernel
Voraussetzungen
Um einen eigenen Kernel zu übersetzen, brauchen Sie einen C-Compiler, der die Quelltexte ins Binärformat übersetzt. Ob der C-Compiler installiert ist, erfahren Sie mit dem folgenden Befehl:
gcc --version

Nach Eingabe dieses Befehls sollte die Versionsnummer auf dem Schirm erscheinen.

Holen der Kernel-Quellen
Nun brauchen Sie noch die aktuellen Kernel-Quellen. Die Quellen des unveränderten Original-Kernels finden Sie auf http://www.kernel.org
Schauen Sie auch auf die Downloadseite ihres  Distributors, der oft eigene (angepaßte) Versionen des Kernels im  RPM- oder DEB-Format bereitstellt.
Die Quelltexte des Kernels sollten Sie in /usr/src entpacken (bei der Installation eines Paketes wird das bereits oft automatisch erledigt).
Wechseln Sie in das Verzeichnis /usr/src, um zu schauen, ob ein Verzeichnis linux-<kernelversion> existiert. Wenn ja, kann es auch schon los gehen.
Wenn Sie die aktuelle Version des Originalkernels von  www.kernel.org heruntergeladen haben, kopieren Sie die Datei linux-2.x.xx.tar.bz2 in das Verzeichnis /usr/src und entpacken Sie das Archiv mit dem folgenden Befehl:
tar jvxf linux-2.x.xx.tar.bz2
Nach dem Entpacken ist das Verzeichnis /usr/src/linux-<kernelversion> entstanden.

Hinweis zur Versionsnummer des Kernels
Es werden im Grunde zwei Arten von Kernels unterschieden. Das sind zum einen die stabilen Kernel, zum anderen die Entwickler-Kernel, an denen aktuell gearbeitet wird und die nicht stabil genug für die Benutzung sind. Diese unterscheiden sich anhand der Versionsnummer. Eine gerade Zahl an der zweiten Stelle der Versionsnummer kennzeichnet den stabilen Kernel-Zweig, eine ungerade den aktuellen Entwickler-Kernel. Also sind etwa 2.0, 2.2, 2.4 und 2.6 stabile Kernel. Die Versionen 2.1, 2.3 und 2.5 dagegen sind Entwickler-Kernel.
Die Zahl, die darauf folgt, ist der Patchlevel des Kernels. Werden Änderungen an einer Kernelversion von den Kernel-Entwicklern freigegeben, so erhöht sich der Patchlevel jeweils um den Wert Eins. Der Patchlevel gibt somit Auskunft über die Aktualität des Kernels.

Konfiguration des Kernels
Sie haben im Wesentlichen drei Möglichkeiten, einen neuen Kernel zu konfigurieren.

make config: Dies  ist die einfachste aber nicht die beste von allen:
innerhalb des Konsolenfensters werden dem Benutzer Fragen gestellt, die er einzeln beantworten muss. Da dies mit der Zeit sehr umfangreich und unübersichtlich geworden ist, ist diese Methode nicht zu empfehlen.

make menuconfig: Diese Möglichkeit stellt ein grafisches Menü in einer Konsole bereit. In diesem Menü kann man Konfigurationsoptionen auswählen. Meistens werden die Möglichkeiten [X] [ ] [M] (aktiviert, deaktiviert und als Kernelmodul kompiliert) angeboten. Um diesen Weg zu nutzen, benötigt Ihr System die ncurses-Bibliothek, die jedoch von den meisten Distributionen von ganz allein installiert wird.

make xconfig: XConfig bietet ebenfalls ein Auswahlmenü an, aber unter der X-Window-Oberfläche. Hierzu müssen Sie bei einem Kernel der 2.4er Reihe Tcl/Tk, und bei einem Kernel der 2.6er Reihe QT installiert haben.

Entscheiden Sie sich für eine der drei Möglichkeiten und schauen Sie sich zunächst genau die Auswahloptionen an und vergleichen Sie, welche Hardware Sie in ihrem Computer haben (eventuell schauen Sie auch einmal in die Ausgaben der Befehle lspci und dmesg). Schauen Sie ggf. auf der Homepage des Herstellers nach, ob Sie eine Dokumentation zu Ihrer Hardware finden.
Nachdem Sie die Auswahlentscheidungen getroffen haben, können Sie Ihre Konfiguration speichern. Die Konfiguration wird dann in die Datei
/usr/src/linux-<kernelversion>/.config
geschrieben.

Übersetzung des Kernels
Nach der Konfiguration erfolgt die Übersetzung mit den Befehlen:
make
make modules_install

Installation des Kernels
Nach dem Kompilieren (die Kompilierungszeit ist abhängig von der Rechnenleistung und kann mehrere Stunden oder auch nur einige Minuten dauern) kopieren Sie den Kernel in Ihre Boot-Partition bzw. Ihr /boot-Verzeichnis. Eine Befehlsfolge könnte etwa wie folgt aussehen:
cp /usr/src/linux/arch/i386/boot/bzImage /boot/kernel2.6.18
cp /usr/src/linux/System.map /boot/System.map-2.6.18
Die exakte Versionsbezeichnung Ihres neu kompilierten Kernels teilt Ihnen die Datei /usr/src/linux/include/linux/version.h unter der Definition der UTS-RELEASE mit. Dies ist insbesondere dann wichtig, wenn Ihr Kernel eine besondere Namensgebung wie z.B. 2.6.0-64GB-SMP aufweist. Programme, welche die Datei System.map benötigen, suchen nach einer Datei mit dem Namen System.map-<kernelversion> und verwenden dabei exakt den in der version.h Datei definierten Namen. Für Ihr laufendes System können Sie die richtige Versionsbezeichung mittels
uname -r
in Erfahrung bringen.

Um den neuen Kernel booten zu können, müssen Sie dem Bootloader noch mitteilen, wo er den neuen Kernel findet.
Öffnen Sie bei Verwendung von LILO die Datei /etc/lilo.conf mit einem Texteditor und fügen Sie Einträge der Form

# Neuer Kernel:
image = /boot/kernel2.6.18
label = Kernel 2.6.18
hinzu.

Nun führen Sie noch als root /sbin/lilo aus.

Sollten Sie GRUB als Bootloader verwenden ändern sie die Datei /boot/grub/menu.lst mit einem Texteditor und fügen Sie einen Eintrag in folgender Form ein.
title                       Kernel 2.6.18
root                      (hd0,0)
kernel                  /kernel2.6.18 root=/dev/hda3 ro quiet splash
quiet
savedefault
boot
   
Starten des neuen Kernels
Beim Erscheinen des Bootmenüs wählen Sie den Eintrag mit dem neuen Kernel aus. Damit bootet der Computer mit Ihrem neuen Kernel.
Sollte der Computer aus irgendwelchen Gründen nicht booten, so schauen Sie sich die Fehlermeldungen genau an, sie geben Aufschluß über die Ursachen. Starten Sie in diesem Fall Ihren Computer neu und booten Sie ihn dann mit dem alten Kernel. Sie finden die Fehlermeldungen, falls sie nicht ohnehin auf der Konsole ausgegeben wurden, in der Datei /var/log/messages.
Autor / Lizenz: Erwin Dogs / GFDL

Google