Gentoo Logo

Haftungsausschluss: Dieses Handbuch wurde durch eine neuere Version ersetzt und wird nicht länger gepflegt.


[ << ] [ < ] [ 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 dann 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
(Beispiel: GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime

7.b. Installieren der Kernelquellen

Auswählen eines Kernels

Der Kern um den herum alle Distributionen gebaut sind ist der Linux Kernel. Es ist die Ebene zwischen den Benutzerprogrammen und der Systemhardware. Gentoo bietet seinen Benutzern verschiedene mögliche Kernel zur Auswahl. Eine komplette Liste mit Beschreibungen finden Sie im Gentoo Kernel Guide.

Wir empfehlen die Verwendung der gentoo-sources auf PPC, was ein aktueller 2.6 Kernel ist.

Befehlsauflistung 2.1: Installieren einer Kernelquelle

# emerge --usepkg 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 installierten Kernelquellen auf gentoo-sources-2.6.19-r5. Denken Sie daran, dass Ihre Version eine andere sein kann.

Befehlsauflistung 2.2: Anzeigen des Kernelquellen-Symlinks

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root           22  Mar 18 16:23 /usr/src/linux -> linux-2.6.19-gentoo-r5

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 die "manuelle" Konfiguration jedoch zuerst, da es eine effizientere Konfiguration ist.

Wenn Sie Ihren Kernel manuell konfigurieren wollen fahren Sie nun mit Standard: Manuelle Konfiguration fort. 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 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 ;-)

Jedoch, eine Sache ist wahr: Sie müssen Ihr System kennen, wenn Sie beginnen einen Kernel manuell zu konfigurieren. Die meisten Informationen können gesammelt werden, indem Sie sich pciutils installieren (emerge --usepkg pciutils), welches das Programm lspci enthält. Sie haben nun die Möglichkeit lspci innerhalb der chroot Umgebung zu verwenden. Sie können ohne Sorge jegliche pcilib Warnungen (wie 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 netten Hinweis darauf geben was zu aktivieren ist). Ein weiterer Ort an dem man nach Hinweisen suchen kann, um festzustellen welche Komponenten aktiviert werden sollten, sind die Nachrichtenprotokolle des Kernels vom bisherigen erfolgreichen Boot. Tippen Sie dmesg ein um diese Kernelnachrichten zu betrachten.

Gehen Sie nun in Ihr Kernelquellverzeichnis, es ist Zeit Ihren Kernel zu konfigurieren. Beginnen Sie mit der Konfiguration eines Kernels, der auf den meisten 32Bit-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

Zunächst aktivieren Sie die Benutzung von entwicklungs- und experiementellem/n Code/Treiber(n). Sie brauchen dies, denn ansonsten werden einige wichtige Codeabschnitte/Treiber nicht erscheinen.

Befehlsauflistung 3.2: Selektieren experimenteller/n Codes/Treiber

General setup --->
  [*] Prompt for development and/or incomplete code/drivers

Gehen Sie nun in File Systems und selektieren Sie Unterstützung für die Dateisysteme die Sie benutzen. 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.3: Selektieren notwendiger Dateisysteme

File systems --->
  Pseudo Filesystems --->
(/proc kann durch Ihre Konfiguration auch zwingend sein, es wird dann stattdessen --- angezeigt)
    [*] /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
(Selektieren Sie eine oder mehrere der folgenden Optionen, wie benötigt
von Ihrem System)
  <*> 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.4: 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.5: Auswählen PPPoE notwendiger Treiber

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.6: 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

Zum jetzigen Zeitpunkt kann volles Kernel-Preemption noch instabil sein unter PPC und kann Kompilierungsfehler und wahllose Segfaults verursachen. Es wird dringend empfohlen, dass Sie diese Funktion nicht verwenden. Sowohl Voluntary Preemption wie auch No Forced Preemption sollten sicher sein.

Befehlsauflistung 3.7: Sicherstellen, dass die Preemptible Kernel Option AUS ist

Kernel options --->
(Wählen Sie eins)
  Preemption Model
    (X) No Forced Preemption (Server)
    (X) Voluntary Kernel Preemption (Desktop)

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.8: 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.9: 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 Kernel Framebufferunterstützung nicht, da es für einen erfolgreichen Start benötigt wird. Wenn Sie einen NVIDIA basierenden Chipsatz verwenden, sollten Sie den Framebuffer von Open Firmware verwenden. Wenn sie einen ATI basierenden Chipsatz verwenden, sollten Sie den Framebuffer nach Ihrem Chipsatz wählen (Mach64, Rage128 oder Radeon).

Befehlsauflistung 3.10: 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-Treiber auswählen, kann es sein, dass standardmäßig ein nicht ganz optimalen Treiber verwendet wird. Entweder Sie verwenden nur einen Framebuffer-Treiber oder übergeben Sie an den Kernel mit einer Zeile wie video=radeonfb, welcher Treiber vom Kernel während des Bootens verwendet werden soll.

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.11: 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.12: Installieren des Kernels

# cd /usr/src/linux
Beachten Sie, Ihre Kernelversion kann anders sein
(Apple/IBM)
# cp vmlinux /boot/kernel-2.6.19-gentoo-r5
(Pegasos)
# cp arch/powerpc/boot/images/zImage /boot/<kernel-version>

Fahren Sie nun mit dem Installieren separater Kernelmodule fort.

7.d. Installieren separater Kernelmodule

Konfiguration der Module

Sie sollten alle Module, die automatisch geladen werden sollen, in /etc/modules.autoload.d/kernel-2.6 eintragen. Sie können zusätzliche Optionen an die Module anhängen, wenn nötig.

Um alle verfügbaren Module anzuzeigen führen Sie das folgende find Kommando aus. Vergessen Sie nicht "<kernel version>" mit der Version Ihres Kernel zu ersetzen, den Sie gerade kompiliert haben:

Befehlsauflistung 4.1: Listen aller verfügbarer Module

# find /lib/modules/<kernel version>/ -type f -iname '*.o' -or -iname '*.ko'

Um zum Beispiel das Modul 3c59x automatisch zu laden, editieren Sie die Datei kernel-2.6 und tragen das Modul ein.

Befehlsauflistung 4.2: /etc/modules.autoload.d/kernel-2.6

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

Befehlsauflistung 4.3: /etc/modules.autoload.d/kernel-2.6

3c59x

Fahren Sie nun mit der Konfiguration des System fort.

7.e. 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 5.1: genkerne mit emerge installierenl

# emerge --usepkg genkernel

Kopieren Sie nun die Kernelkonfiguration, die von der Installations-CD verwendet wird, an den Platz wo genkernel die Standard Kernelkonfiguration erwartet:

Befehlsauflistung 5.2: Kopieren der Kernelkonfiguration der Installations-CD

# zcat /proc/config.gz > /usr/share/genkernel/ppc/kernel-config-2.6

Wenn Sie Firewire oder USB verwenden um zu booten, müssen Sie Module zum initrd hinzufügen. Editieren Sie /usr/share/genkernel/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 5.3: Entfernen von /boot aus /etc/fstab bei Rechnern ohne Boot-Partition

# nano -w /etc/fstab
Entfernen Sie die folgende Zeile
/dev/BOOT               /boot           ext2        noauto,noatime  1 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 nich 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 EVMS2 oder LVM2 werden wahrscheinlich die Argumente --evms2 oder --lvm2 ebenfalls hinzufügen wollen.

Befehlsauflistung 5.4: Ausführen von genkernel

# genkernel all

Befehlsauflistung 5.5: Ausführen von genkernel unter Pegasos

# genkernel --genzimage --kernel-config=/usr/share/genkernel/ppc/Pegasos all

Sowie genkernel abgeschlossen wurde, ist ein Kernel, ein voller Satz Module und eine initiale root disk (initrd) 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 gemacht haben, diese sind notwendig für einen erfolgreichen Boot mit genkernel.

Befehlsauflistung 5.6: Überprüfen der Namen des erstellten Kernel-Image und initrd

Beachten Sie, Ihre Kernelversion kann anders sein
# ls /boot/kernel-genkernel-ppc-2.6.19-gentoo-r5 /boot/initramfs-genkernel-ppc-2.6.19-gentoo-r5

Fahren Sie nun mit der Konfiguration des System fort.


[ << ] [ < ] [ Hauptseite ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 12. Januar 2008

Diese Übersetzung wird nicht länger gepflegt

Zusammenfassung: Der Linux Kernel ist der Kern jeder Distribution. Dieses Kapitel erklärt, wie Sie Ihren Kernel konfigurieren.

Sven Vermeulen
Autor

Grant Goodyear
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Gentoo x86 Entwickler

Tavis Ormandy
Gentoo Alpha Entwickler

Jason Huebel
Gentoo AMD64 Entwickler

Guy Martin
Gentoo HPPA Entwickler

Pieter Van den Abeele
Gentoo PPC Entwickler

Joe Kallar
Gentoo SPARC Entwickler

John P. Davis
Bearbeiter

Pierre-Henri Jondot
Bearbeiter

Eric Stockbridge
Bearbeiter

Rajiv Manglani
Bearbeiter

Jungmin Seo
Bearbeiter

Stoyan Zhekov
Bearbeiter

Jared Hudson
Bearbeiter

Colin Morey
Bearbeiter

Jorge Paulo
Bearbeiter

Carl Anderson
Bearbeiter

Jon Portnoy
Bearbeiter

Zack Gilburd
Bearbeiter

Jack Morgan
Bearbeiter

Benny Chuang
Bearbeiter

Erwin
Bearbeiter

Joshua Kinard
Bearbeiter

Tobias Scherbaum
Bearbeiter

Jochen Maes
Bearbeiter

Xavier Neys
Bearbeiter

Joseph Jezak
Bearbeiter

Joshua Saddler
Bearbeiter

Gerald J. Normandin Jr.
Korrektor

Donnie Berkholz
Korrektor

Ken Nowack
Korrektor

Lars Weiler
Mitarbeiter

Tobias Scherbaum
Übersetzer

Jens Schittenhelm
Übersetzer

Patrick Sudowe
Übersetzer

Torsten Veller
Übersetzer

Michael Frey
Übersetzer

Markus Nigbur
Übersetzer

Boris Ruppert
Übersetzer

Jan Hendrik Grahl
Übersetzer

Christian Hartmann
Korrektor

Martin Bürger
Übersetzer

Sophie Lee
Übersetzer

Thomas Gabelmann
Übersetzer

Timo Rothweiler
Übersetzer

Sebastian Westermayer
Übersetzer

Donate to support our development efforts.

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