Wie man einen Kernel kompiliert - Mandriva - Seite 2


Wenn du fertig bist und Exit wählst, beantworte folgende Frage (Do you wish to save your new kernel configuration?) mit Yes:

5 Den Kernel bauen

Um den Kernel zu bauen, führe einfach diesen Befehl aus:

make rpm

Sei nun etwas geduldig, die Kompilierung des Kernels kann einige Stunden dauern, das hängt ganz von der Kernel Konfiguration und Deiner Prozessorgeschwindigkeit ab.

6 Den neuen Kernel installieren

Nach der erfolgreichen Kompilierung des Kernels ist ein src.rpm und rpm Paket erstellt worden. Das src.rpm Paket findest Du im /usr/src/rpm/SRPMS/ Verzeichnis, seine Bezeichnung erfährst Du indem Du Folgendes ausführst

ls -l /usr/src/rpm/SRPMS/

Auf meinem System hieß es kernel-2.6.18.3default-1.src.rpm.

Das rpm Paket findest Du in /usr/src/rpm/RPMS/i386/, /usr/src/rpm/RPMS/i586/, /usr/src/rpm/RPMS/i686/, /usr/src/rpm/RPMS/x86_64/, etc., das hängt von Architektur ab. Auf meinem System war es in /usr/src/rpm/RPMS/i386/. Indem ich Folgendes ausgeführt habe

ls -l /usr/src/rpm/RPMS/i386/

fand ich heraus, dass seine Bezeichnung kernel-2.6.18.3default-1.i386.rpm war.

Nun können wir unser Kernel rpm Paket wie folgt installieren:

cd /usr/src/rpm/RPMS/i386/
rpm -ivh kernel-2.6.18.3default-1.i386.rpm

Nun kannst Du das Kernel rpm Paket sogar zu anderen Mandriva Systemen transferieren und es dort genauso installieren, was bedeutet, dass Du den Kernel dort nicht noch einmal kompilieren musst.

Als Nächstes erstellen wir eine Ramdisk für unseren neuen Kernel, da das System sonst wahrscheinlich unseren neuen Kernel nicht starten wird:

mkinitrd /boot/initrd-2.6.18.3-default.img 2.6.18.3-default


7 Konfiguration des LILO Boot Loaders

Nun müssen wir unseren LILO Boot Loader konfigurieren, damit unsere neuen Kernel gestartet werden, wenn wir das System neu starten.

Führe dies aus

ls -l /boot

um Angaben über unseren neuen Kernel (beginnt normalerweise mit vmlinuz, z.B. vmlinuz-2.6.18.3-default) und Ramdisk (beginnt normalerweise mit initrd, z.B. initrd-2.6.18.3-default.img) in Erfahrung zu bringen.

Bearbeite dann /etc/lilo.conf. Sieh Dir dort Deine vorhandenen (funktionstüchtigen) Kernelzeilen an und nimm eine von ihnen als Muster für Deine neue Zeile und ersetze den Kernel und die Ramdisk. Füge dann die Zeile über allen anderen Zeilen ein. Vergewissere Dich, dass Du einen eindeutigen Namen für diesen Kernel in der Zeile label definierst (z.B. linux-2.6.18.3-default) und definiere genau den gleichen Namen in der default Zeile, sodass der Kernel gestartet wird, wenn Du das System neu startest.

vi /etc/lilo.conf

Zum Beispiel sieht meine lilo.conf wie folgt aus, bevor ich die neue Zeile hinzugefügt habe:
# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file default="linux" boot=/dev/sda map=/boot/map keytable=/boot/us.klt menu-scheme=wb:bw:wb:bw compact prompt nowarn timeout=100 message=/boot/message image=/boot/vmlinuz label="linux" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux-nonfb" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5" image=/boot/vmlinuz label="failsafe" root=/dev/sda6 initrd=/boot/initrd.img append=" failsafe resume=/dev/sda5"
und so danach (denke daran, was ich über die label und default Zeile gesagt habe):
# File generated by DrakX/drakboot
# WARNING: do not forget to run lilo after modifying this file default="linux-2.6.18.3-default" boot=/dev/sda map=/boot/map keytable=/boot/us.klt menu-scheme=wb:bw:wb:bw compact prompt nowarn timeout=100 message=/boot/message image=/boot/vmlinuz-2.6.18.3-default label="linux-2.6.18.3-default" root=/dev/sda6 initrd=/boot/initrd-2.6.18.3-default.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5 splash=silent" vga=788 image=/boot/vmlinuz label="linux-nonfb" root=/dev/sda6 initrd=/boot/initrd.img append=" resume=/dev/sda5" image=/boot/vmlinuz label="failsafe" root=/dev/sda6 initrd=/boot/initrd.img append=" failsafe resume=/dev/sda5"
Führe dann dies aus

lilo

Starte das System jetzt neu:

shutdown -r now

Wenn alles klappt, sollte es mit dem neuen Kernel starten. Du kannst überprüfen, ob das System tatsächlich Deinen neuen verwendet, indem Du dies ausführst

uname -r

Dies sollte etwas in der Art anzeigen

2.6.18.3-default

Wenn das System nicht startet, starte es neu und wenn Du zum LILO Boot Loader Menü gelangst, wähle Deinen alten Kernel aus und starte das System:


Nun kannst Du erneut versuchen, einen funktionstüchtigen Kernel zu kompilieren. Vergiss nicht die Zeile Deines nicht-funktionierenden Kernels aus /etc/lilo.conf und vergewissere Dich, dass Du Folgendes ausführst

lilo

nachdem Du /etc/lilo.conf modifiziert hast.

8 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte