Kernel update bei SuSE

Benötigte Software Programme

gcc
qt3 libs

Denn aktuellen Kernel downloaden von www.kernel.org
“http://www.eu.kernel.org/pub/linux/kernel/v2.6/?C=M;O=D” bzw.
“http://130.239.17.4/pub/linux/kernel/v2.6/?C=M;O=D” oder
“http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.gz”

Dann in /usr/src entpacken und und das entpacke Verzeichnis wechseln.
“tar -xvzf /usr/src/linux-2.6.22.tar.gz”
“cd /usr/src/linux-2.6.22”

jetzt die Menükonfiguration aufrufen.
“zcat /proc/config.gz > .config” = original Suse Kernel Konfig
Ab SuSE 11.2 wird qt3-devel nicht mehr angeboten. Lösung: qt3-devel manuel runterladen und installieren
“wget http://download.opensuse.org/factory/repo/oss/suse/i586/qt3-devel-3.3.8b-95.2.i586.rpm” “rpm -iv –nodeps qt3-devel-3.3.8b-101.2.i586.rpm”
Bei SLES 11 SP1 muss zusätzlich das SLES 11 SDK (qt3-devel) implementiert werden.
Bei openSuSE 12 “libqt4-devel” via Yast installieren.
“make xconfig” sofern man keine spezifischen Änderungen machen will
alles default lassen und einfach auf speichern drücken. Jetzt ist eine Datei Namens “.config”
aufgetaucht, in der stehen alle Kernel Kompilierungsinformationen. Eventuell kann auch noch
eine ältere “.config” Datei aus einer anderen Kernel Version geladen werden, damit man nicht alles
neu auswählen muss. immer zweimal alle Punkte durchgehen, damit eventelle Abhängikeiten erkannt werden. Von unten Anfangen.
ab SuSE 11.0 ist die Kernel Einstellung “PAE” (mehr als 4 GB RAM bei 32 Bit[36BIT])
Es darf auf keinen Fall ein Leerzeichen bei “CONFIG_LOCALVERSION=”bit-devil-3.9” stehn.

Wichtig ist das SECURITY_CAPABILITIES mitkompiliert wird (benötigt von bind, IPsec und ClamAV).
Aber nur als Modul und nicht direkt in den Kernel, da bei ClamAv das dazuko.ko Modul sonst nicht
implemendiert werden kann. Desweiteren sollten alle Security Features kompiliert werden (iptables/netfilter
und Crypto Zeugs, FS`s,Quota usw.). Für genau Information siehe die “.config” Datei.
Auf keine Fall ACPI kompilieren. Das macht nur Fehler.
Un “CONFIG_NETFILTER_DEBUG=n” nur als Modul oder besser gar nicht kompilieren, das gibt zuviel Log Output.
“Module signature verification (MODULE_SIG) abschalten bzw. auf keinen Fall kompilieren.

Die Module können beim Start automatisch eingebunden werden. “vi /etc/sysconfig/kernel” und dann
in der Zeile “MODULES_LOADED_ON_BOOT=”dazuko capability”” die einzelnen Module eintragen.
Leider ist ab SuSE 10.3 (~2.6.23.14) das “capability” nicht mehr als Modul verfügbar.

Nun den Kernel compilieren. Mit dem Befehl werden auch gleichzeitig die Module installiert.
Da das Kompilieren des Kernels mitunter mehrer Stunden dauern kann, sollte das kompilieren in
einem “screen” geschehen. Damit man sich jederzeit auslogen (“strg+a+d”) bzw. einlogen(“screen -r”) kann.
“ntpdate pool.ntp.org” damit die System Zeit zu erstell Datum der Dateien passt.
“time make dep clean bzImage modules modules_install”. Dauert bei einer Intel Dual Core 2 GHZ (Papa`s PC), 64 Bit,
2 GB Ram und Sata2 Platten mit Software Raid, Maschine ca. 30-40 Minuten.
Bei einem Pentium 2 (Filehunter), 300 Mhz, 500 MB Ram, IDE Platten, ca. 6 Stunden.
Auf einem Laptop (RTS) mit einem Celeron 1.2 GHZ CPU und 768 MB Ram. dauer ca. 45 Minuten.
Bei PI(MMX) 225 MHZ 168 MB RAM (Sniffer) ca. 11 – 12 Stunden

Dann das Kernel boot Image nach “/boot” kopieren sowie die System Map.
“cp -fv vmlinux /boot/vmlinux-2.6.22”
“cp -fv System.map /boot”

Linux Link erstellen.
“rm -fv ../linux”
“ln -s /usr/src/linux-2.6.22 ../linux”

Daraufhin das init Ram Disk Image im /boot Verzeichnis installieren.
“cd /boot”
“mkinitrd -k vmlinux-2.6.22 -i initrd-2.6.22″(Achtung ab openSuse 12.2 [grub2] wird nach jedem mkinitrd die grub.cfg neu geschrieben.)
“lsinitrd /boot/initrd-3.17.4” Zeigt die einkonfiguierten Module an.
eventuel unter “ls -al /lib/modules/” nachschauen und den richtigen Pfad beim ersten Parameter angeben
Sollten, wiedererwarten, Warnungen auftauchen, das die Abhängigkeit einiger Module nicht korrekt
determiniert wurde, so sollte “depmod -a” nun ausgeführt werden.
Eventuell nochmal unter “vi /etc/sysconfig/kernel” schauen und unter “INITRD_MODULES=” die Module anpassen.

Jetzt das Kernel bzImage ins /boot kopieren.
“cp -fv /usr/src/linux-2.6.22/arch/i386/boot/bzImage /boot/bzImage-2.6.22”
Achtung auf die CPU Architektur (arch) achten. Bei z.B. Intel/AMD 64 Bit Systemen
liegt das bzImage unter “cp /usr/src/linux-2.6.22/arch/x86_64/boot/bzImage /boot/bzImage-2.6.22”

Der Grub boot manager muss nun neu konfiguiert werden.
ab openSuse 12.2
“cp -frv /boot/grub2/grub.cfg /boot/grub2/grub.cfg.org”
“vi /boot/grub2/grub.cfg” ->
Alle zwei ” set default=”0″ ”

### BEGIN /etc/grub.d/10_linux ###
menuentry ‘openSUSE Kernel 3.5.4’ –class opensuse –class gnu-linux –class gnu –class os $menuentry_id_option ‘gnulinux-simple-4b17e89b-f196-4411-a48c-d7cd8443ea8d’ {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
insmod lvm
set root=’hd0,msdos1′
if [ x$feature_platform_search_hint = xy ]; then
search –no-floppy –fs-uuid –set=root –hint-bios=hd0,msdos1 –hint-efi=hd0,msdos1 –hint-baremetal=ahci0,msdos1 –hint=’hd0,msdos1′  e5731c73-78d1-4be9-ab58-efe853421f7e
else
search –no-floppy –fs-uuid –set=root e5731c73-78d1-4be9-ab58-efe853421f7e
fi
echo    ‘Loading Linux 3.4.6-2.10-desktop …’
linux   /boot/bzImage-3.5.4   resume=/dev/sda3 vga=normal init=/sbin/sysvinit highres=off showopts
echo    ‘Loading initial ramdisk …’
initrd  /boot/initrd-3.5.4
}

Pre openSuse 12.2
“vi /boot/grub/menu.lst”
Und entsprechend der Kernelversion anpassen. Hier eine Beispiel im Grub Menü:

###Don’t change this comment – YaST2 identifier: Original name: linux-2.6.22###
title openSUSE 10.2 Kernel 2.6.22
root (hd0,0)
kernel /boot/bzImage-2.6.22 root=/dev/hda2 vga=0x332    resume=/dev/hda1 vga=normal showopts
initrd /boot/initrd-2.6.22

Und zum Schluss das System neu booten.
“reboot; exit;”

######################################################################################################################################################################################################################################################################################################
Für OpenSUSE 13.2 und höher

make mrproper
make distclean
zcat /proc/config.gz > .config
make xconfig
# make oldconfig 2>&1 | tee ../make_oldconfig-$(date –iso-8601).log
# make menuconfig
make modules_prepare
make -j4 2>&1 | tee ../make_kernel-$(date –iso-8601).log
make kernelrelease
make INSTALL_FW_PATH=/lib/firmware/3.17.7-1-new modules_install
cp arch/x86/boot/bzImage /boot/vmlinuz-3.17.7-1-new
cp System.map /boot/System.map-3.17.7-1-new
cp .config /boot/config-3.17.7-1-new
cd /boot
mkinitrd -k vmlinuz-3.17.7-1-new -i initrd-3.17.7-1-new
grub2-mkconfig –output=/boot/grub2/grub.cfg

####################################################################################################################################################################################################################################################################################################

Zeiten:
RTS = 6h (reboot 20min) )
Imperator = 5h
Remote = 1,5 h
VMware auf Bit-Devil = 1,5 h
Lap-Bit = 5,5 h

Post Revisions: