Kernel Upgrade von 2.4 auf 2.6

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
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:

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.*
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
'Persönliche Werkzeuge