Wie man einen Kernel kompiliert – SuSE

7 Installation des neuen Kernels

Nachdem der Kernel erfolgreich kompiliert wurde, ist ein src.rpm und rpm Paket erstellt worden. Das src.rpm Paket findest Du im /usr/src/packages/SRPMS/ Verzeichnis, seine Bezeichnung findest Du heraus, indem Du Folgendes ausführst

ls -l /usr/src/packages/SRPMS/

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

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

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

fand ich heraus, dass es kernel-2.6.18.2default-1.i386.rpm hieß.

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

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

(Du kannst das Kernel rpm Paket nun sogar zu anderen SuSE 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 unseren neuen Kernel wahrscheinlich sonst nicht startet:

mkinitrd

(Dieser Befehl erstellt eigentlich neue Ramdisks für alle installierten Kernels, was in Ordnung ist.)

8 Konfiguration des GRUB Boot Loaders

Nun müssen wir unseren GRUB Boot Loader konfigurieren, damit unser neuer Kernel gestartet wird, wenn wir das System neu starten. Statt /boot/grub/menu.lst direkt zu modifizieren, können wir dies ausführen

yast

um dies zu tun.

Gehe zu System -> Boot Loader:

Auf dem nächsten Screen siehst Du Deine vorhandenen GRUB Einträge. Gehe zu Add um einen neuen hinzuzufügen:

Wähle Clone Selected Section um einen der funktionstüchtigen GRUB Einträge zu clonen:

Gib für den neuen Kernel einen Namen ein, z.B. SUSE Linux 10.1 – 2.6.18.2 und gehe zu Kernel -> Browse:

Du siehst die Inhalte des /boot Verzeichnisses, in dem sich Dein neuer Kernel befindet. Wähle Deinen neuen Kernel aus, der normalerweise mit vmlinuz (z.B. vmlinuz-2.6.18.2-default) beginnt:

Gehe als Nächstes zu Initial RAM Disk -> Browse:

Wieder siehst Du die Inhalte des /boot Verzeichnisses. Wähle die entsprechende Ramdisk für Deinen neuen Kernel aus, die normalerweise mit initrd (z.B. initrd-2.6.18.2-default) beginnt:

Wieder zurück auf dem Hauptscreen, wähle OK:

Du siehst einen neuen GRUB Eintrag für Deinen neuen Kernel. Markiere ihn und drücke Up bis es der erste in der Liste ist:

Klicke dann auf Set as Default um den neuen Kernel aus Standard-Kernel auszuwählen:

Drücke Finish:

Wähle Quit um YaST zu verlassen:

Das war’s. Du kannst nun /boot/grub/menu.lst überprüfen, dort solltest Du eine neue Zeile für Deinen neuen Kernel finden:

vi /boot/grub/menu.lst

# Modified by YaST2. Last modification on Wed Nov 15 14:37:56 CET 2006

color white/blue black/light-gray
default 0
timeout 8

title SUSE Linux 10.1 - 2.6.18.2
    root (hd0,0)
    kernel /vmlinuz-2.6.18.2-default root=/dev/sda3 vga=0x314    resume=/dev/sda2  splash=silent showopts
    initrd /initrd-2.6.18.2-default

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux 10.1
    root (hd0,0)
    kernel /vmlinuz root=/dev/sda3 vga=0x314    resume=/dev/sda2  splash=silent showopts
    initrd /initrd

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
    chainloader (fd0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE Linux 10.1
    root (hd0,0)
    kernel /vmlinuz root=/dev/sda3 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /initrd

(Anstatt YaST zu verwenden um GRUB zu konfigurieren, hättest Du auch

title SUSE Linux 10.1 - 2.6.18.2
    root (hd0,0)
    kernel /vmlinuz-2.6.18.2-default root=/dev/sda3 vga=0x314    resume=/dev/sda2  splash=silent showopts
    initrd /initrd-2.6.18.2-default

als erste Kernel Zeile /boot/grub/menu.lst hinzufügen können, mit Hilfe eines Kommandozeilen-Editors wie vi, joe, nano, etc. Um Angaben über den richtigen Kernel und die Ramdisk in Erfahrung zu bringen, hättest Du Folgendes ausführen können

ls -l /boot

)

Starte das System nun neu:

shutdown -r now

Wenn alles klappt, sollte mit dem neuen Kernel gestartet werden. Du kannst überprüfen, ob wirklich Dein neuer Kernel verwendet wird, indem Du Folgendes ausführst

uname -r

Dies sollte etwas in der Art anzeigen

2.6.18.2-default

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

Nun kannst Du erneut versuchen, einen funktionstüchtigen Kernel zu kompilieren. Vergiss nicht die Zeile Deines nicht funktionierenden Kernels aus /boot/grub/menu.lst zu entfernen.

9 Links

Das könnte dich auch interessieren …