Wie man einen 2.6.x Kernel auf Slackware Linux baut
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.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
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.
Englische Version