Kernel Upgrade von 2.4 auf 2.6
Aus Gentoo Linux Wiki
| Installationsmethoden • LiveCDs • Kernel & Hardware • Laptops & Notebooks • Portage • System • Netzwerke & Services • X • Software • Anderes • alphabetischer HOWTO Index |
Dieser Artikel beschreibt die Aktualisierung eines Gentoo Systems mit einem 2.4 Kernel auf einen 2.6 Kernel. Als Vorlage diente The complete Gentoo Linux 2.6 migration guide.
Inhaltsverzeichnis |
[Bearbeiten] Motivation
Warum sollte man sein System mit einem 2.4 Kernel aktualisieren, wenn doch alles so wunderbar funktioniert? Ein paar Gründe wären:
- Verbesserung von Scheduler/Interaktivität: Linux fühlt sich weicher auf dem Desktop an und verhält sich besser unter Last
- Skalierbarkeit: Linux skaliert jetzt besser auf kleinen embedded devices als auch auf Systemen mit mehreren Prozessoren
- Performance: Durchsatz von Standardanwendungen wurde verbessert
- Hardware Unterstützung: Linux unterstützt jetzt mehr Architekturen und Hardware-Geräte.
[Bearbeiten] Vorbereitung
[Bearbeiten] Gentoo-Profil aktualisieren
Das Gentoo-Profil wird in /etc/make.profile beschrieben, welches ein Sym-Link auf /usr/portage/profiles/default-linux/x86/2006.0 oder neuer sein sollte:
rm -f /etc/make.profile
ln -snf /usr/portage/profiles/default-linux/x86/2006.0 /etc/make.profile
[Bearbeiten] System aktualisieren
Das System sollte auf einen aktuellen Stand sein, da einige 2.6 Kerneloperationen bestimmte Programme vorraussetzen. Insbesondere sollten folgende Pakete aktuell sein:
- sys-apps/baselayout
- sys-apps/util-linux
- sys-kernel/genkernel (nur, falls man genkernel benutzen will)
Das gesamte System aktualisiert man wie folgt:
emerge --sync
emerge -ua world
Einige neuere Programme benötigt ein 2.6 Kernel auch. Das erste Programm ist eine Erweiterung von sys-apps/modutils, welches Werkzeuge zum Umgang mit Kernel-Modulen wie insmod, rmmod, usw. für einen 2.4 Kernel bereitstellt. Für einen 2.6 Kernel wird nun sys-apps/module-init-tools benötigt, welches abwärtskompatibel zu sys-apps/modutils ist. Das heißt, ein 2.4 Kernel funktioniert auch mit dem neuen Paket. Wir entfernen also die alte Version:
emerge --unmerge sys-apps/modutils
und installieren die neue:
emerge module-init-tools
Jetzt müssen wir noch /sys-fs/udev installieren, welches devfs im 2.6 Kernel ersetzt:
emerge udev
Falls man noch nicht alsa benutzt, müssen noch die alsa-Pakete installiert werden:
emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss
[Bearbeiten] Installation des 2.6 Kernels
Nun sollte man seine bevorzugten Kernelquellen installieren:
emerge -a vanilla-sources
oder
emerge -a gentoo-sources
Nun müssen wir den Sym-Link /usr/src/linux anpassen:
cd /usr/src
rm -f linux
ln -sfn linux-2.6.15.1 linux
Nun konfigurieren wir den neuen Kernel mit:
cd /usr/src/linux
make menuconfig
Danach kompilieren wir das ganze:
make && make modules_install
Für eine ausführliche Beschreibung der Konfiguration des Kernels, siehe Kernel manuell kompilieren.
Jetzt kopieren wir den neuen Kernel nach /boot:
cp arch/i386/boot/bzImage /boot/kernel-2.6.15.1
und passen den Bootloader entsprechend an.
Natürlich müssen noch alle externen Kernelmodule neu gebaut werden, zum Beispiel:
emerge nvidia-kernel
Diese tragen wir für automatische Laden noch in /etc/modules.autoload.d/kernel-2.6 ein:
| Datei: /etc/modules.autoload.d/kernel-2.6 |
# /etc/modules.autoload.d/kernel-2.6: kernel modules to load when system boots. # # Note that this file is for 2.6 kernels. # # Add the names of modules that you'd like to load when the system # starts into this file, one per line. Comments begin with # and # are ignored. Read man modules.autoload for additional details. nvidia |
Wenn man nun neustarten will sollte man noch kurz die Datei /etc/X11/xorg.conf anpassen, da mit dem 2.6 Kernel die Maus ein andere Standard-Geräte-Datei bekommt: beim entsprechenden Eintrag "/dev/mice" zu "/dev/input/mice" abändern. Bei mir hat es aber auch mit dem alten "/dev/psaux" funktioniert.
[Bearbeiten] Nach dem Neustart
Nach erfolgreichem Neustart sollten die Linux-Header-Dateien aktualisiert werden:
emerge -u linux-headers
Nun sollte und muß sys-libs/glibc mit den neuen Linux-Header-Dateien kompiliert werden. Dabei kann man dann auch gleich NPTL in /etc/make.conf aktivieren, welches erst ab Kernel 2.6 unterstützt wird und ein schnelleres Thread-Managment verspricht:
| Datei: /etc/make.conf |
USE="... nptl" |
Jetzt noch sys-libs/glibc neu kompilieren, auch wenn man nicht das "nptl"-Flag benutzt:
emerge -u glibc
und falls man will, noch das System mit den neuen Use-Flags kompilieren:
emerge --newuse world
oder gleich das ganze System mit:
emerge -e world
[Bearbeiten] Entfernen der alten 2.4 Kernel Dateien und Programme
Falls man zufrieden mit dem neuen Kernel ist, kann man nun alle 2.4 Kernel Dateien und Programme entfernen:
- Zuerst mal die alten Kernelquellen unter /usr/src entfernen:
- Anzeige der vorhandenen Kernelquellen mittels
- cd /usr/src
- ls
- nun kann man alle angezeigten 2.4 Versionen löschen mittels:
- rm -r linux-2.4.*
- Damit hätten wir nun rund 250 MB pro Version zurückgewonnen
- Dann können wir auch die 2.4 Kernel-Sources-Distfiles in /usr/portage/distfiles löschen:
- cd /usr/portage/distfiles
- ls linux*
- wir löschen alle angezeigten 2.4 Versionen mittels:
- rm linux-2.4.*
- Das bringt rund 30 MB pro Version
- auch die 2.4 Kernel-Binaries in /boot können weg:
- cd /boot
- rm kernel-2.4.* (bitte der eigenen Installation anpassen)
- Dann müssen wir natürlich auch beim Bootloader die entsprechenden Abschnitte streichen.
- Da nun die 2.4 Kernel weg sind, kann man bestimmt auch auf die 2.4 Kernel-Module verzichten:
- cd /lib/modules
- rm -r 2.4.*
- Falls man den ALSA-Soundkarten-Treiber im Kernel benutzt, kann man nun media-sound/alsa-driver deinstallieren:
- emerge --unmerge alsa-driver
- Wenn man keinen 2.4 Kernel mehr starten will, kann man auch sys-fs/devfsd deinstallieren, das ja durch sys-fs/udev ersetzt wurde:
- emerge --unmerge devfsd
