[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
7. Konfiguration des Kernels
Inhalt:
7.a. Setzen der Zeitzone des Systems
Zuerst müssen Sie dem System sagen, in welcher Zeitzone es sich befindet.
Suchen Sie Ihre Zeitzone in/usr/share/zoneinfo/ und kopieren Sie
diese nach /etc/localtime. Bitte vermeiden Sie die
/usr/share/zoneinfo/Etc/GMT* Zeitzonen, denn deren Namen verweisen
nicht auf die erwarteten Zonen. Zum Beispiel ist GMT-8 in
Wirklichkeit GMT+8.
Befehlsauflistung 1.1: Setzen der Zeitzone |
# ls /usr/share/zoneinfo
# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime
# echo "Europe/Brussels" > /etc/timezone
|
7.b. Installieren der Kernelquellen
Auswählen eines Kernels
Der Kern um den herum alle Distributionen gebaut sind ist der Linux-Kernel. Er
bildet die Ebene zwischen den Benutzerprogrammen und der Systemhardware. Gentoo
bietet seinen Benutzern verschiedene mögliche Kernelquellen. Eine komplette
Liste mit Beschreibungen finden Sie im
Gentoo Kernel Guide.
Für PPC-basierende Systeme haben wir gentoo-sources
(Kernelquellen modifiziert für zusätzliche Funktionen).
Wählen Sie Ihre Kernelquellen aus und installieren Sie diese mit emerge.
Befehlsauflistung 2.1: Installation der Kernelquellen |
# emerge gentoo-sources
|
Wenn Sie einen Blick in /usr/src werfen, sollten Sie einen Symlink
namens linux sehen, der auf Ihre momentane Kernelquelle verweist.
In diesem Fall verweisen die Kernequellen auf gentoo-sources-3.4.9. Beachten Sie, dass Ihre Version davon abweichen kann.
Befehlsauflistung 2.2: Anzeigen des Kernelquellen-Symlinks |
# ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.4.9
|
Nun ist es Zeit Ihre Kernelquelle zu konfigurieren und zu kompilieren. Sie
können genkernel verwenden, welches einen generischen
Kernel erstellt, wie er von der Installations-CD verwendet wird. Wir erklären
allerdings zuerst die "manuelle" Konfiguration, da es die beste Möglichkeit ist,
Ihre Umgebung zu optimieren.
Wenn Sie Ihren Kernel manuell konfigurieren wollen, fahren Sie fort mit Standard: Manuelle Konfiguration. Wenn Sie
genkernel verwenden möchten, dann sollten Sie stattdessen Alternative: Verwendung von genkernel lesen.
7.c. Standard: Manuelle Konfiguration
Einleitung
Einen Kernel manuell zu konfigurieren wird oft als der schwierigste Teil
gesehen, den jeder Linux Benutzer insgesamt meistern muss. Nichts ist weiter von
der Wahrheit entfernt. Nach der Konfiguration von einigen Kerneln werden Sie
sich gar nicht daran erinnern, dass es schwer war ;-)
Eine Sache jedoch ist wahr: Sie müssen Ihr System kennen, wenn Sie
beginnen einen Kernel manuell zu konfigurieren. Die meisten Informationen über
vorhandene Hardware können gesammelt werden, indem Sie sich pciutils
installieren (emerge pciutils), welches lspci enthält. Sie haben
nun die Möglichkeit lspci innerhalb der chroot Umgebung zu verwenden. Sie
können ohne Sorge jegliche pcilib Warnungen (z.B. pcilib: cannot open
/sys/bus/pci/devices), die lspci auswirft, ignorieren. Alternativ können
Sie lspci aus einer nicht-chroot Umgebung ausführen. Das Resultat
ist dasselbe. Sie können auch lsmod ausführen um zu sehen welche
Kernelmodule die Installations-CD verwendet (es kann Ihnen einen guten Hinweis
darauf geben was zu aktivieren ist).
Gehen Sie nun in Ihr Kernelquellverzeichnis, es ist nun Zeit Ihren Kernel zu
konfigurieren. Beginnen Sie mit der Konfiguration eines Kernels, der auf den
meisten 32-Bit-PowerPC-Rechnern booten wird, indem Sie zuerst
make pmac32_defconfig ausführen. Nachdem die Standardkonfiguration
generiert wurde, führen Sie make menuconfig aus um ein
ncurses-basierendes Konfigurationsmenü zu starten.
Befehlsauflistung 3.1: menuconfig starten |
# cd /usr/src/linux
# make pmac32_defconfig
# make menuconfig
|
Ihnen werden verschiedene Konfigurationssektionen präsentiert. Wir listen
zunächst einige Optionen auf, die sie aktivieren müssen (ansonsten wird Gentoo
nicht funktionieren, oder ohne zusätzliche Veränderungen nicht richtig
funktionieren).
Aktivieren der benötigten Optionen
Zuerst gehen Sie in File Systems und wählen Unterstützung für die
Dateisysteme die Sie benutzen aus. Kompilieren Sie diese nicht als
Module, ansonsten wird ihr Gentoo System nicht fähig sein, Ihre Partitionen zu
mounten. Selektieren Sie auch /proc file system und Virtual
memory. Falls Sie ein 'Pegasos' System verwenden, aktivieren Sie die Option
für Amiga-Partitionen. Falls Sie ein Apple System verwenden, aktivieren Sie die
Option für Macintosh-Partitionen.
Befehlsauflistung 3.2: Selektieren notwendiger Dateisysteme |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
Partition Types
[*] Advanced partition support
[*] Amiga partition table support
[*] Macintosh partition table support
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> Second extended fs support
<*> XFS filesystem support
|
Benutzer von NewWorld- und OldWorld-Rechnern werden auch HFS-Unterstützung
aktivieren wollen. OldWorld-Benutzer benötigen es um kompilierte Kernel auf die
MacOS-Partition zu kopieren. NewWorld-Benutzer benötigen es um die spezielle
Apple_Bootstrap-Partition konfigurieren zu können:
Befehlsauflistung 3.3: Aktivierung der HFS-Unterstützung |
File Systems --->
Miscellaneous filesystems --->
<M> Apple Macintosh file system support
<M> Apple Extended HFS file system support
|
Wenn Sie PPPoE benutzen um sich ins Internet einzuwählen oder Sie benutzen
ein Einwahl Modem, brauchen Sie folgende Optionen im Kernel:
Befehlsauflistung 3.4: Auswählen notwendiger Treiber für PPPoE |
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
Die zwei Komprimierungsoptionen werden nicht schaden, aber werden auch nicht
definitiv gebraucht, ebenso die Option PPP over Ethernet, die vielleicht
nur von ppp verwendet wird, wenn es dazu konfiguriert wurde das
Kernelmodus-PPPoE zu benutzen.
Vergessen Sie nicht Unterstützung für Ihre Netzwerkkarte im Kernel zu
aufzunehmen. Die meisten neueren Apple-Rechner verwenden den Ethernet-Treiber
SunGEM. Ältere iMacs verwenden häufig den BMAC-Treiber.
Befehlsauflistung 3.5: Auswählen der Netzwerktreiber |
Device Drivers --->
Network device support --->
Ethernet (10 or 100Mbit) --->
[*] Ethernet (10 or 100Mbit)
<*> Generic Media Independent Interface device support
<*> MACE (Power Mac ethernet) support
<*> BMAC (G3 ethernet) support
<*> Sun GEM support
|
Wenn Sie von FireWire starten, dann werden Sie auch diese Optionen aktivieren
müssen. Wenn Sie Unterstützung einkompilieren wollen, dann müssen Sie diese
Module und die dazugehörigen Abhängigkeiten zu einem initrd hinzufügen.
Befehlsauflistung 3.6: Unterstützung für FireWire-Geräte beim Boot aktivieren |
Device Drivers --->
IEEE 1394 (FireWire) support --->
<*> IEEE 1394 (FireWire) support
<*> OHCI-1394 support
<*> SBP-2 support (Harddisks etc.)
|
Wenn Sie von USB starten, dann werden Sie auch diese Optionen aktivieren
müssen. Wenn Sie Unterstützung einkompilieren wollen, dann müssen Sie diese
Module und die dazugehörigen Abhängigkeiten zu einem initrd hinzufügen.
Befehlsauflistung 3.7: Unterstützung für USB-Geräte beim Boot aktivieren |
Device Drivers --->
USB support --->
<*> Support for Host-side USB
<*> OHCI HCD support
<*> USB Mass Storage support
|
Deaktivieren Sie die Framebuffer-Unterstützung des Kernels nicht, denn es wird
für einen erfolgreichen Start benötigt. Wenn Sie einen NVIDIA basierenden
Chipsatz verwenden, sollten Sie den Open Firmware Framebuffer verwenden. Wenn
Sie einen ATI basierenden Chipsatz verwenden, sollten Sie den
Framebuffer-Treiber wählen auf dem Ihr Chipsatz basiert (Mach64, Rage128 oder
Radeon).
Befehlsauflistung 3.8: Einen Framebuffer-Treiber auswählen |
Device Drivers --->
Graphics support --->
<*> Support for frame buffer devices
[*] Open Firmware frame buffer device support
<*> ATI Radeon display support
<*> ATI Rage128 display support
<*> ATI Mach64 display support
Console display driver support --->
<*> Framebuffer Console support
|
Notiz:
Wenn Sie mehr als ein Framebuffer Gerät auswählen, kann es unter Umständen
auf einen weniger optimalen Treiber zurückfallen. Entweder verwenden Sie
nur ein Framebuffer Gerät oder Sie spezifizieren welches verwendet werden soll
indem Sie den Treiber der verwendet werden soll beim Boot an den Kernel
übergeben, durch anhängen einer Video-Zeile wie z.B. video=radeonfb.
|
Wenn Sie die Konfiguration des Kernel beendet haben fahren Sie mit Kompilieren und Installieren fort.
Kompilieren und Installieren
Nun da Ihr Kernel konfiguriert ist, ist es Zeit ihn zu kompilieren und zu
installieren. Verlassen Sie das Konfigurationsmenü und führen Sie die folgenden
Befehle aus:
Befehlsauflistung 3.9: Kompilieren des Kernels |
# make && make modules_install
|
Wenn der Kernel fertig ist mit der Kompilierung, kopieren Sie das Kernel-Image
nach /boot, wie weiter unten gezeigt. Wenn Sie eine separate
Boot-Partition haben, wie bei Pegasos-Rechnern, müssen Sie sicherstellen, dass
diese korrekt eingebunden ist. Wenn Sie BootX zum booten verwenden wird der
Kernel später kopiert.
Yaboot und BootX erwarten einen nicht-komprimierten Kernel, anders als viele
andere Bootloader. Der nicht-komprimierte Kernel heißt vmlinux und ist in
/usr/src/linux platziert, nachdem der Kernel die Kompilierung
beendet hat. Wenn Sie einen Pegasos-Rechner verwenden benötigt das
Pegasos-Firmware einen komprimierten Kernel mit Namen zImage, welchen man
in /usr/src/linux/arch/powerpc/boot/images findet.
Befehlsauflistung 3.10: Installieren des Kernels |
# cd /usr/src/linux
# cp vmlinux /boot/kernel-3.4.9-gentoo
# cp arch/powerpc/boot/images/zImage /boot/kernel-3.4.9-gentoo
|
Fahren Sie nun mit den Kernelmodulen fort.
7.d. Alternative: Verwenden von genkernel
Nun da Ihr Kernelquellbaum installiert ist, ist es an der Zeit Ihren Kernel
automatisch durch das genkernel Skript erstellen zu lassen.
genkernel arbeitet so, dass es einen Kernel konfiguriert, der fast
identisch ist zu denen auf unser Installations-CD. Dies bedeutet, dass wenn
Sie genkernel benutzen um Ihren Kernel zu erstellen, Ihr System generell
alle Hardware beim Booten erkennt, genau wie es unsere Installations-CD tut.
Weil genkernel keine manuelle Kernelkonfiguration erfordert ist es eine
ideale Lösung für die Benutzer, denen Unwohl bei der Kompilierung eines eigenen
Kernels ist.
Nun lassen Sie uns sehen, wie man Genkernel benutzt. Zuerst installieren Sie
genkernel:
Befehlsauflistung 4.1: genkernel mit emerge installieren |
# emerge genkernel
|
Wenn Sie FireWire oder USB verwenden um zu booten, müssen Sie Module zum initrd
hinzufügen. Editieren Sie
/usr/share/genkernel/arch/ppc/modules_load und ändern Sie
MODULES_FIREWIRE="ieee1394 ohci1394 sbp2" für FireWire-Unterstützung oder
MODULES_USB="usbcore ohci-hcd ehci-hcd usb-storage" für
USB-Unterstützung.
Bevor Sie nun die Quellen kompilieren benötigen wir noch eine kleine
Anpassung in der fstab. Der Rest der fstab wird in einem späteren
Schritt vervollständigt, machen Sie sich daher jetzt bitte keine Gedanken
um die Details.
Falls Sie keine separate Boot-Partition angelegt haben (nicht
/bootstrap, das ist etwas Anderes), entfernen Sie die Zeile die
/boot enthält aus der Datei /etc/fstab. Das wird bei
den meisten Apple-Computern nötig sein.
Befehlsauflistung 4.2: Entfernen von /boot aus /etc/fstab bei Rechnern ohne Boot-Partition |
# nano -w /etc/fstab
/dev/BOOT /boot ext2 noauto,noatime 0 2
|
Kompilieren Sie nun Ihre Kernelquellen indem Sie genkernel --genzimage
all ausführen. Für Pegasos muss eine andere Konfiguration verwendet werden
und es muss ein zImage anstatt des vmlinux Kernels, der auf Apple Maschinen
verwendet wird, erstellt werden. ausführen. Beachten Sie jedoch, dass
genkernel einen Kernel kompiliert, der fast jede Hardware unterstützt,
daher wird diese Kompilierung einen relativ langen Zeitraum in Anspruch nehmen.
Beachten Sie, dass wenn Ihre Parititon auf der sich der Kernel befindet nicht
ext2 oder ext3 als Dateisystem verwendet, Sie möglicherweise manuell Ihren
Kernel konfigurieren müssen mit genkernel --menuconfig all und
Unterstützung für das Dateisystem im Kernel (also nicht als
Modul) hinzufügen müssen. Benutzer von LVM2 werden wahrscheinlich
das Argument --lvm2 ebenfalls hinzufügen wollen.
Befehlsauflistung 4.3: Ausführen von genkernel |
# genkernel all
|
Befehlsauflistung 4.4: Ausführen von genkernel auf dem Pegasos |
# genkernel --genzimage all
|
Sowie genkernel abgeschlossen wurde, ist ein Kernel, ein voller Satz
Module und eine initial ram disk (initramfs) erstellt worden. Wir werden
den Kernel und das initrd verwenden wenn wir einen Bootloader, später in
diesem Handbuch, konfigurieren. Schreiben Sie sich die Namen des Kernels und
des initrd auf, denn Sie werden diese benötigen, wenn Sie die
Konfigurationsdatei für Ihren Bootloader schreiben. Das initrd wird direkt
nach dem booten gestartet um Hardware Autoerkennung durchzuführen (genau
wie die Installations-CD), bevor ein "richtiges" System hochfährt. Stellen
Sie sicher, dass Sie eine Notiz von den benötigten Bootargumenten machen.
Diese werden für einen erfolgreichen Boot mit genkernel benötigt.
Befehlsauflistung 4.5: Überprüfen der Namen des erstellten Kernel-Image und initrd |
# ls /boot/kernel-genkernel-ppc-3.4.9-gentoo /boot/${genkernel-initrd}
|
Fahren Sie nun mit den Kernelmodulen fort.
7.e. Kernel Modules
Konfiguration der Module
Sie sollten alle Module, die automatisch geladen werden sollen, in
/etc/conf.d/modules aufführen. Sie können, wenn Sie wollen, zu den
Modulen weitere Optionen angeben.
Um alle verfügbaren Module anzuzeigen, führen Sie folgenden find Befehl
aus. Vergessen Sie nicht "<kernel version>" mit der Version des Kernels zu
ersetzen, den Sie gerade kompiliert haben:
Befehlsauflistung 5.1: Anzeigen aller verfügbaren Module |
# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko' | less
|
Um zum Beispiel das Modul 3c59x.ko (das ein Treiber für eine bestimmte
Sorte von 3Com-Netzwerkkarten ist) automatisch zu laden, editieren Sie
die Datei /etc/conf.d/modules und tragen den Modulnamen ein.
Befehlsauflistung 5.2: /etc/conf.d/modules bearbeiten |
# nano -w /etc/conf.d/modules
modules_2_6="3c59x"
|
Setzten Sie die Installation mit der Konfiguration des Systems fort.
[ << ]
[ < ]
[ Hauptseite ]
[ > ]
[ >> ]
Die Inhalte dieses Dokuments sind, sofern nicht explizit
anders genannt, unter der Creative Commons -
Namensnennung / Weitergabe Lizenz lizenziert. Die Gentoo Name and Logo
Usage Guidelines treffen zu.
|