Gentoo Logo

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


7. Konfiguration des Kernels

Inhalt:

7.a. Setzen der Zeitzone des Systems

Zuerst müssen Sie Ihrem System mitteilen, in welcher Zeitzone es sich befindet. Suchen Sie Ihre Zeitzone in /usr/share/zoneinfo und kopieren Sie sie 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: Europe/Brussels)
# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime
(Nun die Zeitzone setzen)
# echo "Europe/Brussels" > /etc/timezone

7.b. Installieren der Quellen

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 x86-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: Installieren von Kernelquellen

# emerge gentoo-sources

Wenn Sie einen Blick in /usr/src werfen, sollten Sie einen symbolischen Link mit Namen linuxsehen , der auf Ihre Kernelquellen verweist. In diesem Fall verweisen die installierten Kernelquellen auf gentoo-sources-3.3.8. Beachten Sie, dass Ihre Version davon abweichen kann.

Befehlsauflistung 2.2: Anzeigen des symbolischen Kernelquellen-Links

# ls -l /usr/src/linux
lrwxrwxrwx    1 root   root    12 Oct 13 11:04 /usr/src/linux -> linux-3.3.8

Nun ist es Zeit Ihre Kernelquellen zu konfigurieren und zu kompilieren. Alle Architekturen 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, 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 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 (wie pcilib: cannot open /sys/bus/pci/devices), die lspci ausgibt, 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 und führen Sie make menuconfig aus. Dies startet ein ncurses-basierentes 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 Prozessorfamilie:

Befehlsauflistung 3.2: Auswahl der richtigen Prozessorfamilie

Processor type and features --->
  (Passen Sie dies an Ihr System an)
  (Athlon/Duron/K7) Processor family

Wählen Sie nun Maintain a devtmpfs file system to mount at /dev aus, so dass kritische Gerätedateien schon früh während des Boot-Prozesses verfügbar sind.

Befehlsauflistung 3.3: Aktivieren von devtmpfs Unterstützung

Device Drivers --->
  Generic Driver Options --->
    [*] Maintain a devtmpfs filesystem to mount at /dev
    [ ]   Automount devtmpfs at /dev, after the kernel mounted the rootfs

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 beim Booten zu mounten. Selektieren Sie auch Virtual memory, /proc file system.

Befehlsauflistung 3.4: Auswählen der benötigten Dateisysteme

File systems --->
(Wählen Sie eine oder mehrere der folgenden Optionen, wie von Ihrem System benötigt, aus.)
  <*> Second extended fs support
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem
  <*> Reiserfs support
  <*> JFS filesystem support
  <*> XFS filesystem support
  ...
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)

(Aktivieren Sie GPT-Partitions-Label-Unterstützung, falls Sie das vorhin verwendet haben)
-*- Enable the block layer --->
    ...
    Partition Types --->
      [*] Advanced partition selection
      ...
      [*] EFI GUID Partition support

Wenn Sie PPPoE oder ein Modem benutzen um sich ins Internet einzuwählen brauchen Sie folgende Optionen im Kernel:

Befehlsauflistung 3.5: Auswählen von Treibern, notwendig 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 PPP over Ethernet Option, die möglicherweise nur von ppp verwendet wird, wenn es dazu konfiguriert ist Kernelmodus-PPPoE zu verwenden.

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

Wenn Sie eine Intel-CPU, 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

Notiz: Auf Multi-Core Systemen zählt jeder Kern als ein Prozessor.

Wenn Sie mehr als 4GB RAM haben müssen Sie "High Memory Support (64G)" aktivieren.

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

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

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

Wenn sie PCMCIA-Unterstützung für Ihren Laptop benötigen, vergessen Sie nicht die Unterstütztung für die PCMCIA-Card-Bridge, die sich in Ihrem System befindet, zu aktivieren.

Befehlsauflistung 3.8: Aktivieren von PCMCIA-Unterstützung

Bus options (PCI etc.) --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
(Wählen Sie 16-Bit Unterstützung, wenn Sie planen ältere Karten einzusetzen.)
    <*>   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)

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 die Konfiguration und beginnen Sie mit dem Kompilierungsvorgang:

Befehlsauflistung 3.9: Kompilieren des Kernels

# make && make modules_install

Wenn der Kernel fertig kompiliert ist, kopieren Sie das Kernel-Image nach /boot. Verwenden Sie jeglichen Namen, den Sie für Ihren Kernel passend finden und merken Sie ihn sich, da Sie ihn später benötigen werden, wenn Sie Ihren Bootloader konfigurieren. Denken Sie daran kernel-3.3.8-gentoo durch den Namen und die Version Ihres Kernels zu ersetzen.

Befehlsauflistung 3.10: Installieren des Kernels

  # cp arch/x86/boot/bzImage /boot/kernel-3.3.8-gentoo

(Optional) Bauen eines initramfs

Wenn Sie ein spezifisches Partitions-Layout verwenden, bei dem wichtige Dateisystemorte (wie /usr oder /var) auf separaten Partitionen liegen, dann müssen Sie ein initramfs aufsetzen, so dass diese Partitionen gemountet werden können, bevor sie benötigt werden.

Ohne ein initramfs laufen Sie Gefahr, dass das System nicht richtig booten wird, da die Tools, die dafür verantwortlich sind, dass die Dateisysteme gemountet werden, Informationen benötigen, die auf gerade diesen Dateisystemen liegen. Ein initramfs zieht alle benötigten Dateien in ein Archiv, das dann direkt nach dem Booten des Kernels benutzt wird, aber noch bevor die Kontrolle an das init Tool übergeben wird. Skripte im initramfs sorgen dann dafür, dass die Partitionen richtig gemountet werden, bevor das System mit dem Booten fortfährt.

Um ein initramfs zu installieren, installieren Sie zunächst genkernel und lassen Sie es dann ein initramfs für Sie generieren.

Befehlsauflistung 3.11: Bauen eines initramfs

# emerge genkernel
# genkernel --install initramfs

Wenn Sie bestimmte Funktionalitäten in dem initramfs benötigen, wie bspw. lvm oder raid, verwenden Sie die entsprechenden Optionen für genkernel. Siehe genkernel --help für weitere Informationen, oder das nächste Beispiel, welches Unterstützung für LVM und Software-RAID (mdadm) aktiviert:

Befehlsauflistung 3.12: Bauen eines initramfs mit Unterstützung für LVM und Software-RAID

# genkernel --lvm --mdadm --install initramfs

Das initramfs wird unter /boot gespeichert. Sie können die Datei durch einfaches Auflisten der mit initramfs beginnenden Dateien finden:

Befehlsauflistung 3.13: Finden der initramfs-Datei

# ls /boot/initramfs*

Fahren Sie nun mit den Kernelmodulen 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 automatisch 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 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 bei der Kompilierung eines eigenen Kernels unwohl 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 mit 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 LVM2 möchten vermutlich das Argument --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 ram disk (initramfs) 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 die 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 "echtes" System startet.

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

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

7.e. Kernelmodule

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 ] [ > ] [ >> ]


Drucken

Alles ansehen

Seite aktualisiert 9. Februar 2013

Die Originalversion dieses Dokuments wurde zuletzt am 1. Juni 2014 aktualisiert

Zusammenfassung: Der Linux-Kernel ist der Kern einer jeden Distribution. Dieses Kapitel erläutert, wie man den Kernel konfiguriert.

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

Xavier Neys
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

Tobias Heinlein
Übersetzer

Christian Hartmann
Korrektor

Michael Imhof
Korrektor

Donate to support our development efforts.

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