Approximate build time: 0.1 SBU Required disk space: 186 MB
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
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.