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 Quellen

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 Kernelquellen. Eine komplette Liste mit Beschreibungen finden Sie im Gentoo Kernel Guide.

Für x86-basierende Systeme haben wir als empfohlenen Kernel die gentoo-sources. Dieser Kernel basiert auf den offiziellen Linux-Quellen, wurde aber um Patches in den Bereichen Sicherheit, Stabilität, Kompabilität und Fehlerbehebung erweitert. Alternativ stehen die ungepatchten Linux-Quellen als vanilla-sources zur Verfügung.

Beide Kernel-Quellen basieren auf den offiziellen 2.6 Kernel-Quellen. Wenn Sie ein System mit einem 2.4 basierenden Kernel installieren möchten, benötigen Sie eine funktionierende Internetverbindung, da wir diese Quellen nicht auf der Installations CD mitliefern.

Wählen Sie Ihre Kernelquelle aus und installieren Sie diese mit emerge. Das USE="-doc" ist notwendig um zu verhindern, dass xorg-x11 oder andere Abhängigkeiten zu diesem Zeitpunkt installiert werden. USE="symlink" ist nicht zwingend bei einer Neuinstallation, stellt aber sicher, dass der /usr/src/linux Symlink korrekt erstellt wird.

Befehlsauflistung 2.1: Installieren einer Kernelquelle

# USE="-doc symlink" emerge gentoo-sources

Wenn Sie einen Blick in /usr/src werfen, sollten Sie einen Symlink sehen, genannt linux, der auf Ihre Kernelquelle verweist. In diesem Fall verweisen die installierten Kernelquellen auf gentoo-sources-2.6.12-r10. 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     12 Oct 13 11:04 /usr/src/linux -> linux-2.6.12-gentoo-r10

Nun ist es Zeit Ihre Kernelquelle zu konfigurieren und zu kompilieren. Sie können genkernel dazu verwenden, welches einen generischen Kernel erstellt, wie er von der Installations-CD verwendet wird. Wir erklären die "manuelle" Konfiguration jedoch zuerst, denn es ist der beste Weg Ihre Umgebung zu optimieren.

Wenn Sie Ihren Kernel manuell konfigurieren wollen fahren Sie nun mit Standard: Manuelle Konfiguration fort. Wenn Sie genkernel benutzen wollen, sollten Sie stattdessen Alternativ: Benutzung von Genkernel lesen.

7.c. Standard: Manuelle Konfiguration

Einführung

Einen Kernel manuell zu konfigurieren wird oft als der schwierigste Teil gesehen, den ein Linux-Benutzer jemals 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 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 (wie pcilib: cannot open /sys/bus/pci/devices), die lspci auswirft, ignorieren. Alternativ können Sie lspci aus einer Umgebung außerhalb der chroot 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).

Gehen Sie nun in Ihr Kernelquellverzeichnis und führen Sie make menuconfig aus. Dies startet ein ncurses-basierendes Konfigurationsmenü.

Befehlsauflistung 3.1: Menuconfig starten

# cd /usr/src/linux
# 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

Stellen Sie sicher, dass alle Treiber, die notwendig sind um Ihr System zu booten (wie zum Beispiel Treiber für einen SCSI-Controller) in den Kernel und nicht als Modul kompiliert werden, da Ihr System andernfalls nicht vollständig booten kann.

Wählen Sie nun die korrekte Prozessor-Familie:

Befehlsauflistung 3.2: Generelle Unterstützung und Prozessorfamilie

General setup  --->
    [*] Support for hot-pluggable devices
Processor type and features --->
    Subarchitecture Type (PC-compatible)  --->
  (Passen Sie dies an Ihr System an)
  (Athlon/Duron/K7) Processor family

Gehen Sie nun in File Systems und selektieren Sie die 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 Virtual memory und /proc file system.

Befehlsauflistung 3.3: Selektieren notwendiger Dateisysteme

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

(Selektieren Sie eine oder mehrere der folgenden Optionen, wie benötigt von Ihrem System)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Vergessen Sie nicht, DMA für Ihre Laufwerke zu aktivieren:

Befehlsauflistung 3.4: DMA aktivieren

Device Drivers --->
  ATA/ATAPI/MFM/RLL support --->
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available

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 von für PPPoE notwendige Treiber

Device Drivers --->
  Networking 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 rp-pppoe verwendet wird, wenn der Kernelmodus PPPoE benutzt wird.

Wenn Sie es benötigen, vergessen Sie nicht die Ünterstützung für Ihre Netzwerkkarte in Ihren Kernel einzubinden.

Wenn Sie eine Intel-CPU haben, die HyperThreading (tm) unterstützt, oder ein Mehrprozessorsystem haben, sollten Sie "Symmetric multi-processing support" aktivieren:

Befehlsauflistung 3.6: Aktivieren der SMP-Unterstützung

Processor type and features  --->
  <*> Symmetric multi-processing support

Wenn Sie USB-Eingabegeräte wie eine Tastatur oder Maus nutzen möchten, vergessen Sie die Unterstützung für diese ebenfalls nicht:

Befehlsauflistung 3.7: Aktivieren der USB-Unterstützung für Eingabegeräte

Device Drivers --->
  USB Support --->
  <*>   USB Human Interface Device (full HID) support
  [*]   HID input layer support

Wenn Sie ein Laptop-Nutzer sind und PCMCIA-Unterstützung benötigen, vergessen Sie nicht, diese ebenfalls in den Kernel zu kompilieren. Neben der PCMCIA-Unterstützung in einem 2.6er Kernel sollten Sie ebenfalls nicht die Unterstützung für die PCMCIA Card Bridge vergessen, die in Ihrem System zum Einsatz kommt.

Befehlsauflistung 3.8: Aktivieren von PCMCIA-Unterstützung

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
    (Wählen Sie 16-Bit-Unterstützung, wenn Sie planen ältere Karten einzusetzen. Die meisten möchten das.)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
    (Wählen Sie die relevanten Treiber)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> i82365 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

Kompilieren und Installieren

Nun da Ihr Kernel konfiguriert ist, ist es Zeit ihn zu kompilieren und zu installieren. Verlassen Sie die Konfiguration und starten Sie den Kompilierungsvorgang:

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. Benutzen Sie einen beliebigen Namen der Ihnen passend erscheint, merken Sie sich diesen jedoch, da Sie ihn später noch zur Konfiguration des Bootloader benötigen. Denken Sie daran <Kernel-Version> durch den Namen und die Version Ihres Kernels zu ersetzten.

Befehlsauflistung 3.10: Installieren des Kernels

# cp arch/i386/boot/bzImage /boot/<Kernel-Version>

Es ist auch weise Ihre Kernelkonfiguration nach /boot zu kopieren, nur für alle Fälle :)

Befehlsauflistung 3.11: Erstellen eines Backups der Kernelkonfiguration

# cp .config /boot/config-2.6.12-gentoo-r10

Fahren Sie nun mit der Konfiguration der Kernelmodule fort.

7.d. Alternativ: Benutzung von Genkernel

Wenn Sie diesen Abschnitt lesen, haben Sie sich entschieden unser genkernel Skript zu benutzen, um sich Ihren Kernel konfigurieren zu lassen.

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 dem 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 Kernel ist.

Nun lassen Sie uns sehen wie man genkernel benutzt. Zuerst installieren Sie genkernel:

Befehlsauflistung 4.1: genkernel emergen

# emerge genkernel

Kompilieren Sie nun Ihre Kernelquellen durch genkernel all. Seien Sie sich aber bewusst, dass genkernel einen Kernel kompiliert, der fast alle Hardware unterstützt, was bedeutet dass das Kompilieren durchaus eine ganze Weile dauern kann!

Beachten Sie, dass, wenn Ihre Boot-Partition weder ext2 noch ext3 als Dateisystem benutzt, Sie Ihren Kernel selber mit genkernel --menuconfig all konfigurieren und Unterstützung für Ihr Dateisystem im Kernel aktivieren müssen (nicht als Modul). Benutzer von EVMS2 oder LVM2 möchten vermutlich das Argument --evms2 oder --lvm2 hinzufügen.

Befehlsauflistung 4.2: Ausführen von Genkernel

# genkernel all

Sobald genkernel beendet ist werden ein Kernel, ein voller Satz Module und eine initial root disk (initrd) erstellt sein. Wir werden den Kernel und initrd benutzen wenn wir später in diesem Handbuch einen Bootloader konfigurieren. Schreiben Sie den Namen des Kernels und den Ihrer initrd auf, da Sie diese brauchen werden, wenn Sie den Bootloader konfigurieren. Die initrd wird direkt nach dem Booten gestartet um die Hardware-Autoerkennung zu starten (genau wie auf der Installations-CD), bevor ihr "wahres" System startet.

Befehlsauflistung 4.3: Kontrollieren des Kernel-Image-Namen und der initrd

# ls /boot/kernel* /boot/initramfs*

Wenn Sie wünschen, dass Ihr System sich mehr wie die Installations-CD sein soll, dann sollten Sie, sobald Ihre Gentoo Installation fertig ist, cotplug emergen. Während die initrd die Hardware automatisch erkennt, die nötig ist um Ihr System zu starten, wird coldplug automatisch alles andere erkennen.

Befehlsauflistung 4.4: Emergen und aktivieren von coldplug

# emerge coldplug
# rc-update add coldplug boot

7.e. Konfiguration von Kernel-Modulen

Konfiguration der Module

Sie sollten alle Module, die automatisch geladen werden sollen, in /etc/modules.autoload.d/kernel-2.6 (oder kernel-2.4) eintragen. Wenn Sie möchten können Sie auch zusätzliche Optionen anhängen.

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

Befehlsauflistung 5.1: Listen aller verfügbarer Module

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

Um zum Beispiel das 3c59x.o Modul automatisch zu laden editieren Sie die kernel-2.6 Datei (oder kernel-2.4) und tragen das Modul ein.

Befehlsauflistung 5.2: /etc/modules.autoload.d/kernel-2.6 bearbeiten

(Beispiel für 2.6er Kernel)
# nano -w /etc/modules.autoload.d/kernel-2.6

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

3c59x

Fahren Sie nun mit der Konfiguration des System fort.


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


Drucken

Alles ansehen

Seite aktualisiert 6. Januar 2006

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

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

Xavier Neys
Bearbeiter

Grant Goodyear
Korrektor

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.