8.3. Linux-2.6.22.5

Das Paket Linux enthält den Linux-Kernel.

Geschätzte Kompilierzeit: 1,5 - 3,5 SBU
Ungefähr benötigter Festplattenplatz: 350 - 450 MB

8.3.1. Installation des Kernel

Kompilieren und Installieren des Kernels sind im Grunde nur ein paar Schritte — Konfigurieren, kompilieren und installieren. Falls Sie die hier benutzte Methode nicht mögen, schauen Sie in der Datei README im Kernel-Quellordner nach Alternativen.

Bereiten Sie den Kompiliervorgang mit dem folgenden Kommando vor:

make mrproper

Hierdurch wird sichergestellt, dass der Kernel-Baum absolut sauber ist. Das Kernel-Team empfiehlt, dieses Kommando vor jedem Kompilieren des Kernels auszuführen. Sie sollten sich nicht darauf verlassen, dass die Quellen nach dem Entpacken sauber sind.

Richten Sie den Kernel nun mit der menügeführten Oberfläche ein. In BLFS finden Sie unter http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index einige Informationen zu bestimmten Kernel-Voraussetzungen von Software außerhalb von LFS:

make LANG=<host_LANG_Wert> LC_ALL= menuconfig

Die Bedeutung der make-Parameter:

LANG=<host_LANG_Wert> LC_ALL=

Dies stellt die Locale-Einstellung auf die vom Host verwendete ein. Benötigt wird dies zur korrekten Darstellung der Ncurses-Fensterrahmen von menuconfig in der UTF-8-basierten Textkonsole.

Ersetzen Sie <host_LANG_Wert> durch den Wert von $LANG ihres Host-Rechners. Wenn diese Variable nicht gesetzt ist, können Sie anstelle dessen den Wert aus $LC_ALL oder $LC_CTYPE übernehmen.

make oldconfig könnte in einigen Fällen besser geeignet sein. Schauen Sie in die Datei README, um mehr Informationen zu erhalten.

Wenn Sie möchten, können Sie die Kernelkonfiguration überspringen und einfach die Kernel-Konfigurationsdatei .config von Ihrem Host-System nach linux-2.6.22.5 kopieren (falls sie verfügbar ist). Das wird allerdings nicht empfohlen, Sie sind besser dran, wenn Sie alle Konfigurationsmenüs durchsehen und Ihre eigene Kernelkonfiguration einrichten.

Kompilieren Sie das Kernel-Abbild und die Module:

make

Wenn Sie Kernel-Module verwenden, brauchen Sie wahrscheinlich die Datei /etc/modprobe.conf. Informationen zu Modulen und Kernelkonfiguration im Allgemeinen finden Sie unter Abschnitt 7.4, „Umgang mit Geräten und Modulen an einem LFS-System“ und in der Dokumentation zum Kernel linux-2.6.22.5. Auch modprobe.conf(5) enthält nützliche Informationen.

Installieren Sie die Module, falls Ihre Kernelkonfiguration solche verwendet:

make modules_install

Das Kompilieren des Kernel ist nun abgeschlossen, aber einige der erzeugten Dateien befinden sich noch im Quellordner. Um die Installation abzuschließen, müssen Sie noch ein paar Dateien in den Ordner /boot kopieren.

Der Pfad zur Kerneldatei variiert, abhängig von der benutzten Plattform auf der Sie arbeiten. Das folgende Kommando geht von einem x86-System aus:

cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5

System.map ist eine Symboldatei für den Kernel. Sie ordnet Funktions-Einstiegspunkte jeder Funktion in der Kernel-API sowie Adressen der Kernel-Datenstrukturen zu. Geben Sie das folgende Kommando ein, um die Datei zu installieren:

cp -v System.map /boot/System.map-2.6.22.5

.config ist die Kernel-Konfigurationsdatei, die durch das obige Kommando make menuconfig erzeugt wurde. Sie enthält alle Konfigurationsoptionen für den soeben kompilierten Kernel. Es ist sinnvoll, diese Datei aufzubewahren:

cp -v .config /boot/config-2.6.22.5

Installieren Sie die Dokumentation zum Linux-Kernel:

install -d /usr/share/doc/linux-2.6.22.5
cp -r Documentation/* /usr/share/doc/linux-2.6.22.5

Beachten Sie bitte, dass die Dateien im Kernel-Quellordner nicht root gehören. Immer, wenn Sie ein Paket als root-Benutzer entpacken (so wie Sie es hier im chroot tun), erhalten die entpackten Dateien die Benutzer- und Gruppen ID desjenigen, der das Archiv erstellt hat. Das ist üblicherweise für normale Pakete kein Problem, weil Sie den Quellordner nach der Installation löschen. Aber die Linux-Quellen liegen oft sehr lange auf Ihrem Computer, daher ist die Chance groß, dass ein zukünftiger Benutzer auf Ihrem System die Benutzer-ID erhält, die Ihre Kernel-Quellen derzeit haben, und damit wäre er der Besitzer dieser Dateien und hätte dann auch Schreibrechte darauf.

Wenn Sie die Kernelquellen aufbewahren möchten, sollten Sie chown -R 0:0 auf den Ordner linux-2.6.22.5 anwenden. So stellen Sie sicher, dass alle Dateien dem Benutzer root gehören.

[Warnung]

Warnung

Einige Kerneldokumentationen empfehlen das Erzeugen eines Links von /usr/src/linux auf den Ordner mit den Kernelquellen. Dies bezieht sich aber nur auf Kernel vor der 2.6er-Serie zu und darf nicht in einem LFS-System angewendet werden. Es verursacht Probleme beim Kompilieren von Paketen die Sie vielleicht im Nachhinein noch installieren möchten.

[Warnung]

Warnung

Die Header in dem Systemordner include sollten immer diejenigen sein, mit denen die Glibc kompiliert wurde (also die bereinigten Linux-Kernel-Header) und dürfen daher bei der Aktualisierung des Kernels keinesfalls durch die neuen Kernel-Header ersetzt werden.

8.3.2. Inhalt von Linux

Installierte Dateien: config-2.6.22.5, lfskernel-2.6.22.5 und System.map-2.6.22.5

Kurze Beschreibungen

config-2.6.22.5

Enthält alle ausgewählten Konfigurationsoptionen für den Kernel.

lfskernel-2.6.22.5

Dies ist der Kernel, der Motor Ihres GNU/Linux-Systems. Nach dem Einschalten Ihres Rechners ist der Kernel der erste Teil des Betriebssystems, der geladen wird. Er erkennt und initialisiert alle Komponenten Ihrer Computer-Hardware und macht diese Komponenten für die Software verfügbar. Er verwandelt eine einzelne CPU in eine Multitasking-Maschine die unzählige Programme scheinbar zur gleichen Zeit ausführen kann.

System.map-2.6.22.5

Enthält eine Liste von Adressen und Symbolen. Sie ordnet Einstiegspunkte und Adressen aller Funktionen und Datenstrukturen dem entsprechenden Kernel zu.