[ << ]
[ < ]
[ 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
# cp /usr/share/zoneinfo/Europe/Brussels /etc/localtime
# 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 AMD64-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.4.9. 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.4.9
|
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.
Als nächstes wird der exakte Prozessortyp ausgewählt. Vom x86_64
Kernel-Maintainer wird dringend empfohlen die MCE-Funktionen zu aktivieren,
damit Sie bei jeglichen Hardwareproblemen benachrichtigt werden können. Auf
x86_64 werden diese Fehler nicht bei dmesg, wie auf anderen
Architekturen, ausgegeben, sondern auf /dev/mcelog. Dies benötigt
das app-admin/mcelog Paket. Stellen Sie sicher dass Sie IA32 Emulation
ausgewählt haben, wenn Sie in der Lage sein wollen 32-Bit-Programme auszuführen.
Gentoo wird standardmäßig ein Multilib-System installieren (gemischte
32-Bit/64-Bit-Verarbeitung), daher ist diese Option erforderlich.
Notiz:
Wenn Sie vorhaben, ein non-multilib-Profil (für ein reines 64-bit-System) zu
verwenden, dann müssen Sie IA32 Emulation nicht auswählen. Sie müssen aber auch
die Anweisungen zum Wechsel
auf ein non-multilib-Profil
befolgen und einen korrekten Bootloader auswählen.
|
Befehlsauflistung 3.2: Auswahl des Prozessortyps und dessen Funktionen |
Processor type and features --->
[ ] Machine Check / overheating reporting
[ ] Intel MCE Features
[ ] AMD MCE Features
Processor family (AMD-Opteron/Athlon64) --->
( ) Opteron/Athlon64/Hammer/K8
( ) Intel P4 / older Netburst based Xeon
( ) Core 2/newer Xeon
( ) Intel Atom
( ) Generic-x86-64
Executable file formats / Emulations --->
[*] IA32 Emulation
|
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 --->
<*> 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)
-*- 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 einen Multi-CPU-Opteron oder ein Multi-Core-System (z.B. AMD64 X2)
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 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
|
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.8: 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.4.9-gentoo durch den Namen und die Version Ihres
Kernels zu ersetzen.
Befehlsauflistung 3.9: Installieren des Kernels |
# cp arch/x86_64/boot/bzImage /boot/kernel-3.4.9-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.10: 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.11: 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.12: 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 ]
[ > ]
[ >> ]
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.
|