Einen 2.6er Kernel für Slackware kompilieren

Linux Kernel der 2.6er Reihe sind seit Slackware 12.0 Standard.

Warnung!: Wer am Kernel arbeitet und etwas falsch macht kann sein System so zerschießen, daß es neuinstalliert werden muß. Alle Aktionen auf eigene Gefahr! Niemand Garantiert, daß alle Aktionen die hier beschrieben, sind 100%ig richtig sind und in jedem Fall funktionieren. Wir übernehmen keine Haftung für Schäden die durch Befolgen der Anleitung entstehen!

Vorarbeiten:
Besorge dir die gewünscht Kernelquellen von ftp://ftp.de.kernel.org oder einem Mirror (http://www.kernel.org/mirrors/).

Sorge dafür, daß du auch nach dem Kernel-Updaten den Slackware-Original-Kernel booten kannst (Installation des 2.6.13er Kernel aus „testing“ vorausgesetzt)

image = /boot/vmlinuz-generic-2.6.13
 root = /dev/hda1 #Deine Rootpartition, siehe evtl. anderen Linuxkernel und/oder original /etc/lilo.conf
 label = Backup
 read-only

Danach als root einmal „lilo“ ausführen.
Wer ganz sicher gehen will macht jetzt einen reboot und schaut ob der Kernel ohne Fehler bootet.

Entpacke die Kernelquellen unterhalb von /usr/src

Der Symlink /usr/src/linux muss auf das Verzeichnis des neuen Kernel zeigen. Z. B. ln -s /usr/src/linux-2.6.14.4 /usr/src/linux

Kernelkonfiguration:

Als nächstes in das Kernelverzeichnis wechseln.
cd /usr/src/linux

Konfiguriere deinen Kernel:

* entweder ganz neu, dann kannst du aus
make config (die Möglichkeiten der Konfiguration werden nacheinander abgefragt)
make menuconfig (man bekommt ein nettes Menü und kann bequem mit den Cursortasten navigieren; benötigt ncurses-5.x)
make xconfig (die Konfiguration kann unter X gemacht werden, benötigt natürlich eine funktionierende X-installation)
make gconfig
make qtconfig
wählen.
Wichtig! Bei Konfigurieren vor allem darauf achten das die Alsa-Module in den Kernel einkompiliert werden (sonst geht der Ton mit dem neuen Kernel nicht). Dies muss auch nach einem „make oldconfig“ durchgeführt werden (z.B. mit „make menuconfig“) da der originale Slackware-Kernel ohne Alsa kompiliert wurde!
* ausgehend von einer alten Konfiguration:
Kopiere die configdatei des alten Kernels nach ./.config, wenn du vom Originalslackwarekernel ausgehen willst, dann:
cp /boot/config .config
Anschließend make oldconfig, um neuhinzugekommene Features zu konfigurieren (ggf. alle Rückfragen mit „Enter“ bestätigen um die Vorgabewerte zu übernehmen) und evtl. aus make config, make menuconfig und make xconfig wählen, wenn man noch was ändern will.

Kernel kompilieren und installieren:

Das eigentliche Kompilieren kann beginnen:

make (Jetzt kann man je nach Rechner erstmal einen Kaffee trinken gehen, einen Film schauen oder einfach nur auf dem Balkon eine Zigarette rauchen ;-))

Wenn das Fehlerfrei durchgelaufen ist (wovon wir jetzt einmal ausgehen) dann sollten jetzt der Kernel und die gewünschten Kernel Module kompiliert sein.

Symlinks entfernen.

Wenn noch der Original-Slackware-Kernel läuft, dann sind „vmlinuz“ und „System.map“ Symlinks auf die Kernel-Dateien. Um sicherzugehen das der Original-Kernel beim Installieren nicht überschrieben wird, löschen wir diese Symlinks
rm /boot/vmlinuz /boot/System.map

den Kernel installieren:

die Kernelmodule mit
make modules_install
installieren.
den Kernel selbst mit
make install
installieren.

Wenn alles funktioniert hat, kannst du jetzt den neuen (selbstgebauten) Kernel verwenden.

Troubleshooting:

  • Hilfe der neue Kernel funktioniert nicht!
    Wähle bei lilo den Backupkernel, schau was du an der Kernelconfiguration falsch gemacht hast, ändere das und kompiliere neu.
  • Wähle den Backupkernel sagt sich so einfach, aber….
    Jetzt weißt du warum man vor Neuinstallation eines Kernels immer eine Lauffähige Version haben sollte. Entweder dein System ist noch soweit ok, daß du die Konfiguration überprüfen und neubauen kannst, oder aber du bootest von der Slackware CD, mountest deine Rootpartition nach /mnt, machst ein chroot /mnt und baust von dort deinen Kernel neu oder installierst Slackwarepakete eines lauffähigen Kernels.

Die ursprüngliche Englische Version ist leider nicht mehr erreichbar.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Wordpress Anti-Spam durch WP-SpamShield