Linux-2.4.26 Header

Approximate build time:  0.1 SBU
Required disk space:     186 MB

Installation der Kernel-Header

Wir werden jetzt noch keinen neuen Kernel kompilieren -- das erledigen wir, wenn wir die Installation aller Pakete abgeschlossen haben. Die im nächsten Abschnitt installierten Bibliotheken benötigen die Kernel-Header, da sie direkt mit dem Kernel arbeiten. Anstatt die Kernelquellen erneut zu entpacken, die Versionsdatei und symbolische Verknüpfungen zu erstellen u.s.w, kopieren wir einfach in einem Rutsch die Header aus dem temporären Tools-Ordner:

cp -a /tools/include/{asm,asm-generic,linux} /usr/include

Einige Kernel Header-Dateien benutzen die Header-Datei autoconf.h. Da wir den Kernel jetzt aber noch nicht konfigurieren und Compilerfehler vermeiden möchten, müssen wir die Datei selber erstellen. Erstellen Sie eine leere Datei autoconf.h:

touch /usr/include/linux/autoconf.h

Warum wir die Kernel-Header kopieren und nicht symbolisch linken

Früher war es gängige Praxis, den Ordner /usr/include/{linux,asm} nach /usr/src/linux/include/{linux,asm} symbolisch zu verlinken. Das war aber schlechte Praxis, wie der folgende Ausschnitt aus einem Posting von Linus Torvalds auf der Linux Kernel-Mailingliste zeigt:

I would suggest that people who compile new kernels should: 

 - not have a single symbolic link in sight (except the one that the 
   kernel build itself sets up, namely the „linux/include/asm“
   symlink that is only used for the internal kernel compile itself) 

And yes, this is what I do. My /usr/src/linux still has the old 2.2.13 
header files, even though I haven't run a 2.2.13 kernel in a _loong_ 
time. But those headers were what Glibc was compiled against, so those 
headers are what matches the library object files. 

And this is actually what has been the suggested environment for at 
least the last five years. I don't know why the symlink business keeps 
on living on, like a bad zombie. Pretty much every distribution still 
has that broken symlink, and people still remember that the linux 
sources should go into „/usr/src/linux“ even though that hasn't
been true in a _loong_ time.

Der wichtige Teil ist der, in dem Linus sagt, dass die Header-Dateien diejenigen sein sollen, mit denen die Glibc kompiliert wurde. Das sind die Header-Dateien, die zum späteren Kompilieren von Paketen verwendet werden sollten, weil nur diese exakt auf die Objektkodedateien der Bibliotheken passen. Durch das Kopieren der Header stellen wir sicher, dass sie verfügbar bleiben, falls Sie später den Kernel updaten.

Beachten Sie, dass es vollkommen in Ordnung ist, die Kernelquellen in /usr/src/linux liegen zu haben, solange Sie keine symbolischen Links /usr/include/{linux,asm} haben.