Der komplette Gentoo Linux 2.6 Migrationsleitfaden
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.
-
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.
-
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)
General setup --->
[*] Support for hot-pluggable devices
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
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
|
|