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. Dazu
suchen Sie sich unter /usr/share/zoneinfo die entsprechende
Zeitzone aus und verlinken sie mit ln nach /etc/localtime:
Befehlsauflistung 1.1: Setzen der Zeitzone |
# ls /usr/share/zoneinfo
# ln -sf /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.
Befehlsauflistung 2.1: Installieren einer Kernelquelle |
# emerge gentoo-sources
|
Wenn Sie einen Blick in /usr/src werfen, sollten Sie einen Symlink
sehen, genannt linux, der auf Ihre Kernelquelle verweist. Wir gehen
davon aus, dass die Kernelsourcen gentoo-sources-2.6.11-r3 installiert
sind:
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.11-gentoo-r3
|
Wenn das nicht der Fall ist (also der Symlink auf eine andere Kernelquelle
verweist) ändern Sie den Symlink bevor sie weitermachen. Beachten Sie, dass
linux-2.6.11-gentoo-r3 nur ein Beispiel ist!
Befehlsauflistung 2.3: Ändern des Kernelquellen-Symlinks |
# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.11-gentoo-r3 linux
|
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) --->
(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. Wählen
Sie nicht /dev file system.
Befehlsauflistung 3.3: Selektieren notwendiger Dateisysteme |
File systems --->
Pseudo Filesystems --->
<*> /proc file system support
< > /dev file system support (OBSOLETE)
<*> Virtual memory file system support (former shm fs)
<*> 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
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
--- 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. Im nächsten Beispiel nehmen wir an, dass Sie die
gentoo-sources in Version 2.6.11-r3 konfiguriert und kompiliert haben.
Benutzen Sie einen beliebigen Namen, merken Sie sich diesen jedoch, da wir ihn
später noch zur Konfiguration des Bootloader benötigen.
Befehlsauflistung 3.10: Installieren des Kernels |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3
|
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.11-gentoo-r3
|
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
|
Kopieren Sie nun die Kernel-Konfiguration
von der Installations-CD an die Stelle, an der genkernel nach der
Standardkonfiguration schaut:
Befehlsauflistung 4.2: Kopieren der Kernel-Konfiguration der Installations-CD |
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6
|
Kompilieren Sie nun Ihre Kernelquellen durch genkernel --udev 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.3: Ausführen von Genkernel |
# genkernel --udev 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.4: Kontrollieren des Kernel-Image-Namen und der initrd |
# ls /boot/kernel* /boot/initrd*
|
Nun lassen Sie uns einen weiteren Schritt tun, der unser System dazu bringt mehr
wie die Installations-CD zu sein -- emergen Sie cotplug.
Während die initrd die Hardware automatisch erkennt, die nötig ist um Ihr
System zu starten, wird coldplug automatisch alles andere erkennen.
coldplug steht als Paket auf einer unserer Paket-CDs bereit.
Befehlsauflistung 4.5: Emergen und aktivieren von coldplug |
# emerge -k 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 |
# 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 ]
[ > ]
[ >> ]
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.
|