8.3.1. Installation des Kernels
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.27.4
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 im Abschnitt 7.4,
„Umgang mit Geräten und Modulen an einem
LFS-System“ und in der Dokumentation zum Kernel
linux-2.6.27.4
. Auch modprobe.conf(5)
enthält nützliche Informationen.
Installieren Sie die Module, falls Ihre Kernelkonfiguration solche
verwendet:
make modules_install
Das Kompilieren des Kernels 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/x86/boot/bzImage /boot/lfskernel-2.6.27.4
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.27.4
.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.27.4
Installieren Sie die Dokumentation zum Linux-Kernel:
install -d /usr/share/doc/linux-2.6.27.4
cp -r Documentation/* /usr/share/doc/linux-2.6.27.4
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.27.4
anwenden. So
stellen Sie sicher, dass alle Dateien dem Benutzer root
gehören.
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
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.