Source herunterladen
Red Hat 4
Zuerst muss die Source zum entsprechenden Kernel heruntergeladen werden (ca. 80mb):
# up2date get-source kernel-2.6.9-55.0.2.EL
Installieren
Hier wird das Source-RPM in den Ordner /var/spool/up2date geladen. Diesen einfach mit folgendem Befehl installieren
rpm -ivh kernel-2.6.9-55.0.2.EL.src.rpm
Red Hat 5
Die Source muss per FTP heruntergeladen werden. ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS
Installieren
in den jeweiligen Ordner wechseln wo die Datei hingeladen wurde und wie oben vorgehen.
Vorbereitungen & Konfiguration
Jetzt in den Ordner /usr/src/redhat/SPECS/ wechseln und folgenden Befehl ausführen:
rpmbuild -bp --target= kernel-2.6.spec
<arch> muss durch die jeweilige gewünschte Architektur ausgetauscht werden - z.B. i686. Der Kernel-Tree wird dann unter /usr/src/redhat/BUILD/ gespeichert. Genauer gesagt im Ordner /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 in den gewechselt werden muss.
- Als ersten Schritt zuerst dies hier ausführen:
make clean && make mrproper
- weiters die gewünschte ".config" erstellen. Dafür findet man im Ordner /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/configs mehrere vorgefertigte Dateien. In diesem Fall wurde Datei "kernel-2.6.9-i686-smp.config" verwendet.
cp configs/kernel-2.6.9-i686-smp.config .config
- Danach wird das Kernel Konfigurationsmenü gestartet - mit:
make menuconfig
Erscheint ein Fehler?! - Eventuell muss noch ncurses-devel installiert werden.
- hier zuerst den Punkt "Load an Alternate Configuration File" und die .config Datei auswählen.
- jetzt dem Kernel eine Version geben - dies geschieht unter dem Punkt "General Setup ---> () Local version - append to kernel release." - hier wurde "-vmware-guest-b1" verwendet. Danach das Menü beenden und bei der Frage ob die Änderungen gespeichert werden sollen mit JA antworten.
VMware Zeit Problem
RedHat 4
Es muss in der Datei param.h der Wert von "# define HZ 1000" auf "# define HZ 100" gesetzt werden. Diese Datei findet man im Ordner /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/include/asm-i386
RedHat 5
Hier die .config File ändern. Folgendes muss geändert werden von:
# CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000
auf
CONFIG_HZ_100=y # CONFIG_HZ_250 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=100
Kernel kompilieren
Wieder in den Ordner /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9 wechseln und folgendes ausführen - nicht über einen SSH-Session da dies einige Zeit in Anspruch nehmen kann:
make rpm
Kernel installieren
Im Ordner /usr/src/redhat/RPMS/i386/ findet man die erstellte rpm-Datei. (z.B.: kernel-2.6.9prepvmwareguestb1-1.i386.rpm). Einfach in den Ordner wechseln und mit diesem Befehl installieren:
rpm -ivh --nodeps kernel-2.6.9prepvmwareguestb1-1.i386.rpm
RAMdisk erstellen
mit:
mkinitrd /boot/initrd-2.6.9-prep-vmware-guest-b1.img 2.6.9-prep-vmware-guest-b1
GRUB konfigurieren
Dafür muss man die Datei /boot/grub/menu.lst editieren - diese kann z.B. wie folgt aussehen:
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You do not have a /boot partition. This means that # all kernel and initrd paths are relative to /, eg. # root (hd0,0) # kernel /boot/vmlinuz-version ro root=/dev/sda1 # initrd /boot/initrd-version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux ES (2.6.9-prep-vmware-guest-b1) root (hd0,0) kernel /boot/vmlinuz-2.6.9-prep-vmware-guest-b1 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.9-prep-vmware-guest-b1.img title Red Hat Enterprise Linux ES (2.6.9-55.0.2.EL) root (hd0,0) kernel /boot/vmlinuz-2.6.9-55.0.2.EL ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.9-55.0.2.EL.img title Red Hat Enterprise Linux ES (2.6.9-55.0.2.ELsmp) root (hd0,0) kernel /boot/vmlinuz-2.6.9-55.0.2.ELsmp ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.9-55.0.2.ELsmp.img title Red Hat Enterprise Linux ES (2.6.9-42.ELsmp) root (hd0,0) kernel /boot/vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.9-42.ELsmp.img title Red Hat Enterprise Linux ES-up (2.6.9-42.EL) root (hd0,0) kernel /boot/vmlinuz-2.6.9-42.EL ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.9-42.EL.img
Nach einem Reboot sollte nun der neue Kernel verwendet werden.
Kommentare