Einen neuen Kernel installieren Als erstes sollte man Überprüfen mit welcher Version man bereits arbeitet und wenn ein wechsel nicht wirklich nötig ist oder reinen Testzwecken dient sollte man den Kernel nicht tauschen. Die Version kann man mit uname -a überprüfen. Nachdem man sich entschieden hat einen neuen Kernel zu installieren / ausprobieren, sollte man die alte Konfiguration zur Sicherheit speichern. Dies kann man folgendermassen tun:
zcat /proc/config.gz > ./root/config.old Wenn dies nicht der Fall sein sollte ist die .config meistens in /usr/src/linux-version/.config und diese muss dann kopiert werden. So nun sind die Konfigurationen gesichert und die Entscheidung ist gefallen, also muss der neue Kernel heruntergeladen werden. Im Beispiel wird alles mit der Distribution Debian gezeigt. Die Kernel Quellen sind auf www.kernel.org oder einer anderen zuverlässigen Quelle. Nachdem man das Kernel-Paket gesaugt hat, muss man es entpacken. Am besten alles als root. Entweder mit bzip2: tar xjvf linux-2.6.22.tar.bz2 oder mit gzip: tar xzvf linux-2.6.22.tar.gz Dabei entsteht ein neues Verzeichnis im aktuellen Verzeichnis, linux-2.6.22. Das Kopiert man in /usr/src/ also cp linux-2.6.22 /usr/src/ Nun in das /usr/src Verzeichnis wechseln. Viele Programme brauchen die Kernelquellen und erwarten diese in /usr/src/linux. Also macht man sinnvollerweise einen symbolischen link auf /usr/src/linux-2.6.22 root@debian:/usr/src/# ln -s linux-2.6.22 linux Jetzt, bevor man weiter macht wird erst der alte Kernel gesichert und zwar mit: cp -a /boot/vmlinuz /boot/vmlinuz.old cp -a /boot/initrd.img /boot/initrd.old Danach kommen die neuen Eintraege in die /etc/lilo.conf oder /boot/grub/menu.lst LILO label = linux image = /boot/vmlinuz initrd = /boot/initrd.img
label = OLD image = /boot/vmlinuz.old initrd = /boot/initrd.old
Danach muss die LILO mit lilo -v aufgerufen werden. GRUB title GNU/Linux.OLD root (hd0,0) kernel /boot/vmlinuz.old root=/dev/hda1 initrd /boot/initrd.old
title GNU/Linux root (hd0,0) kernel /boot/vmlinuz root=/dev/hda1 initrd /boot/initrd.img
Der Bootloader GRUB benötigt keinen Extra Aufruf. Nun kann man in das Verzeichnis /usr/src/linux wechseln und die Konfiguration starten. Entweder man startet mit make menuconfig oder make xconfig (grafisch / dazu muss XServer laufen). Eine andere Methode ist make oldconfig oder make config, dies sind aber absolute Notfälle wenn die ersten beiden nicht funktionieren. Wenn die Konfiguration gestartet ist gibt es zu fast jedem Punkt kleine Hinweise, wie If you unsure say yes. Also immer jeden Punkt lesen auch wenn es mühsam ist. Die Konfiguration sollte man auf jedenfall speichern. Danach kommen folgende Befehle: root@debian:/usr/src/linux/# make clean root@debian:/usr/src/linux/# make -s dep bzlilo modules modules_install (diesen nur wenn man LILO benutzt) -s = gibt nur Warnungen und Fehler wieder bzlilo = richtet den neuen Kernel gleich unter /vmlinuz ein und kopiert den alten nach /vmlinuz.old modules = kompiliert die Module modules_install = installiert sie in /lib/modules/2.6.22/ Bei GRUB als Bootmanager: Hier sieht der Befehl etwas anders aus: Zu allererst bleibt man im Verzeichnis /usr/src/linux. Danach kommen folgende Befehle: root@debian:/usr/src/linux/# make dep clean bzImage root@debian:/usr/src/linux/# cp /boot/vmlinuz /boot/vmlinuz.old root@debian:/usr/src/linux/# cp arch/i386/boot/bzImage /boot/vmlinuz root@debian:/usr/src/linux/# make modules_install root@debian:/usr/src/linux/# make clean Fertig! Bei Bedarf übrigens LILO oder GRUB noch anpassen, wobei ich eher GRUB empfehlen würde. Hinweis Speziell für Debian: Wir laden uns die Kernelquellen herunter und entpacken sie unter /usr/src (zum entpacken ist bzip2 notwendig, dieses kann mit aptitude install bzip2 installiert werden) Danach wechseln wir nun in das neue Verzeichnis mit cd /usr/src/linux2.6.22 anschließend machen wir ein make menuconfig bzw. make oldconfig. Damit haben wir den Kernel konfiguriert. Wenn menuconfig nicht geht, sollte man libncurses5-dev installieren. Anschließend installieren wir uns das Paket kernel-package. Das kompiliert den Kernel und macht ein Debian-Paket draus. Das geht folgendermassen: make-kpkg kernel_image --revision=dri.0 Der Kernel hat noch eine Revisions-Number bekommen, damit man ihn nachdem wir ihn kompiliert haben wieder entfernen können. Anschließend mit dpkg -i 2622linux.deb installieren und bevor wir rebooten in grub /boot/menu.lst einen Booteintrag für den neuen Kernel hinzufügen. Zum Schluss noch ein paar Hinweise: Es müssen folgende Pakete installiert sein gcc, make und make_kpkg.
|