Handbuch:PPC/Installation/Kernel
Optional: Firmware und/oder Microcode installieren
Firmware
Bevor wir uns mit den Abschnitten zur Kernelkonfiguration befassen, sollten Sie sich darüber im Klaren sein, dass für einige Hardwaregeräte zusätzliche, manchmal nicht FOSS-konforme Firmware auf dem System installiert werden muss, damit sie korrekt funktionieren. Dies ist häufig der Fall bei drahtlosen Netzwerkschnittstellen, die sowohl in Desktop- als auch in Laptop-Computern zu finden sind. Auch moderne Videochips von Herstellern wie AMD, NVIDIA und Intel benötigen oft externe Firmware-Dateien, um voll funktionsfähig zu sein. Die meiste Firmware für moderne Hardwaregeräte ist im Paket sys-kernel/linux-firmware zu finden.
Es wird empfohlen, das Paket sys-kernel/linux-firmware vor dem ersten Neustart des Systems zu installieren, um die Firmware im Bedarfsfall zur Verfügung zu haben:
root #
emerge --ask sys-kernel/linux-firmware
Die Installation bestimmter Firmware-Pakete erfordert oft das Akzeptieren der zugehörigen Firmware-Lizenzen. Falls erforderlich, finden Sie im Lizenzhandhabungsabschnitt des Handbuchs Hilfe zum Akzeptieren von Lizenzen.
Es ist wichtig zu beachten, dass Kernel-Symbole, die als Module (M) gebaut sind, ihre zugehörige Firmware-Dateien aus dem Dateisystem laden, wenn sie vom Kernel geladen werden. Für Symbole, die als Module geladen werden, ist es nicht notwendig, die Firmware-Dateien des Geräts in das Binärabbild des Kernel aufzunehmen.
Microcode
Neben Grafik- und Netzwerk-Hardware können auch CPUs Firmware-Updates benötigen. Dieser Typ von Firmware wird Microcode genannt. Manchmal sind aktuelle Versionen von Microcode erforderlich, um Stabilitätsprobleme, Sicherheitsprobleme oder andere Bugs in CPU-Hardware zu patchen.
Microcode Updates für AMD CPUs sind in dem bereits genannten Paket sys-kernel/linux-firmware enthalten. Microcode Updates für Intel CPUs sind in dem Paket sys-firmware/intel-microcode enthalten. Dieses muss zusätzlich installiert werden. Weitere Informationen finden Sie im Microcode Artikel, in dem auch beschrieben wird, wie Microcode Updates auf der CPU aktiviert werden.
Kernel konfigurieren und Kompilieren
Nun ist es an der Zeit, die Kernel-Quellen zu konfigurieren und zu kompilieren. Für die Zwecke der Installation werden drei Ansätze für die Kernelverwaltung vorgestellt, jedoch kann zu jedem Zeitpunk nach der Installation ein neuer Ansatz gewählt werden.
In der Reihenfolge vom geringsten bis zum größten Aufwand:
- Full automation approach: Distribution kernels
- A Distribution Kernel is used to configure, automatically build, and install the Linux kernel, its associated modules, and (optionally, but enabled by default) an initramfs file. Future kernel updates are fully automated since they are handled through the package manager, just like any other system package. It is possible provide a custom kernel configuration file if customization is necessary. This is the least involved process and is perfect for new Gentoo users due to it working out-of-the-box and offering minimal involvement from the system administrator.
- Hybrid approach: Genkernel
- New kernel sources are installed via the system package manager. System administrators use Gentoo's genkernel tool to generically configure, automatically build and install the Linux kernel, its associated modules, and (optionally, but not enabled by default) an initramfs file. It is possible provide a custom kernel configuration file if customization is necessary. Future kernel configuration, compilation, and installation require the system administrator's involvement in the form of running eselect kernel, genkernel, and potentially other commands for each update.
- Full manual approach
- New kernel sources are installed via the system package manager. The kernel is manually configured, built, and installed using the eselect kernel and a slew of make commands. Future kernel updates repeat the manual process of configuring, building, and installing the kernel files. This is the most involved process, but offers maximum control over the kernel update process.
- Vollständiger Automatisierungsansatz: Distributionskernel
- Ein Distributionskernel wird verwendet, um den Linux-Kernel, seine dazugehörigen Module und (optional, aber standardmäßig aktiviert) eine initramfs-Datei zu konfigurieren, automatisch zu bauen und zu installieren. Zukünftige Kernel-Aktualisierungen sind vollständig automatisiert, da sie über den Paketmanager abgewickelt werden, genauso wie jedes andere Systempaket. Es ist möglich eine eigene Kernelkonfigurationsdatei bereitzustellen, wenn Anpassungen notwendig sind. Dies ist der am wenigsten aufwendige Prozess und eignet sich perfekt für neue Gentoo-Benutzer, da er sofort funktioniert und nur minimale Eingriffe des Systemadministrators erfordert.
- Hybridansatz: Genkernel
- Neue Kernelquellen werden über den Systempaketmanager installiert. Systemadministratoren benutzen Gentoos genkernel Werkzeug, um den Linux-Kernel, seine dazugehörigen Module und (optional aber nicht standardmäßig aktiviert) eine initramfs-Datei zu konfigurieren, automatisch zu bauen und zu installieren. Es ist möglich, eine benutzerdefinierte Kernelkonfigurationsdatei bereitzustellen, wenn eine Anpassung erforderlich ist. Zukünftige Kernelkonfigurationen, -kompilierungen und -installationen erfordern die Beteiligung des Systemadministrators in Form der Ausführung von eselect kernel, genkernel und möglicherweise andere Befehle für jede Aktualisierung.
- Vollständige manuelle Vorgehensweise
- Neue Kernelquellen werden über den Systempaketmanager installiert. Der Kernel wird manuell konfiguriert, gebaut und installiert unter Verwendung des eselect kernel und einer Reihe von make Befehlen. Künftige Kernel-Updates wiederholen den manuellen Prozess des Konfigurierens, Erstellens und Installieren der Kernel-Dateien. Dies ist der aufwändigste Prozess, bietet aber maximale Kontrolle über den Kernel-Aktualisierungsprozess.
Der Kern, um den alle Distributionen gebaut sind, ist der Linux Kernel. Er ist die Schicht zwischen den Benutzerprogrammen und der Systemhardware. Obwohl das Handbuch seinen Benutzern verschiedene Kernel-Quellen anbietet, ist eine umfassendere Auflistung mit detaillierter Beschreibung auf der Kernel Übersichtsseite verfügbar.
Installieren der Kernel-Quellen
{{Note|Dieser Abschnitt ist nur relevant, wenn Sie den folgenden genkernel} (hybrid) oder manuellen Kernelverwaltungsansatz verwenden.}
Für die Installation und Kompilierung des Kernels für ppc-basierte Systeme empfiehlt Gentoo das Paket sys-kernel/gentoo-sources.
Wählen Sie eine geeignete Kernelquelle und installieren Sie sie mit emerge:
root #
emerge --ask sys-kernel/gentoo-sources
Dieser Befehl installiert die Quellen des Linux-Kernels in dem Verzeichnis /usr/src/. Im Namen des angelegten Unterverzeichnisses steht die Version des Linux-Kernels (beispielsweise /usr/src/linux-4.9.16-gentoo). Der emerge-Befehl erzeugt einen symbolischen Link /usr/src/linux auf dieses Verzeichnis, wenn das USE-Flag symlink
bei dem Paket gesetzt ist.
Es ist gute Praxis, einen Symlink /usr/src/linux auf das Verzeichnis mit dem Source-Code der Kernel-Version zeigen zu lassen, die auf dem System läuft. Dieser Symlink wird nicht automatisch erzeugt. Er kann jedoch einfach mit Hilfe des eselect Kernel Modules erzeugt werden.
Weitere Informationen über Zweck und Handhabung des Symlinks finden Sie unter Kernel/Upgrade.
Lassen Sie eine Liste der installierten Kernel anzeigen:
root #
eselect kernel list
Available kernel symlink targets: [1] linux-3.16.5-gentoo
Mit folgendem Befehl können Sie einen symbolischen Link namens linux anlegen:
root #
eselect kernel set 1
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-3.16.5-gentoo
Alternative: Genkernel
Wenn eine vollständig manuelle Konfiguration zu entmutigend erscheint, sollten Systemadministratoren die Verwendung von genkernel als hybriden Ansatz zur Kernelwartung in Betracht ziehen.
Genkernel stellt eine generische Kernel-Konfigurationsdatei bereit, 'gen'eriert automatisch den 'kernel', initramfs und die zugehörigen Module und installiert dann die resultierenden Binärdateien an den entsprechenden Stellen. Dies führt zu einer minimalen und generischen Hardwareunterstützung für den ersten Systemstart und ermöglicht eine zusätzliche Aktualisierungskontrolle und Anpassung der Kernelkonfiguration in der Zukunft.
Seien Sie informiert: Während die Verwendung von genkernel zur Wartung des Kernels Systemadministratoren mehr Kontrolle über die Aktualisierung des Systemkerns, initramfs und anderer Optionen bietet, erfordert es Zeit und Aufwand, um zukünftige Kernel-Updates durchzuführen, wenn neue Quellen veröffentlicht werden. Diejenigen, die einen hands-off-Ansatz für die Kernelwartung suchen, sollten einen Distributionskernel verwenden.
Es ist ein Missverständnis zu glauben, dass genkernel automatisch eine maßgeschneiderte Kernelkonfiguration für die Hardware, auf der es ausgeführt wird, generiert. genkernel verwendet eine vordefinierte Kernelkonfiguration, die die meiste Hardware unterstützt und automatisch die make-Befehle verarbeitet, die für die Zusammenstellung und Installation des Kernels, der zugehörigen Module und der initramfs-Datei erforderlich sind.
Lizenzgruppe für binär weiterverteilbare Software
Wenn das Paket linux-firmware bereits installiert wurde, fahren Sie mit dem Abschnitt Installation fort.
Da das firmware
USE-Flag standardmäßig für das Paket sys-kernel/genkernel aktiviert ist, wird der Paketmanager versuchen, auch das Paket sys-kernel/linux-firmware zu installieren. Die Binary-Redistributable-Lizenzen für die Software müssen akzeptiert werden, bevor die Linux-Firmware installiert werden kann.
Diese Lizenzgruppe kann systemweit für jedes Paket akzeptiert werden, indem @BINARY-REDISTRIBUTABLE
als ACCEPT_LICENSE Wert in der /etc/portage/make.conf Datei hinzugefügt wird. Sie kann exklusiv für das linux-firmware-Paket akzeptiert werden, indem eine spezifische Einbeziehung über eine /etc/portage/package.license-Datei hinzugefügt wird.
Lesen Sie gegebenenfalls den Abschnitt Methoden Softwarelizenzen zu akzeptieren im Kapitel Installation des Basissystems des Handbuchs, und nehmen Sie dann einige für akzeptable Softwarelizenzen vor.
Wenn Sie sich in einer Analyse-Paralyse befinden, hilft Ihnen das Folgende:
root #
mkdir /etc/portage/package.license
/etc/portage/package.license/linux-firmware
Binäre weiterverteilbare Lizenzen für das linux-firmware-Paket akzeptierensys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
Installation
Abgesehen von den Erklärungen und Voraussetzungen, installieren Sie das Paket sys-kernel/genkernel:
root #
emerge --ask sys-kernel/genkernel
Erstellung
Kompilieren Sie die Kernelquellen, indem Sie genkernel ausführen. Da genkernel einen Kernel kompiliert, der eine breite Palette von Hardware für verschiedene Computerarchitekturen unterstützt, kann diese Kompilierung eine ganze Weile dauern.
Wenn die Wurzelpartition/das Wurzel-Volume ein anderes Dateisystem als ext4 verwendet, kann es notwendig sein, den Kernel mit genkernel --menuconfig all manuell zu konfigurieren, um die eingebaute Kernel-Unterstützung für das/die bestimmte(n) Dateisystem(e) hinzuzufügen (d.h. das Dateisystem nicht als Modul zu bauen).
Benutzer von LVM2 sollten
--lvm
als Argument zum unten stehenden Befehl genkernel hinzufügen.root #
genkernel --mountboot --install all
Sobald genkernel abgeschlossen ist, werden ein Kernel und ein initial ram filesystem (initramfs) erzeugt und in das Verzeichnis /boot installiert. Die zugehörigen Module werden in das Verzeichnis /lib/modules installiert. Das initramfs wird sofort nach dem Laden des Kernels gestartet, um eine automatische Hardware-Erkennung durchzuführen (genau wie in den Live-Disk-Image-Umgebungen).
root #
ls /boot/vmlinu* /boot/initramfs*
root #
ls /lib/modules
Alternative: Manuelle Konfiguration
Einleitung
Einen Kernel manuell zu konfigurieren wird oft als die schwierigste Aufgabe gesehen, die ein Linux Benutzer jemals durchzuführen hat. Nichts ist weiter von der Wahrheit entfernt. Nach der Konfiguration einiger Kernel werden Sie sich nicht mehr daran erinnern, dass es jemals schwer war!
Eine Sache ist jedoch wahr: um einen Kernel manuell konfigurieren zu können, ist es wichtig, das System zu kennen. Die meisten Informationen erhalten Sie durch das Programm lspci, das im Paket sys-apps/pciutils enthalten ist.
root #
emerge --ask sys-apps/pciutils
root #
lspci
root #
lspci -v
Innerhalb der chroot-Umgebung können Sie jegliche pcilib-Warnung (wie pcilib: cannot open /sys/bus/pci/devices) ignorieren, die lspci auswerfen könnte.
Eine weitere Quelle von Systeminformationen ist lsmod. Diese Anweisung zeigt Ihnen, welche Kernel-Module die Installations-CD verwendet. Dies liefert gute Hinweise darauf, was im Kernel aktiviert werden sollte.
Gehen Sie in das Kernel Quellverzeichnis und führen Sie make menuconfig aus. Dies wird eine menübasierte Konfigurationsmaske starten.
root #
cd /usr/src/linux
root #
make menuconfig
Die Linux Kernel-Konfiguration hat viele, viele Abschnitte. Wir listen zunächst einige Optionen auf, die aktiviert werden müssen (ansonsten wird Gentoo nicht funktionieren, oder ohne zusätzliche Veränderungen nicht richtig funktionieren). Wir haben im Gentoo Wiki auch einen Gentoo Kernel-Konfigurationsleitfaden, der weiterhelfen könnte.
Erforderliche Optionen aktivieren
Bei Verwendung des Pakets sys-kernel/gentoo-sources wird dringend empfohlen, die Gentoo-spezifischen Konfigurations-Optionen zu aktivieren. Diese stellen sicher, dass eine Mindestmenge von Kernel-Funktionen vorhanden ist, die für das einwandfreie Funktionieren erforderlich ist:
Gentoo Linux ---> Generic Driver Options ---> [*] Gentoo Linux support [*] Linux dynamic and persistent device naming (userspace devfs) support [*] Select options required by Portage features Support for init systems, system and service managers ---> [*] OpenRC, runit and other script based systems and managers [*] systemd
Die Wahl für die letzten beiden Zeilen sollte natürlich von dem gewählten Init-System abhängen (OpenRC vs. systemd). Es ist kein Fehler, die Unterstützung für beide Init-Systeme zu aktivieren.
Wenn das Paket sys-kernel/vanilla-sources verwendet wird, gibt es die Auswahlmöglichkeiten für das Init-System nicht. Die Aktivierung der notwendigen Kernel-Optionen ist natürlich trotzdem möglich - aber eine Beschreibung würde den Rahmen dieses Handbuchs sprengen.
Unterstützung für typische Systemkomponenten aktivieren
Stellen Sie sicher, dass jeder Treiber, der für das Booten des Systems wichtig ist (z.B. SATA-Controller, NVMe-Blockgeräteunterstützung, Dateisystemunterstützung, usw.), im Kernel und nicht also Modul kompiliert ist, da das System sonst möglicherweise nicht vollständig booten kann.
Als Nächstes wählen Sie den genauen Prozessor-Typ. Es wird auch empfohlen, die MCE-Funktion zu aktivieren (wenn verfügbar), so dass Benutzer bei Hardwareproblemen benachrichtigt werden können. Auf einigen Architekturen (wie z.B. X86_64) werden diese Fehler nicht über dmesg, sondern auf /dev/mcelog ausgegeben. Dies erfordert das Paket app-admin/mcelog.
Wählen Sie auch Maintain a devtmpfs file system to mount at /dev, damit kritische Gerätedateien bereits früh im Boot-Prozess verfügbar sind (CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT):
Device Drivers ---> Generic Driver Options ---> [*] Maintain a devtmpfs filesystem to mount at /dev [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs
Überprüfen Sie, dass SCSI disk Unterstützung aktiviert wurde (CONFIG_BLK_DEV_SD):
Device Drivers ---> SCSI device support ---> <*> SCSI device support <*> SCSI disk support
Device Drivers ---> <*> Serial ATA and Parallel ATA drivers (libata) ---> [*] ATA ACPI Support [*] SATA Port Multiplier support <*> AHCI SATA support (ahci) [*] ATA BMDMA support [*] ATA SFF support (for legacy IDE and PATA) <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)
Überprüfen Sie, ob die grundlegende NVMe-Unterstützung aktiviert wurde:
Device Drivers ---> <*> NVM Express block device
Device Drivers ---> NVME Support ---> <*> NVM Express block device
Es kann nicht schaden, die folgende zusätzliche NVMe-Unterstützung zu aktivieren:
[*] NVMe multipath support [*] NVMe hardware monitoring <M> NVM Express over Fabrics FC host driver <M> NVM Express over Fabrics TCP host driver <M> NVMe Target support [*] NVMe Target Passthrough support <M> NVMe loopback device support <M> NVMe over Fabrics FC target driver < > NVMe over Fabrics FC Transport Loopback Test driver (NEW) <M> NVMe over Fabrics TCP target support
Gehen Sie nun zu den Dateisystemen (File Systems) und aktivieren Sie die Dateisysteme, die auf dem System verwendet werden sollen. Kompilieren Sie das Dateisystem, das als Root-Dateisystem verwendet wird, nicht als Modul. Andernfalls wird das Gentoo-System möglicherweise nicht in der Lage sein, die Root-Partition einzuhängen. Wählen Sie ebenfalls Virtual memory und /proc file system. Wählen Sie eine oder mehrere der folgenden Optionen, die auf dem System benötigt werden:
File systems ---> <*> Second extended fs support <*> The Extended 3 (ext3) filesystem <*> The Extended 4 (ext4) filesystem <*> Btrfs filesystem support DOS/FAT/NT Filesystems ---> <*> MSDOS fs support <*> VFAT (Windows-95) fs support Pseudo Filesystems ---> [*] /proc file system support [*] Tmpfs virtual memory file system support (former shm fs)
Wenn PPPoE für die Internetverbindung, oder ein Einwahl-Modem verwendet wird, aktivieren Sie die folgenden Optionen (CONFIG_PPP, CONFIG_PPP_ASYNC, and CONFIG_PPP_SYNC_TTY):
Device Drivers ---> Network device support ---> <*> PPP (point-to-point protocol) support <*> PPP over Ethernet <*> PPP support for async serial ports <*> PPP support for sync tty ports
Die beiden Komprimierungsoptionen schaden nicht, werden aber auch nicht unbedingt benötigt. Ebenso wenig wie die PPP over Ethernet Option, die vielleicht nur von ppp benötigt wird, wenn 'kernel mode PPPoE' konfiguriert wird.
Vergessen Sie nicht, die Unterstützung von Netzwerkkarten (Ethernet oder Wireless-LAN) zu aktivieren.
Die meisten Systeme haben auch mehrere Prozessorkerne zur Verfügung. Daher ist es wichtig, Symmetric multi-processing support zu aktivieren (CONFIG_SMP):
Processor type and features ---> [*] Symmetric multi-processing support
In Mehrkernsystemen zählt jeder Kern als ein Prozessor.
Wenn Sie USB-Eingabegeräte (wie Tastatur oder Maus) oder andere USB-Geräte verwenden, vergessen Sie nicht, diese ebenfalls zu aktivieren:
Device Drivers ---> HID support ---> -*- HID bus support <*> Generic HID driver [*] Battery level reporting for HID devices USB HID support ---> <*> USB HID transport layer [*] USB support ---> <*> xHCI HCD (USB 3.0) support <*> EHCI HCD (USB 2.0) support <*> OHCI HCD (USB 1.1) support <*> Unified support for USB4 and Thunderbolt --->
Architekturspezifische Konfiguration
Vor dem Beginn der Linux-Kernel-Konfiguration führen Sie
make pmac32_defconfig
aus, um sicherzustellen dass ein Kernel erzeugt wird der auf den meisten 32-Bit PowerPC Systemen bootet:
root #
cd /usr/src/linux
root #
make pmac32_defconfig
root #
make menuconfig
Stellen Sie sicher die Unterstützung für Amiga Partitionen zu aktivieren wenn Sie ein Pegasos System verwenden, oder Macintosh Partitionen falls Sie einen Apple Computer nutzen.
Nutzer von NewWorld und OldWorld Maschinen brauchen ebenfalls HFS Unterstützung. OldWorld Nutzer benötigen es um kompilierte Kernel auf die MacOS Partition zu kopieren. NewWorld Nutzer benötigen es um die besondere Apple_Bootstrap Partition zu konfigurieren:
File Systems ---> Miscellaneous filesystems ---> <M> Apple Macintosh file system support <M> Apple Extended HFS file system support
Vergessen Sie nicht Unterstützung für die richtiger Ethernet-Karte in den Kernel einzubinden! Die meisten neueren Apple Computer verwenden den SunGEM Ethernet-Treiber. Ältere iMacs nutzen für gewöhnlich den BMAC Treiber.
Device Drivers ---> Network device support ---> Ethernet (10 or 100Mbit) ---> [*] Ethernet (10 or 100Mbit) <*> Generic Media Independent Interface device support <*> MACE (Power Mac ethernet) support <*> BMAC (G3 ethernet) support <*> Sun GEM support
Wenn Sie von FireWire booten, aktivieren Sie die folgenden Optionen.
Device Drivers ---> IEEE 1394 (FireWire) support ---> <*> IEEE 1394 (FireWire) support <*> OHCI-1394 support <*> SBP-2 support (Harddisks etc.)
Schalten Sie die Kernel Framebuffer Unterstützung nicht ab, da dies für einen erfolgreichen Bootvorgang notwendig ist. Falls Sie einen NVIDIA basierten Chipsatz nutzen, verwenden sie den Open Firmware Framebuffer. Falls Sie einen ATI basierten Chipsatz nutzen, wählen Sie den Framebuffer-Treiber aufgrund des richtigen Chipsatzes (Mach64, Rage128 oder Radeon).
Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices [*] Open Firmware frame buffer device support <*> ATI Radeon display support <*> ATI Rage128 display support <*> ATI Mach64 display support Console display driver support ---> <*> Framebuffer Console support
Um mehr als ein Framebuffer-Gerät auszuwählen, kann auf einen nicht ganz optimalen Treiber zurückgegriffen werden. Verwenden Sie entweder nur ein Framebuffer-Gerät oder übergeben Sie dem Kernel den zu verwendenden Treiber beim Booten als Video-Parameter wie beispielsweise
video=radeonfb
.Kompilieren und installieren
Mit beendeter Konfiguration ist es an der Zeit den Kernel zu kompilieren und zu installieren. Schließen Sie die Konfiguration und starten Sie den Kompiliervorgang:
root #
make && make modules_install
Es ist möglich parallele Builds durch
make -jX
zu aktivieren. Wobei X die Anzahl der Tasks ist, die der Build-Prozess parallel starten darf. Dies ist ähnlich wie in der Anleitung zu /etc/portage/make.conf, mit der MAKEOPTS
Variable.Wenn der Kernel fertig kompiliert ist, kopieren Sie den Kernel in das Verzeichnis /boot/ wie unterhalb gezeigt. Falls Sie eine separate Boot-Partition verwenden - wie auf Pagasos Computern - stellen Sie sicher, dass sie richtig gemountet ist. Wenn Sie BootX zum Booten verwenden, kopieren wir den Kernel später.
Yaboot and BootX erwarten - anders als viele andere Boot-Loader - die Nutzung eines unkomprimierten Kernels. Der unkomprimierte Kernel wird vmlinux genannt und befindet sich nach dem Ende des Kompilierens im Verzeichnis /usr/src/linux/. Wenn Sie eine Pegasos Maschine verwenden benötigt die Pegasos Firmware einen komprimierten Kernel der zImage genannt wird. Sie finden ihn im Verzeichnis /usr/src/linux/arch/powerpc/boot/images/.
root #
cd /usr/src/linux
Für Apple und IBM:
root #
cp vmlinux /boot/kernel-3.16.5-gentoo
Für Pegasos:
root #
cp arch/powerpc/boot/images/zImage /boot/kernel-3.16.5-gentoo
Optional: initramfs bauen
In bestimmten Fällen ist es notwendig, ein initramfs zu bauen (initial ram-based file system). Der häufigste Grund dafür ist, dass wichtige System-Verzeichnisse (wie /usr/ oder /var/) auf separaten Partitionen liegen. Diese Partitionen können mit Hilfe der Werkzeuge, die im initramfs Verfügbar sind, eingehängt werden.
Ohne initramfs besteht ein Risiko, dass das System nicht richtig bootet, da Werkzeuge, die für das Einhängen der Dateisysteme verantwortlich sind, Informationen benötigen, die sich auf den noch nicht eingehängten Dateisystemen befinden. Ein initramfs zieht die notwendigen Dateien in ein Archiv, welches genutzt werden kann, nachdem der Kernel gebootet ist, aber noch bevor die Kontrolle an das Init-Tool übergeben wird. Skripte auf dem initramfs stellen dann sicher, dass die Partitionen richtig eingehängt sind, bevor das System mit dem Booten fortfährt.
Wenn genkernel verwendet wird, sollte es sowohl zum Bauen des Kernels, als auch zum Bauen von initramfs verwendet werden. Wenn genkernel lediglich zum Erzeugen von initramfs verwendet wird, ist es wichtig, die Option
--kernel-config=/path/to/kernel.config
an genkernel zu übergeben. Andernfalls kann es sein, dass das generierte initramfs nicht mit einem manuell erzeugten Kernel funktioniert. Bitte beachten Sie, dass manuell kompilierte Kernel über den Umfang dieses Handbuchs hinausgehen. Weitere Informationen finden Sie in dem kernel configuration Artikel.Um ein initramfs zu installieren, installieren Sie zunächst das Paket sys-kernel/dracut. Lassen Sie das Tool anschließend ein initramfs erzeugen:
root #
emerge --ask sys-kernel/dracut
root #
dracut --kver=3.16.5-gentoo
Das initramfs wird in /boot/ gespeichert. Die resultierende Datei kann einfach durch Auflisten der mit initramfs beginnenden Dateien gefunden werden:
root #
ls /boot/initramfs*
Gehen Sie nun zum Abschnitt Kernel-Module.
Kernel-Module
Auflistung der verfügbaren Kernelmodule
Hardware-Module manuell aufzulisten ist optional. In den meisten Fällen werden alle Hardwaremodule, die als angeschlossen erkannt werden, von udev geladen. Es ist jedoch nicht schädlich, wenn Module, die automatisch geladen werden, aufgelistet werden. Module können nicht zweimal geladen werden; sie werden entweder geladen oder nicht geladen. Manchmal benötigt exotische Hardware Hilfe, um ihre Treiber zu laden.
Die Module, die bei jedem Bootvorgang geladen werden müssen, können in die Dateien /etc/modules-load.d/*.conf im Format eines Moduls pro Zeile eingetragen werden. Wenn zusätzliche Optionen für die Module benötigt werden, sollten diese stattdessen in /etc/modprobe.d/*.conf-Dateien gesetzt werden.
Um alle Module anzuzeigen, die für eine bestimmte Kernelversion verfügbar sind, geben Sie den folgenden Befehl find ein. Vergessen Sie nicht, "<Kernelversion>" durch die entsprechende Version des zu durchsuchenden Kernels zu ersetzen:
root #
find /lib/modules/<Kernelversion>/ -type f -iname '*.o' -or -iname '*.ko' | less
Erzwingung des Ladens bestimmter Kernelmodule
Um den Kernel zu zwingen, das Modul 3c59x.ko (den Treiber für eine bestimmte 3Com-Netzwerkkartenfamilie) zu laden, bearbeiten Sie die Datei /etc/modules-load.d/network.conf und geben Sie den Modulnamen darin in.
root #
mkdir -p /etc/modules-load.d
root #
nano -w /etc/modules-load.d/network.conf
Beachten Sie, dass das Dateisuffix .ko des Moduls für den Lademechanismus unbedeutend ist und in der Konfigurationsdatei weggelassen wird:
/etc/modules-load.d/network.conf
Laden des 3c59x Moduls erzwingen3c59x
Setzen Sie die Installation mit der Konfiguration des Systems fort.