Handbook:Parts/Installation/Kernel/de

Firmware
Bevor wir mit der Konfiguration des Kernels beginnen, ist es sinnvoll darauf hinzuweisen, dass einige Geräte zusätzliche Firmware benötigen, bevor sie funktionieren. Dies ist häufig bei Netzwerkkarten der Fall, insbesondere bei WLAN Interfaces - sowohl bei Desktop-Rechnern, als auch bei Notebooks. Auch moderne Video-Chips von Herstellern wie AMD, NVidia und Intel benötigen häufig externe Firmware-Dateien, um vollständig zu funktionieren. Die meiste Firmware für moderne Hardware befindet sich in dem Paket. Auf Systemen mit Grafikkarten der genannten Hersteller ist es sinnvoll, dieses Paket zu installieren, bevor man den Kernel konfiguriert und kompiliert.

It is recommended to have the package installed before the initial system reboot in order to have the firmware available in the event that it is necessary:

It is important to note that kernel symbols that are built as modules (M) will load their associated firmware files from the filesystem when they are loaded by the kernel. It is not necessary to include the device's firmware files into the kernel's binary image for symbols loaded as modules.

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 enthalten. Microcode Updates für Intel CPUs sind in dem Paket enthalten. Dieses muss zusätzlich installiert werden. Weitere Informationen finden Sie in dem Microcode article, in dem auch beschrieben wird, wie Microcode Updates auf der CPU aktiviert werden.

Kernel konfigurieren und Kompilieren
Jetzt ist es Zeit, die Kernel-Quellen zu konfigurieren und zu kompilieren. Dafür gibt es drei Ansätze:

Ranked from least involved to most involved:


 * 1) Der Kernel wird manuell konfiguriert und gebaut.
 * 2) Ein Tool namens  wird verwendet, um den Linux Kernel automatisch zu bauen und zu installieren.
 * 3) Ein Distribution Kernel wird verwendet, um den Linux Kernel automatisch zu bauen und zu installieren. Dabei erfolgt die Installation genauso wie bei jedem anderen Gentoo-Paket.

Der Kern, um den alle Distributionen gebaut sind, ist der Linux Kernel. Er ist die Schicht zwischen den Benutzerprogrammen und der Systemhardware. Gentoo bietet seinen Benutzern verschiedene Kernel-Quellen. Eine komplette Liste mit einer Beschreibung finden Sie auf der Kernel Übersichtsseite.

Installieren der Kernel-Quellen
When installing and compiling the kernel for -based systems, Gentoo recommends the package.

Choose an appropriate kernel source and install it using :

Dieser Befehl installiert die Quellen des Linux-Kernels in dem Verzeichnis. 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 auf dieses Verzeichnis, wenn das USE-Flag   bei dem Paket gesetzt ist.

Es ist gute Praxis, einen Symlink 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:

Mit folgendem Befehl können Sie einen symbolischen Link namens anlegen:

Alternative: Genkernel
Wenn eine manuelle Konfiguration für Sie zu abschreckend aussieht, könnten Sie in Erwägung ziehen. Dies wird den Kernel automatisch konfigurieren und bauen.

Genkernel provides a generic kernel configuration file, automatically generates the kernel, initramfs, and associated modules, and then installs the resulting binaries to the appropriate locations. This results in minimal and generic hardware support for the system's first boot, and allows for additional update control and customization of the kernel's configuration in the future.

Be informed: while using to maintain the kernel provides system administrators with more update control over the system's kernel, initramfs, and other options, it will require a time and effort commitment to perform future kernel updates as new sources are released. Those looking for a hands-off approach to kernel maintenance should use a distribution kernel.

For additional clarity, it is a misconception to believe genkernel automatically generates a custom kernel configuration for the hardware on which it is run; it uses a predetermined kernel configuration that supports most generic hardware and automatically handles the commands necessary to assemble and install the kernel, the associate modules, and the initramfs file.

Binary redistributable software license group
If the linux-firmware package has been previously installed, then skip onward to the to the installation section.

As a prerequisite, due to the  USE flag being enabled by default for the  package, the package manager will also attempt to pull in the  package. The binary redistributable software licenses are required to be accepted before the linux-firmware will install.

This license group can be accepted system-wide for any package by adding the  as an ACCEPT_LICENSE value in the  file. It can be exclusively accepted for the linux-firmware package by adding a specific inclusion via a file.

If necessary, review the methods of accepting software licenses available in the Installing the base system chapter of the handbook, then make some changes for acceptable software licenses.

If in analysis paralysis, the following will do the trick:

Installation
Schauen wir uns nun an, wie man genkernel verwendet. Installieren Sie als erstes das Paket :

Generation
Kompilieren Sie jetzt die Kernel-Quellen, indem Sie ausführen. Seien Sie sich aber bewusst, dass der Vorgang einige Zeit in Anspruch nehmen wird, da einen Kernel kompiliert, der fast alle Hardware unterstützt!

Wenn genkernel fertig ist, wird ein Kernel, ein voller Satz Module und ein initial ram filesystem (initramfs) erstellt worden sein. Wir verwenden den Kernel und die initrd bei der Konfiguration des Boot-Loader später in dieser Anleitung. Schreiben Sie sich die Namen des Kernels und der initrd auf, da Sie diese Information benötigen, wenn die Boot-Loader Konfigurationsdatei bearbeitet wird. Die initrd wird sofort nach dem Booten gestartet, um die automatische Hardware-Erkennung durchzuführen (wie bei der Installations-CD). Danach wird das "richtige" System gestartet.

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, das im Paket enthalten ist.

Eine weitere Quelle von Systeminformationen ist. 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 aus. Dies wird eine menübasierte Konfigurationsmaske starten.

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 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:

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 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, sondern auf ausgegeben. Dies erfordert das Paket.

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 ):

Überprüfen Sie, dass SCSI disk Unterstützung aktiviert wurde ( CONFIG_BLK_DEV_SD ):

Überprüfen Sie, ob die grundlegende NVMe-Unterstützung aktiviert wurde:

Es kann nicht schaden, die folgende zusätzliche NVMe-Unterstützung zu aktivieren:

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:

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 ):

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 ):

Wenn Sie USB-Eingabegeräte (wie Tastatur oder Maus) oder andere USB-Geräte verwenden, vergessen Sie nicht, diese ebenfalls zu aktivieren:

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 oder ) 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.

Um ein initramfs zu installieren, installieren Sie zunächst das Paket. Lassen Sie das Tool anschließend ein initramfs erzeugen:

Das initramfs wird in gespeichert. Die resultierende Datei kann einfach durch Auflisten der mit initramfs beginnenden Dateien gefunden werden:

Gehen Sie nun zum Abschnitt Kernel-Module.

Auflistung der verfügbaren Kernelmodule
Die Module, die bei jedem Bootvorgang geladen werden müssen, können in die Dateien im Format eines Moduls pro Zeile eingetragen werden. Wenn zusätzliche Optionen für die Module benötigt werden, sollten diese stattdessen in -Dateien gesetzt werden.

Um alle Module anzuzeigen, die für eine bestimmte Kernelversion verfügbar sind, geben Sie den folgenden Befehl ein. Vergessen Sie nicht, "" durch die entsprechende Version des zu durchsuchenden Kernels zu ersetzen:

Erzwingung des Ladens bestimmter Kernelmodule
Um den Kernel zu zwingen, das Modul (den Treiber für eine bestimmte 3Com-Netzwerkkartenfamilie) zu laden, bearbeiten Sie die Datei  und geben Sie den Modulnamen darin in.

Beachten Sie, dass das Dateisuffix des Moduls für den Lademechanismus unbedeutend ist und in der Konfigurationsdatei weggelassen wird:

Setzten Sie die Installation mit der Konfiguration des Systems fort.