Wie man einen 2.4.x Kernel auf Slackware Linux baut



Vorab: Wer am Kernel arbeitet und etwas falsch macht kann sein System so zerschießen, daß es neuinstalliert werden muß.


Alle Aktionen auf eigene Gefahr: Ich garantiere nicht, daß alle Aktionen, die ich beschreibe gutgehen, und übernehme keine Haftung für Schäden, die durch Befolgen der Anleitung entstehen.
cd /boot
cp vmlinuz vmlinuz.bak
cp System.map System.bak


Sorg dafür, daß du deinen Sicherungskernel booten kannst, etwa indem du deiner /etc/lilo.conf folgende Zeilen anhängst:
image = /boot/vmlinuz.bak
root = /dev/ #Deine Rootpartition, siehe evtl. anderen Linuxkernel
label = Backup
read-only


und lilo ausführst.
cd /usr/src/linux

* In Zeile 4:

Gib eine Extraversionnummer an, sie sollte mit einem Punkt beginnen (damit sie vom Sublevel klar unterscheidbar ist) und eindeutig sein, damit Module verschiedener selbstgebauter Kernels sich nicht ins Gehege kommen.

* In Zeile 77 (zumindestens bei 2.4.25):
Entferne das # vor
export INSTALL_PATH=/boot

Dann landet der Kernel in /boot, wo du ihn haben möchtest.

* entweder ganz neu, dann kannst du aus make config,
make menuconfig und make xconfig wählen. make menuconfig ist eine gute Wahl.

* ausgehen 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 und evtl. aus
make config, make menuconfig und make xconfig wählen, wenn man noch was ändern will.


make dep
make clean
make bzImage
make modules



Du kannst auch alles in einer Zeile schreiben (make dep clean bzImage modules),
nur wenn es zu einem Fehler kommt weißt du dann nicht bei welchem Schritt der Fehler auftritt

* erst die Module

make modules_install


* dann den Kernel
make bzlilo


Troubleshooting:

Wähle bei lilo den Backupkernel, schau was du an der Kernelconfiguration falsch gemacht hast, ändere das und backe neu.

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 SlackwareCD?, mountest deine Rootpartition nach /mnt, machst ein chmod /mnt und baust von dort deinen Kernel neu
oder installierst Slackwarepakete eines lauffähigen Kernels.

Tipps zum Konfigurieren:


Am besten geht man von einer funktionierenden Kernels (zB die des mitgelieferten Kernels) aus. So hat man einen Anhaltspunkt.
Nimmt man dann immer nur kleine Änderungen vor, weiß man in etwa was man falsch gemacht hat, wenn es nicht klappt.
... und du auch keine Anhaltspunkte dazu findest, könntest du wie folgt vorgehen:
1. Ist die entsprechende Funktion fest einkompiliert, so kompiliere sie erstmal als Modul. (andernfalls gehe direkt zu Punkt 2)
Es sei denn es war ein zentraler Bestandteil des Kernels sollte es trotzdem laufen.
2. Bootest du nun diesen Kernel kannst, du mit lsmod abrufen welche Module geladen wurden.
Ist das Modul selbst nach Benutzen aller Komponenten, die vielleicht damit in Verbindung stehen, nicht geladen,
so wird es wahrscheinlich nichts ausmachen diese Funktion komplett wegzulassen.

Kategorien
CategoryTutorials
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki