[ << ]
[ < ]
[ 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 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. 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 SPARC-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 der Kernelquellen |
# 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
linux-3.3.8. Beachten Sie, dass Ihre Version
davon abweichen 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-3.3.8
|
Nun ist es Zeit Ihre Kernelquellen zu konfigurieren und zu kompilieren.
7.c. 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 ;-)
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 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-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
Zuerst setzen wir die richtigen Cross-Kompilierungs-Einstellungen um
sicherzustellen, dass der Linux-Kernel für den richtigen System-Typ gebaut wird.
Um das zu tun, setzen Sie Cross-compiler tool prefix auf
sparc64-unknown-linux-gnu- (einschließlich des Bindestrichs am Ende):
Befehlsauflistung 3.2: Identifizieren der richtigen Cross-Kompilierungs-Plattform |
General setup --->
(sparc64-unknown-linux-gnu-) Cross-compiler tool prefix
|
Gehen Sie dann 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 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)
<*> Ext3 journalling file system support
<*> Second extended fs 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.4: Auswählen notwendiger Treiber 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 vielleicht
nur von ppp verwendet wird, wenn der Kernelmodus PPPoE benutzt wird.
Aktivieren Sie zuerst die korrekte Bus-Unterstützung:
Befehlsauflistung 3.5: Aktivieren von SBUS/UPA |
Console drivers --->
Frame-buffer support --->
[*] SBUS and UPA framebuffers
[*] Creator/Creator3D support
[*] CGsix (GX,TurboGX) support
|
Natürlich wollen Sie Unterstützung für die OBP:
Befehlsauflistung 3.6: Aktivieren von OBP Unterstützung |
Misc Linux/SPARC drivers --->
[*] /dev/openprom device support
|
Sie werden auch SCSI-spezifische Unterstützung benötigen:
Befehlsauflistung 3.7: Aktivieren von SCSI-spezifischer Unterstützung |
SCSI support --->
SCSI low-level drivers --->
<*> Sparc ESP Scsi Driver
<*> PTI Qlogic, ISP Driver
<*> SYM53C8XX Version 2 SCSI support
|
Um Ihre Netzwerkkarte zu unterstützen, wählen Sie eines der folgenden:
Befehlsauflistung 3.8: Aktivieren von Neztwerkunterstützung |
Network device support --->
Ethernet (10 or 100Mbit) --->
<*> Sun LANCE support
<*> Sun Happy Meal 10/100baseT support
|
Wenn Sie einen 4-Port Ethernet Rechner haben (10/100 oder 10/100/1000) ist die
Port Reihenfolge anders als unter Solaris. Sie können sys-apps/ethtool
verwenden um den Port-Link Status zu überprüfen.
Wenn Sie einen qla2xxx Disk-Controller verwenden, müssen Sie mindestens einen
2.6.27 Kernel verwenden. Weiterhin müssen Sie sys-block/qla-fc-firmware
emergen. Führen Sie dann make menuconfig aus und navigieren Sie zum
Abschnitt Device Drivers. Sie müssen Unterstützung zum Laden externer Firmware
aktivieren.
Befehlsauflistung 3.9: Aktivieren externer Firmware |
Device Drivers --->
Generic Driver Options --->
() External firmware blobs to build into the kernel binary
() Firmware blobs root directory
|
Setzen Sie "External firmware blobs" auf ql2200_fw.bin und
"Firmware blobs root directory" auf /lib/firmware.
Wenn Sie die Konfiguration des Kernel beendet haben fahren Sie mit Kompilieren und Installieren fort.
Überprüfen Sie aber nach dem kompilieren des Kernels seine Größe:
Befehlsauflistung 3.10: Überprüfen der Kernelgröße |
# ls -lh vmlinux
-rw-r--r-- 1 root root 2.4M Oct 25 14:38 vmlinux
|
Wenn die (unkomprimierte) Größe größer ist als 7.5MB, konfigurieren Sie den
Kernel solange erneut, bis der Kernel diese Grenzen nicht mehr überschreitet.
Ein Weg dies zu erledigen ist die Kompilation der meisten Kernel Treiber als
Module. Ignoriert man dies, kann es dazu führen dass der Kernel nicht bootet.
Wenn ihr Kernel nur ein bisschen zu groß ist, können Sie versuchen ihn mit dem
Befehl strip zu verkleinern:
Befehlsauflistung 3.11: Strippen des Kernels |
# strip -R .comment -R .note vmlinux
|
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.12: Kompilieren des Kernels |
# make && make modules_install
|
Wenn der Kernel fertig ist mit der Kompilierung, kopieren Sie das Kernel-Image
nach /boot.
Befehlsauflistung 3.13: Installieren des Kernels |
# cp arch/sparc/boot/image /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.14: 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.15: 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.16: Finden der initramfs-Datei |
# ls /boot/initramfs*
|
Fahren Sie nun mit den Kernelmodulen fort.
7.d. 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 4.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 4.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.
|