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
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.