Linux: Kernel (neu) Kompilieren

Kaum hat man sein Linux frisch installiert, schon merkt man, dass man noch einige Kernel Optionen braucht, etwa zusätzliche Module.

Vielmals schreckt das neu kompilieren des kernels ab, doch es ist eigentlich ganz einfach… 😉

    1. Zuerst machen wir ein backup des alten Kernels:
cp -pv /boot/vmlinuz-x.x.x.x /root

Paranoide können auch noch die ganze boot-partition sichern:

tar -cvvz /boot/* -f /root/oldboot.tar.gz

2. Dann wechseln wir ins Linux Source verzeichniss:

cd /usr/src/linux-x.x.x.x

Hinweis: Die ‚x‘ stehen für die kernel version, die man anhand der Eingabe von: <PRE>uname -a</PRE> herausfinden kann

3. Evtl. noch erstellen des Linux-Symlinks (die kann wichtig sein, wenn im quelltext auf /usr/src/linux, anstatt auf das verzeichniss mit der vollen Version verwiesen wird) und zur Sicherheit vorher den alten löschen:

rm /usr/src/linux && ln -s /usr/src/linux-x.x.x.x /usr/src/linux

(Die x.x.x.x stehen wiederum für die Version des Kernels)

3. Erstellen der Kernel Konfiguration:
Falls man schon einen funktionierenden kernel am laufen hat, ist es am besten dessen Konfiguration erstmal zu übernehmen; dies erreichen wir mit:

make oldconfig

-Hier kann man bis zum schluss einfach immer ENTER Drücken, da wir nacher die genaue Konfiguration noch in einem übersichtlichen Menu anpassen werden.

Nun wird der Kernel individuell angepasst:

make menuconfig

Hier kannst du dann alle Kernel Optionen auswählen; weiss man nicht, was eine bestimmte Option bedeuted, kann man sich mit ‚HELP‘ die Beschfreibung dazu anzeigen lassen. -Ist man danach immer noch nicht schlauer, empfiehlt sich die vorgeschlagene default Einstellung zu lassen

Hinweis
Falls beim Befehl make menuconfig Fehler auftauchen, muss man sehr wahrscheinlich noch die ncurses-library installieren. Dies geschieht mittels:

apt-get install ncurses-dev

4. Kompilieren des Kernels und der Kernel-Module:

make && make install && make modules_install

5. Bootloader konfigurieren
Bei der Frage, ob z.B. LiLo gestarten werden soll, muss man mit Ja antworten

6. Boot Sicherheit (optional, nur LiLo)
Im schlimmsten Falle sollte man sicherstellen, dass man das System mit dem alten, funktionierendem kernel noch booten kann…

Dazu editiert man die lilo.conf datei; die Zeile "default=" (also z.B. default=kernel-2.6.17.6)
In dieser sollte jetzt noch der ALTE Kernel stehen (noch NICHT ändern)

Weiter unten sieht man die eingetragenen Kernel, hier den neuen hinzufügen:

image=/boot/vmlinuz-2.6.17.6
label=kernel-2.6.17.6
read-only

Nun Editor verlassen und lilo ausführen:

lilo

Es erscheint die Meldung, dass der neue Kernel hinzugefügt wurde:

Added kernel-2.6.17.6 *
Added kernel-2.6.19

Nun kann man "lilo -R LABEL" starten; dies sagt dem LiLo, dass er den kernel mit dem label "LABEL" genau einmal bootet, danach wieder der alte.

lilo -R kernel-2.6.19

Falls der Rechner nun mit dem neuen Kernel nicht mehr richtig bootet, reicht ein Neustart und es wird wieder der alte Kernel gebootet! 😉

Achtung
Nach dem korrekten Neustart des neuen Kernel, muss dieser "fest" als Standardkernel eingetragen werden:
/etc/lilo.conf editieren und bei "default=" den neuen Kernel eintragen.
-Danach am besten nochmals rebooten um zu sehen, ob der neue Kernel standardmässig gestartet wird.

7. Neustarten
Nun noch das System Neustarten und der neue Kernel läuft:

shutdown -r now

Schreibe einen Kommentar

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