Wie man einen Kernel kompiliert - auf Fedora - Seite 2

2.5 Den Kernel konfigurieren

Nun führen wir dies aus

make menuconfig

was das Kernel Konfigurationsmenü aufruft. Gehe zu Load an Alternate Configuration File und wähle .config als Konfigurationsdatei:



Durchblättere dann das Kernel Konfigurationsmenü und treffe Deine Wahl. Wenn Du damit fertig bist und Exit wählst, beantworte folgende Frage (Do you wish to save your new kernel configuration?) mit Yes:

2.6 Den Kernel bauen

Nun bauen wir unser Kernel pm Paket indem wir einfach Folgendes ausführen

make rpm

Afterwards you will find a new src.rpm package in the ~/rpmbuild/SRPMS/ directory, e.g. ~/rpmbuild/SRPMS/kernel-2.6.18custom2.6.18.2-1.src.rpm, and the kernel rpm package in ~/rpmbuild/RPMS/i386/ (or ~/rpmbuild/RPMS/i586/, ~/rpmbuild/RPMS/i686/, etc. depending on your architecture), e.g. ~/rpmbuild/RPMS/i386/kernel-2.6.18custom2.6.18.2-1.i386.rpm. As you see your kernel identification has been added to the package name.


2.7 Den neuen Kernel installieren

Gehe nun in das Verzeichnis, in dem Dein neues Kernel rpm Paket erstellt wurde (je nach Deiner Architektur, z.B. ~/rpmbuild/RPMS/i386/) und installiere das rpm Paket:

cd ~/rpmbuild/RPMS/i386
rpm -ivh kernel-2.6.18custom2.6.18.2-1.i386.rpm

(Du kannst nun sogar das rpm Paket zu anderen Fedora Systemen transferieren und es dort auf die gleiche Art 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-custom-2.6.18.2.img 2.6.18-custom-2.6.18.2

Bearbeite dann /boot/grub/menu.lst. Sieh Dir dort Deine vorhandenen (funktionierenden) Kernel Zeilen an und nimm eine von ihnen als Muster für Deine neue Zeile und ersetze den Kernel und die Ramdisk, füge die Zeile dann über allen anderen Zeilen ein.

vi /boot/grub/menu.lst

Zum Beispiel sieht mein menu.lst bevor ich die neue Zeile hinzufüge so aus:
# grub.conf generated by anaconda
# # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.18-1.2798.fc6) root (hd0,0) kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-1.2798.fc6.img
und so danach:
# grub.conf generated by anaconda
# # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00 # initrd /initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Fedora Core (2.6.18-custom-2.6.18.2) root (hd0,0) kernel /vmlinuz-2.6.18-custom-2.6.18.2 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-custom-2.6.18.2.img title Fedora Core (2.6.18-1.2798.fc6) root (hd0,0) kernel /vmlinuz-2.6.18-1.2798.fc6 ro root=/dev/VolGroup00/LogVol00 initrd /initrd-2.6.18-1.2798.fc6.img
(Du findest die richtigen vmlinuz und initrd Dateien raus, indem Du dies ausführst

ls -l /boot

)

Sarte das System jetzt neu:

shutdown -r now

Wenn alles klappt, sollte es mit dem neuen Kernel starten. Ob es wirklich Deinen neuen Kernel benutzt, überprüfst Du, indem Du Folgendes ausführst

uname -r

Dies sollte etwas in der Art anzeigen

2.6.18-custom-2.6.18.2

Wenn das System nicht startet, starte es neu und wenn Du dies siehst:


drücke irgendeine Taste um in das GRUB Menü zu gelangen:


Wähle Deinen alten Kernel aus und starte das System. Du kannt nun erneut versuchen, einen funktionstüchtigen Kernel zu kompilieren. Vergiss nicht, die Zeile des defekten Kernels aus /boot/grub/menu.lst zu entfernen:

0 Kommentar(e)

Zum Posten von Kommentaren bitte