OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

8.3.1. Installation des Kernels

Der Aufbau des Kernels umfasst einige Schritte: Konfiguration, Kompilierung und Installation. Lies das README finden Sie in der Datei im Kernel-Quellbaum alternative Methoden zur Konfiguration des Kernels in diesem Buch.

Bereiten Sie die Kompilierung vor, indem Sie den folgenden Befehl ausführen:


mrrichtig machen

mrrichtig machen


Dadurch wird sichergestellt, dass der Kernelbaum absolut sauber ist. Das Kernel-Team empfiehlt, diesen Befehl vor jeder Kernel-Kompilierung abzugeben. Verlassen Sie sich nicht darauf, dass der Quellbaum nach dem Enttarnen sauber ist.

Konfigurieren Sie den Kernel über eine menügesteuerte Oberfläche. Allgemeine Informationen zur Kernel-Konfiguration finden Sie unter http://www. linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt. BLFS bietet einige Informationen zu bestimmten Kernel-Konfigurationsanforderungen von Paketen außerhalb von LFS unter http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index. Weitere Informationen zum Konfigurieren und Erstellen des Kernels finden Sie unter http://www.kroah.com/lkn/


Image

Note

Ein guter Ausgangspunkt zum Einrichten der Kernel-Konfiguration ist die Ausführung mache defconfig. Dadurch wird die Basiskonfiguration auf einen guten Zustand eingestellt, der Ihre aktuelle Systemarchitektur berücksichtigt.

Stellen Sie sicher, dass Sie die folgenden Funktionen aktivieren/deaktivieren/einstellen, da das System sonst möglicherweise nicht ordnungsgemäß funktioniert oder überhaupt nicht startet:


Gerätetreiber --->

Allgemeine Treiberoptionen --->

[ ] Unterstützung für uevent-Helper [CONFIG_UEVENT_HELPER]

[*] Pflegen Sie ein devtmpfs-Dateisystem zum Mounten unter /dev [CONFIG_DEVTMPFS]


Kernel-Hacking --->

Wählen Sie den Kernel-Unwinder (Frame-Pointer-Unwinder) ---> [CONFIG_UNWINDE


Abhängig von den Anforderungen an das System können mehrere weitere Optionen wünschenswert sein. Eine Liste der für BLFS-Pakete erforderlichen Optionen finden Sie im BLFS-Index der Kernel-Einstellungen (http://www.linuxfromscratch.org/blfs/view/9.0/longindex.html#kernel-config-index).


Image

Note

Wenn Ihre Host-Hardware UEFI verwendet, sollte das obige „make defconfig“ automatisch einige EFI-bezogene Kernel-Optionen hinzufügen.

Damit Ihr LFS-Kernel aus der UEFI-Boot-Umgebung Ihres Hosts gebootet werden kann, muss in Ihrem Kernel diese Option ausgewählt sein:


Prozessortyp und Funktionen

[*]

--->

[CONFIG_EFI_STUB]

Prozessortyp und Funktionen

[*]


EFI-Stub-Unterstützung

EFI-Stub-Unterstützung

Eine ausführlichere Beschreibung der Verwaltung von UEFI-Umgebungen innerhalb von LFS finden Sie im lfs-uefi.txt-Hinweis unter

http://www.linuxfromscratch.org/hints/downloads/files/lfs-uefi.txt.


Die Begründung für die oben genannten Konfigurationselemente:

Unterstützung für den uevent-Helfer

Wenn diese Option aktiviert ist, kann es bei der Verwendung von Udev/Eudev zu Störungen bei der Geräteverwaltung kommen.

Pflegen Sie ein devtmpfs

Dadurch werden automatisierte Geräteknoten erstellt, die vom Kernel bevölkert werden, auch ohne dass Udev ausgeführt wird. Darauf läuft dann Udev, verwaltet Berechtigungen und fügt symbolische Links hinzu. Dieses Konfigurationselement ist für alle Benutzer von Udev/Eudev erforderlich.


Mache menuconfig

Mache menuconfig

Die Bedeutung optionaler Make-Umgebungsvariablen:

LANG= LC_ALL=

Dadurch wird die Gebietsschemaeinstellung auf die auf dem Host verwendete festgelegt. Dies kann für eine ordnungsgemäße Linienzeichnung der menuconfig ncurses-Schnittstelle auf einer UTF-8-Linux-Textkonsole erforderlich sein.

Wenn es verwendet wird, ersetzen Sie es unbedingt durch den Wert der $LANG Variable von Ihrem Host. Alternativ können Sie stattdessen den Wert des Hosts verwenden $LC_ALL or $LC_CTYPE.

Alternativ mache oldconfig kann in manchen Situationen angemessener sein. Siehe die README Datei für weitere Informationen.

Überspringen Sie bei Bedarf die Kernel-Konfiguration, indem Sie die Kernel-Konfigurationsdatei kopieren. .config, vom Host-System (vorausgesetzt, es ist verfügbar) zum Entpackten Linux-5.2.8 Verzeichnis. Wir empfehlen diese Option jedoch nicht. Oft ist es besser, alle Konfigurationsmenüs zu erkunden und die Kernel-Konfiguration von Grund auf zu erstellen.

Kompilieren Sie das Kernel-Image und die Module:


um

um

Wenn Sie Kernelmodule verwenden, Modulkonfiguration in /etc/modprobe.d wird vielleicht benötigt. Informationen zu Modulen und Kernel-Konfiguration finden Sie in Abschnitt 7.3, „Überblick über die Geräte- und Modulhandhabung“ und in der Kernel-Dokumentation im linux-5.2.8/Dokumentation Verzeichnis. Auch, modprobe.d(5) Kann von Interesse sein.

Installieren Sie die Module, wenn die Kernel-Konfiguration sie verwendet:


make module_install

make module_install

Nachdem die Kernel-Kompilierung abgeschlossen ist, sind weitere Schritte erforderlich, um die Installation abzuschließen. Einige Dateien müssen kopiert werden / boot Verzeichnis.


Vorsicht

Wenn das Hostsystem über eine separate /boot-Partition verfügt, sollten die unten kopierten Dateien dorthin gelangen. Der einfachste Weg, dies zu tun, besteht darin, /boot auf dem Host (außerhalb von Chroot) an /mnt/lfs/boot zu binden, bevor Sie fortfahren. Als Root-Benutzer im Host-System:

Vorsicht

Wenn das Hostsystem über eine separate /boot-Partition verfügt, sollten die unten kopierten Dateien dorthin gelangen. Der einfachste Weg, dies zu tun, besteht darin, /boot auf dem Host (außerhalb von Chroot) an /mnt/lfs/boot zu binden, bevor Sie fortfahren. Als Root-Benutzer im Host-System:

Image

mount --bind /boot /mnt/lfs/boot

mount --bind /boot /mnt/lfs/boot

Der Pfad zum Kernel-Image kann je nach verwendeter Plattform variieren. Der Dateiname unten kann nach Ihrem Geschmack geändert werden, der Stamm des Dateinamens sollte es jedoch sein vmlinuz um mit der im nächsten Abschnitt beschriebenen automatischen Einrichtung des Bootvorgangs kompatibel zu sein. Der folgende Befehl setzt eine x86-Architektur voraus:


cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0

cp -iv arch/x86/boot/bzImage /boot/vmlinuz-5.2.8-lfs-9.0

System.map ist eine Symboldatei für den Kernel. Es bildet die Funktionseintrittspunkte jeder Funktion in der Kernel-API sowie die Adressen der Kernel-Datenstrukturen für den laufenden Kernel ab. Es wird als Ressource bei der Untersuchung von Kernelproblemen verwendet. Geben Sie den folgenden Befehl ein, um die Kartendatei zu installieren:


cp -iv System.map /boot/System.map-5.2.8

cp -iv System.map /boot/System.map-5.2.8

Die Kernel-Konfigurationsdatei .config produziert von der Mache menuconfig Der obige Schritt enthält alle Konfigurationsoptionen für den Kernel, der gerade kompiliert wurde. Es empfiehlt sich, diese Datei zum späteren Nachschlagen aufzubewahren:


cp -iv .config /boot/config-5.2.8

cp -iv .config /boot/config-5.2.8

Installieren Sie die Dokumentation für den Linux-Kernel:


installiere -d /usr/share/doc/linux-5.2.8

cp -r Documentation/* /usr/share/doc/linux-5.2.8

installiere -d /usr/share/doc/linux-5.2.8

cp -r Documentation/* /usr/share/doc/linux-5.2.8

Image

Image

Es ist wichtig zu beachten, dass die Dateien im Kernel-Quellverzeichnis nicht Eigentum von sind Wurzel. Immer wenn ein Paket als Benutzer entpackt wird Wurzel (wie wir es in chroot getan haben) haben die Dateien die Benutzer- und Gruppen-IDs von allem, was sie auf dem Computer des Paketierers waren. Für andere zu installierende Pakete stellt dies normalerweise kein Problem dar, da der Quellbaum nach der Installation entfernt wird. Allerdings bleibt der Linux-Quellbaum oft lange erhalten. Aus diesem Grund besteht die Möglichkeit, dass die vom Paketierer verwendete Benutzer-ID jemandem auf dem Computer zugewiesen wird. Diese Person hätte dann Schreibzugriff auf die Kernel-Quelle.


Note

In vielen Fällen muss die Konfiguration des Kernels für Pakete aktualisiert werden, die später in BLFS installiert werden. Im Gegensatz zu anderen Paketen ist es nicht erforderlich, den Kernel-Quellbaum zu entfernen, nachdem der neu erstellte Kernel installiert wurde.

Wenn der Kernel-Quellbaum beibehalten werden soll, führen Sie ihn aus chown -R 0:0 auf die Linux-5.2.8 Verzeichnis, um sicherzustellen, dass alle Dateien dem Benutzer gehören Wurzel.

Note

In vielen Fällen muss die Konfiguration des Kernels für Pakete aktualisiert werden, die später in BLFS installiert werden. Im Gegensatz zu anderen Paketen ist es nicht erforderlich, den Kernel-Quellbaum zu entfernen, nachdem der neu erstellte Kernel installiert wurde.

Wenn der Kernel-Quellbaum beibehalten werden soll, führen Sie ihn aus chown -R 0:0 auf die Linux-5.2.8 Verzeichnis, um sicherzustellen, dass alle Dateien dem Benutzer gehören Wurzel.


Warnung

Einige Kernel-Dokumentationen empfehlen die Erstellung eines Symlinks von /usr/src/linux zeigt auf das Kernel-Quellverzeichnis. Dies gilt speziell für Kernel vor der 2.6-Serie und Muss nicht auf einem LFS-System erstellt werden, da es Probleme bei Paketen verursachen kann, die Sie möglicherweise erstellen möchten, sobald Ihr Basis-LFS-System fertig ist.

Warnung

Einige Kernel-Dokumentationen empfehlen die Erstellung eines Symlinks von /usr/src/linux zeigt auf das Kernel-Quellverzeichnis. Dies gilt speziell für Kernel vor der 2.6-Serie und Muss nicht auf einem LFS-System erstellt werden, da es Probleme bei Paketen verursachen kann, die Sie möglicherweise erstellen möchten, sobald Ihr Basis-LFS-System fertig ist.


Warnung

Die Header im System das Verzeichnis (/ usr / include) sollte immer Dies können diejenigen sein, mit denen Glibc kompiliert wurde, d. h. die bereinigten Header, die in Abschnitt 6.7, „Linux-5.2.8-API-Header“ installiert sind. Deshalb sollten sie hört niemals entweder durch die rohen Kernel-Header oder andere vom Kernel bereinigte Header ersetzt werden.

Warnung

Die Header im System das Verzeichnis (/ usr / include) sollte immer Dies können diejenigen sein, mit denen Glibc kompiliert wurde, d. h. die bereinigten Header, die in Abschnitt 6.7, „Linux-5.2.8-API-Header“ installiert sind. Deshalb sollten sie hört niemals entweder durch die rohen Kernel-Header oder andere vom Kernel bereinigte Header ersetzt werden.


Image

Top OS Cloud Computing bei OnWorks: