Linux-2.4.26

Das Linux-Paket enthält den Kernel und die Header-Dateien.

Approximate build time:  Mit allen Voreinstellungen: 4.20 SBU
Required disk space:     Mit allen Voreinstellungen: 181 MB

Linux ist abhängig von: Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

Installation des Kernel

Kompilieren und Installieren des Kernels sind nur ein paar Schritte: Konfiguration, kompilieren und installieren. Wenn Sie die Methode der Installation in diesem Buch nicht mögen, schauen Sie in der README-Datei im Kernel Quellordner nach alternativen Methoden.

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 Kernelsauszuführen. Sie sollten sich nicht darauf verlassen, dass die Quellen nach dem Entpacken sauber sind.

Konfigurieren Sie den Kernel mit der menügeführten Benutzeroberfläche:

make menuconfig

make oldconfig könnte in einigen Fällen besser geeignet sein. Schauen Sie in die README-Datei 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.4.26 kopieren (falls sie verfügbar ist). Das empfehlen wir allerdings nicht, Sie sind besser dran, wenn Sie alle Konfigurationsmenüs durchsehen und Ihre eigene Kernelkonfiguration frisch einrichten.

Um POSIX shared memory Unterstützung zu haben, müssen Sie im Kernel die Option „Virtual memory file system support“ einschalten. Diese finden Sie im „File systems“-Menü und ist üblicherweise eingeschaltet.

Überprüfen Sie die Abhängigkeiten und erzeugen Sie die entsprechenden Abhängigkeitsdateien:

make CC=/opt/gcc-2.95.3/bin/gcc dep

Kompilieren Sie das Kernel-Abbild:

make CC=/opt/gcc-2.95.3/bin/gcc bzImage

Kompilieren Sie die Treiber, die als Modul konfiguriert wurden:

make CC=/opt/gcc-2.95.3/bin/gcc modules

Wenn Sie planen, Kernel-Module zu verwenden, dann brauchen Sie die Datei /etc/modules.conf. Informationen betreffend Module und Kernelkonfiguration im allgemeinen finden Sie in der Kernel-Dokumentation; Sie finden Sie im Ordner linux-2.4.26/Documentation. Die modules.conf-Man-page und das Kernel-HOWTO unter http://www.tldp.org/HOWTO/Kernel-HOWTO.html könnten für Sie auch von Interesse sein.

Installieren Sie die Module:

make CC=/opt/gcc-2.95.3/bin/gcc modules_install

Wenn Sie viele Module aber dafür wenig Festplattenspeicher haben, können Sie die Module strippen und komprimieren. Für die meisten ist komprimieren den Aufwand nicht wert, aber wenn Sie wirklich Platzprobleme haben, dann schauen Sie unter http://www.linux-mips.org/archives/linux-mips/2002-04/msg00031.html.

Weil ohne Dokumentation nichts komplett ist, erzeugen Sie die Man-pages die mit dem Kernel kommen:

make mandocs

Und installieren diese:

cp -a Documentation/man /usr/share/man/man9

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 zwei Dateien in den Ordner /boot kopieren.

Der Pfad zu der Kerneldatei variiert, abhängig von der benutzten Plattform auf der Sie arbeiten. Geben Sie das folgende Kommando ein um den Kernel zu installieren:

cp arch/i386/boot/bzImage /boot/lfskernel

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 System.map /boot

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

cp .config /boot/config-lfskernel

Beachten Sie bitte, dass die Dateien im Kernel-Quellordner nicht root gehören. Immer wenn Sie ein Paket als root-Benutzer entpacken (so wie wir 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 hat dann auch Schreibrechte darauf.

Unter diesem Aspekt möchten Sie vielleicht chown -R 0:0 auf den Ordner linux-2.4.26 anwenden damit alle Dateien dem root-Benutzer gehören.

Inhalt von Linux

Installierte Dateien: Der Kernel, die Kernel-Header, und die System.map

Kurze Beschreibung

Der Kernel ist 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.

Die Kernel-Header definieren die Schnittstelle zu den Diensten des Kernels. Die Header in dem include-Ordner Ihres Systems sollten immer diejenigen sein, mit denen die Glibc kompiliert wurde und sollten daher bei einem Kernelupgrade nicht ersetzt werden.

Die Datei System.map enthält eine Liste von Adressen und Symbolen. Sie ordnet Einstiegspunkte und Adressen aller Funktionen und Datenstrukturen dem entsprechenden Kernel zu.