Gentoo Logo

Der komplette Gentoo Linux 2.6 Migrationsleitfaden

Inhalt:

1.  Einführung

Was gibt es neues mit Linux 2.6?

Das ist keine einfach zu beantwortende Frage. Linux 2.6 ist das Ergebnis einer über zwei Jahre langen, intensiven Entwicklung und Stabilisierung neuer Funktionen und ist in der Architektur sehr unterschiedlich von seinem 2.4 Gegenstück. Einige der wichtigsten Änderungen sind unten aufgelistet:

  • Planer-/Interaktivitätsverbesserungen: Linux fühlt sich sehr glatt auf Desktopsystemen an und meistert Volllast viel besser als 2.4
  • Skalierbarkeit: Linux skaliert jetzt auf beiden Seiten viel besser - auf kleinen eingebetteten Geräten und auch auf Systemen mit vielen Prozessoren.
  • Leistung: Der Durchsatz von verbreiteten Anwendungen wurde stark verbessert
  • Hardwareunterstützung: Linux unterstützt jetzt viel mehr Architekturen und Hardwaregeräte "von Haus aus" als jedes andere Betriebssystem.

Joseph Pranevich hat ein sehr detailliertes Dokument geschrieben, The Wonderful World Of Linux 2.6, das Sie vielleicht überfliegen möchten. Wenn Sie an technischeren Details interessiert sind, können Sie sich auf The post-halloween document beziehen - aber bedenken Sie, dass es mittlerweile etwas überholt ist.

Gentoo und 2.6

Mit der Version 2005.0 von Gentoo Linux ist der neuste der 2.6 Kernelserie der Standardkernel. Das Standardprofil des Systems wird /etc/make.profile entnommen. Ab 2005.0 und höher ist dies ein Symlink nach /usr/portage/profiles/default-linux/x86/2005.0, wo verschiedenen wichtigen Einstellungen Sorge getragen wird.

Wenn Sie ein 2.4 Profil benutzen, ändern Sie dies bitte auf eines, das einen 2.6 Kernel unterstützt, indem Sie folgendes tun.

Befehlsauflistung 1.1: Wechseln Ihres Profils

# rm -f /etc/make.profile
# ln -snf /usr/portage/profiles/default-linux/x86/2005.1 /etc/make.profile

Was ist udev?

In der Vergangenheit hat Gentoo die Benutzer angewiesen devfs zur Verwaltung des /dev Verzeichnisses, welches eine Reihe von Geräteschnittstellen zur Kommunikation mit der Hardware (durch den Kernel) beinhaltet, zu benutzen.

Obwohl devfs ein gutes Konzept ist, hat es einige interne Probleme und wurde seit 2.6.13 vom stabilen Hauptbaum komplett entfernt.

udev ist der neue Weg Geräteknoten zu verwalten. Es geht Probleme des vorherigen Gerätemanagers an und versucht zudem einige andere Probleme zu lösen.

Das Vorangegangene mag Ihnen nicht viel sagen, aber haben Sie keine Angst, die hart arbeitenden Gentoo-Entwickler haben versucht die Migration von devfs sehr einfach zu machen. Bitte lesen Sie den Gentoo udev Leitfaden für weitere Informationen zu diesem Thema.

Was ist ALSA?

Mit Linux 2.4 benutzen Sie wahrscheinlich OSS (Open Sound System) Treiber, um Ihre Soundkarte zu betreiben. OSS wurde durch einen neueren und besseren Satz von Soundtreibern ersetzt: ALSA.

ALSA, die Advanced Linux Sound Architecture, ist ein neuer Satz von Soundtreibern mit neuer und verbesserter API, der im Linux 2.6 Kernel vorhanden ist. Es ist abwärtskompatibel mit OSS-Anwendungen, sofern Sie die richtigen Kernel-Konfigurationsoptionen ausgewählt haben!

Notiz: Wenn Sie keine Sound/Audio-Hardware haben, können Sie beruhigt alle ALSA-bezogenen Anweisungen in diesem Dokument überspringen.

Was ist LVM?

Logical Volume Management (LVM) existiert als ein Satz von Werkzeugen, die es Ihnen erlauben Ihren Festplattenspeicher in einer flexiblen Weise zu verwalten. Neben anderen Dingen erlaubt es mächtige Kontrolle über Partitionen (z.B. Größe verändern ohne Neustart) und macht Arbeiten wie Geräteänderungen relativ einfach. LVM kann sich als eine Alternative zu standardmäßigen partitionsbasierten Festplattenverwaltungen verhalten.

LVM-Unterstützung wurde ursprünglich in Linux 2.4 implementiert. Linux 2.6 unterstützt eine neue Version von LVM, genannt LVM2. Der Migrationsprozess verlangt von Ihnen neue Versionen der Werkzeuge auf Benutzerebene zu installieren (später in diesem Dokument beschrieben), aber lässt Ihre Daten intakt!

Wenn Sie momentan LVM nicht zum Datenspeichermanagement benutzen, dann betrifft Sie die LVM2-Migration nicht. Wenn dies der Fall ist, können Sie beruhigt alle Teile dieses Dokuments, die sich auf LVM/LVM2 beziehen, ignorieren. Die Aktualisierung auf Linux 2.6 verlangt von Ihnen nicht, dass Sie Ihre Daten auf einer LVM-Partition speichern - Sie können Ihre Daten auf dem Standard-Partitionsformat behalten, auf dem sie immer waren.

Wenn Sie kein LVM-Anwender sind, aber denken, dass sich LVM2 für Sie nützlich anhört, können Sie Ihre Festplatten zu einem späteren Zeitpunkt auf dieses Format konvertieren, indem Sie dem Gentoo LVM2 Installationsleitfaden folgen. Fürs Erste sollten wir uns darauf konzentrieren eine reibungslose 2.6 Migration auf den Weg zu bringen.

2.  Vorbereitung

Bringen Sie Ihr System auf den neusten Stand

Einige der Änderungen die Linux 2.6 mitbringt, benötigen einige Änderungen an den Basis-Systemanwendungen. Bevor Sie weitermachen, sollen Sie sicherstellen, dass Ihr System relativ auf dem neuesten Stand ist und, um absolut sicher zu sein, sollten Sie alle world und system Pakete aktualisieren, wenn Aktualisierungen vorhanden sind.

Besonders sollten Sie sicherstellen, dass Sie die neuste stabile Version der folgenden Pakete haben:

  • sys-apps/baselayout
  • sys-apps/util-linux
  • sys-kernel/genkernel (nur wenn Sie genkernel statt der manuellen Konfiguration benutzen wollen)

Befehlsauflistung 2.1: Alle world Pakete aktualisieren

# emerge --sync
# emerge -ua world

modutils vs module-init-tools

sys-apps/modutils ist das Paket, das alle Werkzeuge wie modprobe, rmmod und insmod für Linux 2.4 bereitstellt.

Linux 2.6 führt ein neues Modulformat ein und benötigt daher neue Werkzeuge um Module zu handhaben. Diese sind im Paket sys-apps/module-init-tools zusammengefasst.

Sie sollten jetzt modutils entfernen und module-init-tools installieren:

Befehlsauflistung 2.2: Von modutils zu module-init-tools wechseln

# emerge --unmerge sys-apps/modutils
# emerge module-init-tools

Notiz: Keine Sorge - auch wenn Sie gerade modutils unmerged haben, module-init-tools stellt Abwärtskompatiblität für Linux 2.4 zur Verfügung, also sind Sie immernoch in der Lage Linux 2.4 zu booten und Module für diesen Kernel zu handhaben.

Notiz: Aus den oben genannten Gründen könnte module-init-tools bereits auf Ihrem System installiert sein und mit Ihrem vorhandenen Linux 2.4 Kernel arbeiten. In diesem Fall müssen Sie sich keine Gedanken um diese Phase zu machen - Ihr System ist schon bereit mit Linux 2.6 Modulen umzugehen.

udev installieren

Hier ist keine Konfiguration einbezogen. Benutzen Sie einfach emerge um udev zu installieren:

Befehlsauflistung 2.3: udev installieren

# emerge -a udev

Sie sollten jetzt den Gentoo udev Leitfaden lesen, um eine bessere Vorstellung der Unterschiede zwischen udev und devfs zu bekommen.

Auf wesentliche Geräteknoten überprüfen

Wenn das System hochfährt, benötigt das System einige wesentliche Geräteknoten. Da udev nicht in den Kernel integriert ist, wird es nicht sofort aktiviert. Um dieses zu umgehen, müssen Sie sicherstellen, dass sich einige wesentliche Geräteknoten auf Ihrem System befinden.

Unsere Installations-Stagedateien hätten die benötigten Geräte während der ersten Installation angelegt. Allerdings haben einige Benutzer berichtet, dass dies nicht der Fall ist. Wir nutzen diese Gelegenheit um zu prüfen ob die Gerätedateien existieren und sie anlegen, falls sie es nicht tun.

Da Ihr vorhandener Gerätemanager nach /dev gemountet wird, können wir nicht direkt auf ihn zugreifen. Also werden wir Ihre Root-Partition an eine andere Stelle bind-mounten und von dort auf das /dev Verzeichnis zugreifen.

Befehlsauflistung 2.4: Bind-mounten Ihrer Root-Partition und auflistung der statischen Geräte

# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null

Wenn der vorherige ls Befehl ausgibt, dass entweder console oder null nicht existieren, dann müssen Sie sie selbst, wie unten gezeigt, anlegen.

Befehlsauflistung 2.5: Anlegen der fehlenden console und null Knoten

# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3

Sie sollten jetzt Ihre bind-gemountete Root-Partition unmounten, auch wenn Sie die Geräte nicht anlegen mussten:

Befehlsauflistung 2.6: Unmounten des bind-gemounteten Root

# cd
# umount /mnt/temp
# rmdir /mnt/temp

ALSA-Hilfsmittel installieren

ALSA verlangt, dass Sie einige Pakete installiert haben, so dass Anwendungen die ALSA-API benutzen können. Diese Pakete erlauben es Ihnen ebenso den Mixer und die Lautstärke zu kontrollieren. Installieren Sie die benötigten Hilfsmittel wie folgt:

Befehlsauflistung 2.7: ALSA-Hilfsmittel und Bibliotheken installieren

# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss

3.  Installation der Linux 2.6 Quellen

Einen Kernel auswählen und installieren

Die erste Sache, die Sie tun müssen ist die Installation der Quellen eines 2.6 Kernels Ihrer Wahl. Die zwei 2.6 Kernel mit Gentoo-Unterstützung sind momentan gentoo-sources (für Desktops) und hardened-sources (für Server). Es sind andere verfügbar, schauen Sie sich den Gentoo Linux Kernel Leitfaden für weitere Auswahlmöglichkeiten an.

In diesem Leitfaden werden wir die gentoo-sources als ein Beispiel benutzen. Installieren Sie Ihren ausgewählten Satz an Kernelquellen mit dem emerge Befehl:

Befehlsauflistung 3.1: gentoo-sources installieren

# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild  NS   ] sys-kernel/gentoo-sources-2.6.10-r4

Do you want me to merge these packages? [Yes/No] y

Wenn Sie den obigen emerge Befehl ausführen und Sie feststellen, dass es Ihnen eine 2.4 Version der gentoo-sources (z.B. gentoo-sources-2.4.26) installieren möchte, dann heisst das, dass das von Ihnen benutzte Profil nicht für Linux 2.6 Benutzer entworfen wurde. Bitte folgen Sie dem Gentoo Upgrade Leitfaden, um auf ein 2.6-basiertes Profil zu wechseln und versuchen Sie dann erneut eine 2.6 Kernelquelle zu installieren.

Aktualisieren des symbolischen Links /usr/src/linux

Verschiedene Komponenten der Gentoo-Hilfsmittel sind darauf angewiesen, dass /usr/src/linux ein symbolischer Link zu den Kernelquellen ist, den Sie benutzen (oder gegen den Sie kompilieren möchten).

Wir werden jetzt unseren /usr/src/linux Link aktualisieren, um ihn auf die gerade installieren Kernelquellen zeigen zu lassen. Weiter mit unserem Beispiel:

Befehlsauflistung 3.2: Aktualisieren des /usr/src/linux Softlinks

# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux

4.  Bekannte Fallen bei der Linux 2.6 Migration

Bevor wir bei der Kernelkonfiguration hängen bleiben, werde ich versuchen detailliert auf die üblichsten Fehler einzugehen, die Leute bei der Migration auf Linux 2.6 machen, da einige dieser Punkte die Konfiguration des neuen Kernels beeinflussen werden.

Notiz: Nicht alle dieser Punkte sind zu diesem Zeitpunkt relevant, aber ich möchte sie hier alle an einer Stelle aufführen, damit Sie sich später bequem darauf beziehen können.

Benutzen Sie nicht "make oldconfig" mit einer 2.4 .config

Notiz: Wenn Sie nicht verstehen was das bedeutet, machen Sie sich keine Sorgen, Sie werden diesen Fehler nicht machen, wenn Sie dem Rest dieses Leitfadens korrekt folgen.

Ihnen werden viele, viele Fragen gestellt, da es eine große Menge an Änderungen gab. Viele Leute die ein make oldconfig von einer 2.4 Konfiguration aus versuchen, enden mit einem nicht funktionierendem Kernel (z.B. keine Ausgabe auf den Bildschirm, keine Eingabemöglichkeit per Tastatur). Bitte ersparen Sie sich selbst den Ärger und benutzen die herkömmliche menuconfig Konfigurationsmethode nur dieses eine mal.

Benutzen Sie nicht ide-scsi zum Schreiben von CDs/DVDs

Mit Linux 2.4 war der einzige Weg gute Ergebnisse beim Schreiben von CDs/DVDs zu erreichen die (ziemlich hässliche) ide-scsi Emulation zu aktivieren. Glücklicherweise wurde der IDE-Layer in Linux 2.6 erweitert, um CD/DVD-Brenner deutlich besser zu unterstützen.

Sie müssen keine zusätzlichen Optionen aktivieren, um CD-Brennen zu unterstützen. Stelle Sie nur sicher ide-scsi nicht auszuwählen, wie Sie es bisher gewohnt waren.

PC-Speaker ist jetzt eine konfigurierbare Option

Sie werden Ihre gewohnten Konsolen-Piepser nicht erhalten (oder jede andere Rückmeldung der PC-Speaker überhaupt), sofern Sie nicht explizit die PC-Speaker Option aktivieren (CONFIG_INPUT_PCSPKR):

Befehlsauflistung 4.1: Standort der PC-Speaker-Option

Device Drivers  --->
 Input device support  --->
  [*] Misc
   <*>   PC Speaker support

Notiz: Mit "PC-Speaker" beziehe ich mich auf die analogen Lautsprecher die einmal piepen wenn Ihr System hochfährt, ich beziehe mich nicht auf die normale Sound-Hardware die zum Abspielen von Musik usw. benutzt wird.

Neue USB-Speichergerätetreiber sind manchmal problematisch

Kürzlich wurde ein neuer USB-Speichergerätetreiber zum normalen Kernel hinzugefügt. Zum Zeitpunkt des Schreibens ist dieser Treiber ("ub") noch in einer frühen Phase und manche Anwender finden ihn unzuverlässig. Wenn Sie Probleme haben auf Ihre USB-Festplatte, Ihren USB-Flashspeicher, Ihr USB-Kartenlesegerät oder Ihre USB-Digitalkamera zuzugreifen, dann sollten Sie versuchen zum älteren SCSI-Stil-Treiber zurückzukehren:

Befehlsauflistung 4.2: ub deaktivieren

Device Drivers  --->
 Block devices  --->
  < > Low Performance USB Block driver

Notiz: Der ältere SCSI-Stil-Treiber (USB Mass Storage support) wird standardmäßig aktiviert. Er kann unter "Device Drivers --> USB support" gefunden werden, kommt aber normalerweise nicht zum Tragen, während ub auch vorhanden ist.

usbdevfs wird zu usbfs umgenannt

Wenn Sie Ihre /etc/fstab Datei editiert haben, um den Weg anzupassen wie das Dateisystem der USB-Geräte gemountet wird, dann müssen sie vielleicht den Dateisystemtyp von usbdevfs nach usbfs ändern.

Notiz: Aktuelle 2.4 Kernel erlauben es Ihnen "usbfs" genauso wie auch "usbdevfs" zu verwenden, so brechen Sie keine Abwärtskompatiblität, wenn Sie dies machen.

Renicen Sie X nicht

Wenn Sie ein 2.4 Desktopbenutzer sind, könnten Sie Ihr System gehackt haben, um X mit einer höheren Priorität laufen zu lassen, da dies anscheinend in manchen Fällen eine bessere Desktopleistung geboten hat.

In 2.6 gab es viele Veränderungen am Scheduler, die dieses Verhalten verändern. Wenn Sie weiterhin X mit einer höheren Prioritöt laufen lassen, wird es sich genauso verhalten, wie es sich verhalten soll (den display server mit einer sehr hohen Priorität laufen lassen) und Sie werden Konsequenzen wie Stottern des Sounds oder langsame Ladezeiten bei Anwendungen bemerken, weil Ihre CPU zu lange braucht, um X zu bedienen und zwar ausschließlich X.

Mit Linux 2.6 brauchen Sie nicht länger Ihre Desktop-Anwendungen zu renicen, um gute Interaktivität zu erreichen. Bitte entfernen Sie Ihre "niceness" Hacks!

X11-Konfigurationsdatei benutzt jetzt /dev/input/mice für PS/2 und USB-Mäuse

Eine der Änderungen, die eine Standard-udev-Konfiguration einführt, ist eine andere Konfiguration der Maus-Geräteknoten. Früher hätten Sie Knoten wie /dev/psaux und /dev/mouse gehabt. Jetzt werden Sie Knoten wie /dev/input/mouse0, /dev/input/mouse1, und einen Sammelknoten /dev/input/mice, der die Bewegungen aller Mäuse kombiniert, haben.

Da sich alte X-Konfigurationen typischerweise auf /dev/mouse oder /dev/psaux beziehen, bekommen Sie Fehler, wie den unten gezeigten, wenn Sie versuchen X11 zu starten:

Befehlsauflistung 4.3: Üblicher Fehler wenn man versucht X zum ersten Mal auf einem udev System zu starten

(EE) xf86OpenSerial: Cannot open device /dev/mouse
  No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer

Um dies zu berichtigen, öffnen Sie Ihre X11 Konfiguration in einem Texteditor und aktualisieren Sie den Maus InputDevice Abschnitt um das Gerät /dev/input/mice zu benutzen. Ein Beispiel wird unten gezeigt:

Befehlsauflistung 4.4: Öffnen Ihrer X11 Konfigurationsdatei

# nano -w /etc/X11/xorg.conf

Notiz: Wenn Sie immernoch XFree86 benutzen, ist Ihre Konfigurationsdatei /etc/X11/XF86Config

Befehlsauflistung 4.5: Beispiel Maus InputDevice Abschnitt

Section "InputDevice"
  Identifier  "Mouse0"
  Driver      "mouse"
  Option      "Protocol" "auto"
  Option      "Device" "/dev/input/mice"
EndSection

Notiz: Wenn Sie eine serielle Maus benutzen, lautet der neue Gerätepfad /dev/tts/0 statt /dev/ttyS0.

Neuer Serial-ATA (SATA) Treiber benennt die Geräte unterschiedlich

Wenn Sie die originalen Serial ATA Treiber unter Linux 2.4 benutzt haben, werden Sie wahrscheinlich bemerkt haben, dass Ihre SATA-Geräte Namen wie /dev/hde haben.

Linux 2.6 führt einen neuen SATA Treiber (libata) ein, der auf dem SCSI-Subsystem basiert. Da diese Treiber auf SCSI basieren, tauchen Ihre SATA Festplatten jetzt als SCSI-Geräte auf. Ihre erste SATA Festplatte wird /dev/sda heißen. Sie werden Ihre Datei /etc/fstab aktualisieren müssen um dies wiederzugeben und Sie müssen es bedenken, wenn Sie später den root/real_root Kernel-Bootparameter auswählen.

Notiz: libata wurde in aktuelle Linux 2.4 Versionen rückportiert, also mag Ihnen die neue Namensgebung der Geräte bereits geläufig sein.

bootsplash wird nicht mehr gewartet

Wenn Sie den Kernel gentoo-sources-2.4 benutzt haben, haben Sie vielleicht die bootsplash Funktionalität genutzt um sich mit einer farbigen Framebuffer-Konsole auszustatten.

Der Entwickler von bootsplash hat anscheinend, auf Grund einiger Designprobleme, das Interesse an seinem Projekt verloren. Allerdings entwickelt der Gentoo-Entwickler Michał Januszewski einen Nachfolger gensplash, der in dem gentoo-sources-2.6 Kernel enthalten ist. Sie können Michałs Dokument Gensplash in 5 easy steps befolgen, um sich selbst damit vertraut zu machen, wie gensplash funktioniert.

I2C-Treiber sind jetzt im Kernel enthalten

Wenn Sie lm-sensors benutzen, um die Systemtemperaturen und Spannungslevel zu überwachen, mussten Sie vorher das Paket i2c installieren, um Hardwareunterstützung zu erhalten.

Die I2C-Hardwaretreiber sind jetzt im Linux 2.6 Kernel enthalten, ein externes i2c-Paket wird nicht benötigt. Denken Sie daran, die Unterstützung für Ihre speziellen I2C-Geräte in die Kernelkonfiguration zu kompilieren. Sie sind dann in der Lage die lm-sensors wie gewohnt zu benutzen.

5.  Konfigurieren, Bauen und Installieren des Kernels

Mit Linux 2.4 hatten Sie zwei Optionen um den Bau Ihres neuen Kernels zu verwalten.

  1. Die Standardmethode ist Ihren Kernel manuell zu konfigurieren. Das mag abschreckend erscheinen, aber es ist der bevorzugte Weg solange Sie Ihr System kennen. Wenn Sie Ihren neuen Kernel manuell konfigurieren wollen, fahren Sie bitte mit dem nächsten Kapitel fort.
  2. Die Alternative ist unser Hilfsmittel genkernel zu benutzen, um einen Kernel für Sie zu konfigurieren, kompilieren und installieren. Wenn Sie genkernel benutzen möchten, überspringen Sie das nächste Kapitel und machen mit genkerneli benutzen weiter.

6.  Standard: manuelle Konfiguration

Konfiguration des Kernels

Wir werden jetzt mit der Kernelkonfiguration weitermachen. Öffnen Sie menuconfig wie gewohnt:

Befehlsauflistung 6.1: menuconfig aufrufen

# cd /usr/src/linux
# make menuconfig

Vielleicht sind Sie schon mit der Benutzung von menuconfig von der Konfiguration des 2.4 Kernels vertraut. Zum Glück hat sich die Oberfläche kaum verändert, aber Sie werden eine viel bessere Organisation der Kerneloptionen bemerken, plus vieler neuer Optionen, die in 2.4 noch nicht vorhanden waren.

Stellen Sie sicher, dass Sie folgende wichtige Kerneloptionen aktivieren:

Befehlsauflistung 6.2: Benötigte Kerneloptionen

File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(das Folgende wird für udev benötigt):
General setup  --->
 [*] Support for hot-pluggable devices

(das Folgende wird für ALSA benötigt):
Device Drivers  --->
 Sound  --->
  <*> Sound card support
  Advanced Linux Sound Architecture  --->
   <M> Advanced Linux Sound Architecture
   <M> Sequencer support
   <M> OSS Mixer API
   [*] OSS Sequencer API
   (und vergessen Sie nicht Ihre Soundkarte aus den Untermenüs
auszuwählen!!)

(das Folgende wird benötigt, wenn Sie LVM zur Festplattenverwaltung
benutzen):
Device Drivers  --->
 Multi-device support (RAID and LVM)  --->
  [*] Multiple devices driver support (RAID and LVM)
   <*>   Device mapper support

Warnung: Vorher hatten Sie vielleicht die Unterstützung für das /dev Dateisystem (jetzt als OBSOLETE markiert) integriert. Aktivieren Sie nicht die Unterstützung für devfs. Wir haben udev installiert, wir werden es ab jetzt anstelle von devfs benutzen.

Denken Sie auch daran Unterstützung für die von Ihnen verwendeten Dateisysteme zu aktivieren und für die Hardware, die in Ihrem System vorhanden ist. Stellen Sie sicher, die Unterstützung für den IDE-Kontroller auf Ihrer Hauptplatine zu aktivieren, wenn Sie von dem schnellen Festplattenzugriff per DMA zu profitieren. Beziehen Sie sich auf den Abschnitt Konfiguraton des Kernels des Gentoo Handbuchs für weiteren Rat.

Bauen des Kernels

Jetzt, da wir den Kernel konfiguriert haben, können wir den Kompilierungsprozess starten:

Befehlsauflistung 6.3: Kompilierung der Kernelquellen

# make && make modules_install

Notiz: Vielleicht erinnern Sie sich daran make dep mit Linux 2.4 Quellen gestartet zu haben. Das ist nicht mehr länger nötig.

Warten Sie bis die Kernelkompilierung fertig ist (und beachten Sie die viel lesbarere Ausgabe während der Kompilierung).

Installation des Kernels

Der nächste Schritt ist Ihre /boot Partition zu mounten und das Kernelabbild hinüberzukopieren. Sie müssen die Konfiguration Ihres Bootloaders manuell vornehmen.

Befehlsauflistung 6.4: Installation des Kernels

# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4

Beachten Sie, dass die Anweisungen oben nur Beispiele sind, Sie sollten Ihrem üblichen Ablauf eines Kernelupdates folgen, indem Sie den Anweisungen im Gentoo Handbuch folgen (schauen Sie sich den Abschnitt Konfiguration des Kernels an).

Wenn Sie Ihre Bootloader-Konfiguration aktualisieren, entfernen Sie nicht den alten Eintrag, der auf Ihren 2.4 Kernel verweist. So können Sie einfach zwischen beiden wechseln, falls etwas nicht funktioniert.

Machen Sie jetzt mit dem Abschnitt Modul Konfiguration weiter.

7.  Alternative: genkernel benutzen

Wenn Sie es vorziehen genkernel statt der manuellen Konfiguration Ihres Kernels zu benutzen, wird es Sie freuen zu hören, dass die Produktion eines 2.6 Kernels mit genkernel sehr ähnlich zu dem Ablauf ist, den Sie durchgeführt haben, um Ihren vorherigen 2.4 Kernel zu produzieren.

Sie sollten genkernel wie unten gezeigt aufrufen:

Befehlsauflistung 7.1: genkernel mit einigen üblichen Argumenten aufrufen

# genkernel --udev --menuconfig --bootloader=grub all

In dem obigen Beispiel machen wir von den genkernel Eigenschaften Gebrauch, um menuconfig zu öffnen, damit es Ihnen möglich ist, die Kernelkonfiguration anzupassen (wenn Sie es wünschen) und um die grub Bootloaderkonfiguration nach der Kompilierung zu aktualisieren.

Sie sollten die genkernel-Argumente auswählen die Ihnen passen, aber vergessen Sie nicht das Argument --udev einzubeziehen! Beziehen Sie sich auf den Gentoo Linux Genkernel Leitfaden und das Kapitel Konfiguration des Kernels im Gentoo Handbuch für weitere Informationen.

Wenn Sie entscheiden Ihre Bootloaderkonfiguration selbst zu aktualisieren, dann müssen Sie daran denken den Kernelparameter udev hinzuzufügen. Ein Abschnitt einer grub Beispielkonfiguration wird unten gezeigt, aber denken Sie daran den Parameter real_root für Ihr System anzupassen.

Befehlsauflistung 7.2: GRUB Beispielkonfiguration für genkernel + udev

title Gentoo Linux (2.6 kernel)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4

8.  Modulkonfiguration

Installation externer Module

Viele Benutzer werden zusätzlich auf Kernelmodule angewiesen sein, die außerhalb des Kernelbaums gebaut wurden. Übliche Beispiele sind die binären ATI und Nvidia Grafiktreiber. Sie müssen diese Module jetzt installieren, sie werden gegen die 2.6 Quellen, zu finden unter /usr/src/linux, gebaut. Das ist der normale Fall von emerge packagename für alle externen Module die Sie unter 2.4 benutzen.

Beziehen Sie sich wieder auf das Kapitel Konfiguration des Kernels im Gentoo Handbuch für weitere Informationen.

Module automatisch laden

Sie könnten sich entschieden haben einige Kernelkomponenten als Module zu kompilieren (im Gegensatz zum Kompilieren direkt in den Kernel) und möchten diese beim Starten automatisch geladen haben, wie Sie es auch in 2.4 getan haben. Außerdem, wenn Sie irgendwelche externen Module aus dem Portagebaum installiert haben (wie oben beschrieben), dann möchten Sie diese wahrscheinlich auch automatisch geladen haben.

Sie können dies genauso erreichen, wie Sie es auch mit 2.4 getan haben. Öffnen Sie einfach die Datei /etc/modules.autoload.d/kernel-2.6 in einem Texteditor und listen die Namen der Module, die Sie automatisch geladen haben wollen, auf.

Befehlsauflistung 8.1: Öffnen der Liste automatisch zu ladender Module mit nano

# nano -w /etc/modules.autoload.d/kernel-2.6

Befehlsauflistung 8.2: Beispielliste um die Module 3c59x und nvidia automatisch laden zu lassen

# /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.

3c59x
nvidia

9.  LVM zu LVM2 Migration

Aktualisierung auf LVM2 Werkzeuge

Notiz: Wenn Sie nicht LVM benutzen, um Ihre Festplattenspeicher zu verwalten, dann können Sie dieses Kapitel beruhigt überspringen und mit dem nächsten weitermachen.

Glücklicherweise ist die Aktualisierung der LVM1-Benutzerwerkzeuge auf die LVM2 Version sehr einfach:

Befehlsauflistung 9.1: Aktualisierung der Benutzerwerkzeuge von LVM1 auf LVM2

# emerge --unmerge lvm-user
# emerge lvm2

Notiz: Sie müssen lvm-user re-emergen, falls Sie vorhaben, wieder einen 2.4 Kernel zu booten, da lvm2 selbst nicht ausreichend für 2.4 Kernel ist.

10.  Linux 2.6 booten

Jetzt ist es Zeit Linux 2.6 zu booten. Schließen Sie alle Anwendungen und starten Sie neu:

Befehlsauflistung 10.1: Neustarten

# umount /boot
# reboot

Wenn Sie neustarten und Sie diesem Dokument bis jetzt gefolgt sind, dann haben Sie die Wahl entweder Linux 2.4 oder Linux 2.6 von Ihrem Bootloader laden zu lassen. Wählen Sie Linux 2.6.

Sobald das System gestartet ist, prüfen Sie ob die Dinge funktionieren. Wenn Sie einen Fehler bei der Kernelkonfiguration gemacht haben, keine Sorge, Sie können zurück zum Abschnitt Konfigurieren, Bauen und Installieren des Kernels springen, Ihre Änderung machen, neu kompilieren und das neue Kernelabbild installieren, neustarten und es nochmals versuchen!

ALSA konfigurieren und Stummschaltung deaktivieren

Wir vervollständigen jetzt die ALSA-Konfiguration und deaktivieren die Stummschaltung der Audiokanäle. Das ALSA-Paket bietet ein nützliches Hilfsmittel, um diesen Prozess relativ einfach zu machen:

Befehlsauflistung 10.2: Aufruf des automatischen ALSA-Konfigurationswerkzeugs

# alsaconf

Der Prozess ist einfach: Erlauben Sie es die Datei /etc/modules.d/alsa automatisch aktualisieren zu lassen und dann erlauben Sie es ALSA neu lasen zu lassen. alsoconf wird sich dann beenden, allerdings müssen Sie es mehrmals aufrufen, wenn Sie mehrere Soundgeräte in Ihrem System haben.

Sie sollten jetzt alsasound zu Ihrem boot Runlevel hinzufügen, damit die Lautstärken beim Herunterfahren gespeichert und beim Start wiederhergestellt werden:

Befehlsauflistung 10.3: alsasound zum Runlevel boot hinzufügen

# rc-update add alsasound boot

Notiz: Das Hilfsmittel alsaconf wählt anfangs Lautstärkelevel für Ihre Soundgeräte. Wenn diese unpassend sind, können Sie diese jederzeit mit dem Hilfsmittel alsamixer anpassen.

Irgendwelche unmittelbaren Probleme?

An diesem Punkt sollten Sie sich zurück auf den Abschnitt Bekannte Fallen bei der Linux 2.6 Migration beziehen, der Ihnen bei allen Problemen helfen sollte, auf die Sie unmittelbar treffen.

11.  Headerdateien und NPTL

Jetzt haben Sie Linux 2.6 laufen und haben hoffentlich alle Probleme ausgebügelt. Sie sollten jetzt Ihre Linuxkernel-Headerdateien und glibc remergen, damit die Benutzerapplikationen von den neuen Linux 2.6 Merkmalen Vorteil ziehen können.

Befehlsauflistung 11.1: Aktualisierung der Linuxheader

# emerge -u linux-headers

Nach der Aktualisierung Ihres Headerpakets, sollten Sie generell glibc remergen. Es gibt ein neues Merkmal, dass Sie vielleicht interessiert - NPTL. NPTL ist ein neues, unter Linux 2.6 vorhandenes, Threadmodell, dass viel schnellere Erstellungs- und Zerstörungszeiten von Threads unterstützt. Auf vielen Systemen macht das nicht viel Unterschied, aber vielleicht möchten Sie es während des Migrationsprozesses aktivieren! Um NPTL zu aktivieren, bearbeiten Sie /etc/make.conf und fügen nptl zu Ihrer USE-Variable hinzu.

Warnung: Wenn Sie sich entschließen das Flag "nptlonly" ebenfalls zu aktivieren, seien Sie sich im Klaren, dass Sie nicht mehr in der Lage sein werden einen 2.4 Kernel zu booten.

Remergen Sie jetzt glibc (Sie sollten das auch tun, wenn Sie sich nicht entschieden haben NPTL zu aktivieren).

Befehlsauflistung 11.2: glibc gegen die neuen Kernelheader neu installieren

# emerge -a glibc

Wenn Sie NPTL aktiviert haben, werden vorhandene Programme es nicht benutzen, bevor Sie nicht neu kompiliert wurden. Trotzdem werden alle Programme, die von nun an kompiliert werden, werden NPTL benutzen. Sie sollten jetzt alle Programme neu kompilieren, z.B.:

Befehlsauflistung 11.3: Alle Pakete des Systems neu kompilieren

# emerge -e world

Alternativ können Sie Ihr System einfach "natürlich" selbst nach NPTL konvertieren lassen, indem Sie auf neuere Versionen aktualisieren sobald sie veröffentlicht werden.

12.  Abschließende Bemerkungen

Probleme?

Durch die unglaubliche Menge an Arbeit, die in Linux 2.6 geflossen ist, ist es manchmal unumgänglich, dass Dinge die gut funktioniert haben, nicht mehr wie erwartet funktionieren.

Wenn Sie irgendwelche Probleme mit Ihrem 2.6 Kernel haben und Sie bestätigen können, dass das Problem unter 2.4 nicht besteht, dann öffnen Sie bitte einen Bug in unserem Bugzilla. Wir werden das Problem untersuchen und wenn wir rausfinden, dass es ein Problem im Hauptkernel ist, werden wir Sie dann bitten einen Report im zentralen Kernel-Bugzilla einzureichen.

Fazit

Hoffentlich haben Sie nun eine sanfte Migration abgeschlossen und genießen die Vorteile die Linux 2.6 über 2.4 hat.

Ich möchte ein Wort des Danks an die viele Benutzer richten, die dieses Dokument effektiv 'getestet' haben während es in den frühen Stadien war und Feedback geboten haben wie der Migrationsprozess verlaufen ist. Es tut mir leid, dass ich nicht allen Emails geantwortet habe (es waren eine Menge!), aber ich habe jede einzelne gelesen und dieses Dokument verbessert, wo es angebracht war. Genießen Sie Ihre 2.6-erweiterten Systeme :)

Linux 2.4 von Ihrem System entfernen

Nachdem Sie 2.6 eine Zeit lang laufen haben, könnten Sie sich entscheiden, dass Sie keinen Grund mehr haben Linux 2.4 zu benutzen. Die Schritte, die Sie gehen könnten, um Ihr System aufzuräumen, werden unten beleuchtet. Folgen Sie der Prozedur in diesem Abschnitt nur, wenn Sie sich sicher sind, dass Sie 2.4 nie wieder 2.4 benutzen können/wollen!

Der 2.4 Kernelquellcode kann durch die Benutzung von emerge wie gewohnt entfernt werden. Zum Beispiel, angenommen Sie haben 2.4 Versionen der vanilla-sources und gentoo-sources installiert, dann können Sie folgenden Befehl benutzen, um sie zu entfernen, während die 2.6 Versionen intakt bleiben:

Befehlsauflistung 12.1: Beispiel: Linux 2.4 Quellen entfernen

# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*

Portage wird die Installationen der 2.4 Kernelquellen nicht komplett entfernen, da einige temporäre Dateien während der Kompilierung erzeugt wurden. Es ist sicher diese Überreste mit folgendem Befehl zu entfernen:

Befehlsauflistung 12.2: Entfernen der verbleibenden temporären Dateien

# rm -rf /usr/src/linux-2.4.*

Sie können zusätzlich die Module und Informationsdateien entfernen, die sich auf Ihre alte 2.4 Kernel Installation beziehen, da diese nicht länger gebraucht werden.

Befehlsauflistung 12.3: Entfernen der vorher installierten 2.4 Module

# rm -rf /lib/modules/2.4.*

Die 2.4 Kernel-Binaries von denen Sie gebootet haben können auch beruhigt entfernt werden. Sie sollten Ihre /boot Partition mounten und diese Abbilder entfernen. Sie sollten auch Ihre Bootloaderkonfiguration aktualisieren, damit diese sich nicht länger auf die gelöschten Kernelabbilder bezieht.

Manche Linux 2.4 Benutzer werden vorher schon das alsa-driver Paket installiert haben, um von den neuen Audiomöglichkeiten von Linux 2.6 Vorteil zu ziehen. Wenn Sie einer dieser Benutzer sind und Sie dem Rat, ALSA mit den 2.6 Kernelquellen zu bauen (im Gegensatz zur Benutzung des alsa-driver Pakets), gefolgt sind, der weiter oben im Dokument gegeben wurde, dann können Sie es sicher entfernen, um zukünftige Konflikte zu vermeiden.

Zusätzlich haben lm-sensors Benutzer früher das Paket i2c benutzt, um die Hardwaretreiber zur Verfügung zu stellen. Wie schon erwähnt sind die I2C-Treiber jetzt im Kernel enthalten, also kann dieses Paket ebenfalls entfernt werden, um zukünftige Konflikte zu vermeiden.

Der devfs Verwaltungs-Daemon, devfsd, kann auch sicher entfernt werden, da wir jetzt udev zur Geräteverwaltung verwenden.

Befehlsauflistung 12.4: alsa-driver, i2c, und devfsd entfernen

# emerge --unmerge alsa-driver i2c devfsd

Wenn Sie LVM2-Benutzer sind, möchten Sie vielleicht Ihre Daten in das LVM2-Datenformat konvertieren, um von den Vorteilen zu profitieren, die LVM2 bietet. Allerdings wird diese Operation Sie davon abhalten jemals wieder auf Ihre LVM-Daten von einem 2.4 Kernel aus zuzugreifen. Wenn Sie mit der Konvertierung fortfahren möchten (es ist komplett Optional!), dann sollten Sie sich die Manpage von vgconvert näher ansehen um Anweisungen zu erhalten wie man verfahren muss. Ein Beispiel wird unten gezeigt, wobei main der Volume-Gruppenname ist.

Befehlsauflistung 12.5: Ein LVM1-Volume in das LVM2-Format konvertieren

# vgconvert -M2 main


Drucken

Seite aktualisiert 5. März 2008

Die Originalversion dieser Übersetzung wird nicht länger gepflegt

Zusammenfassung: Dieses Dokument unterstützt Sie bei der Migration von Linux 2.4 auf Linux 2.6, devfs auf udev, OSS auf ALSA, und LVM auf LVM2.

Daniel Drake
Autor

Sergey Galkin
Mitarbeiter

Sergey Kuleshov
Mitarbeiter

Xavier Neys
Bearbeiter

Benny Chuang
Bearbeiter

Sebastian Westermayer
Übersetzer

Tobias Heinlein
Korrektor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.