Temps de construction approximatif : 0,1 SBU Espace disque requis : 186 Mo
Nous ne compilerons pas encore un nouveau noyau. Nous le ferons une fois que nous aurons terminé l'installation de tous les paquets. Mais les bibliothèques installées dans la prochaine section ont besoin de se référer aux fichiers d'en-têtes du noyau pour savoir comment s'interfacer avec le noyau. Au lieu de déballer une nouvelle fois les sources du noyau, créer le fichier de versions, les liens symboliques et ainsi de suite, nous allons simplement copier les en-têtes à partir du répertoire des outils temporaires en une commande :
cp -a /tools/include/{asm,asm-generic,linux} /usr/include
Quelques fichiers d'en-têtes du noyau réfèrent au fichier d'en-tête autoconf.h. Comme nous n'avons pas encore configuré le noyau, nous avons besoin de créer ce fichier nous-même pour éviter un échec lors de la compilation de Sysklogd. Créez un fichier autoconf.h vide avec :
touch /usr/include/linux/autoconf.h
Auparavant, une pratique commune consistait à créer des liens symboliques pour les répertoires /usr/include/{linux,asm} vers respectivement /usr/src/linux/include/{linux,asm}. Ceci est une mauvaise idée d'après cet extrait d'un message de Linus Torvalds sur la liste de diffusion du noyau Linux:
Je suggère que les personnes qui compilent des noyaux devraient: - ne pas créer un seul lien symbolique (sauf celui créé lors de la construction du noyau, « linux/include/asm » qui est utilisé pour la compilation du noyau lui-même) Et oui, c'est ce que je fais. Mon répertoire /usr/src/linux a toujours les anciens en-têtes du noyau 2.2.13, même si je n'ai pas lancé cette version du noyau depuis un _loong_ moment. Mais Glibc a été compilé avec, donc ces en-têtes correspondent aux objets de la bibliothèque. Et cela correspond à l'environnement suggéré depuis au moins les cinq dernières années. Je ne sais pas pourquoi l'idée du lien symbolique est toujours vivante, comme un mauvais zombie. Pratiquement toutes les distributions conservent l'idée du lien et tout le monde se souvient que les sources du noyau doivent aller sous « /usr/src/linux » même si ce n'est plus vrai depuis _trèès_ longtemps.
La partie essentielle se trouve là où Linus indique que les fichiers d'en-tête doivent être ceux avec lesquels gblic a été compilé. Ces en-têtes doivent être utilisés plus tard lorsque vous compilerez d'autres paquets, car ce sont eux qui représentent les fichiers de bibliothèques. En copiant les en-têtes, nous nous assurons qu'ils restent disponibles plus tard lors d'une mise à jour du noyau.
Notez qu'il est parfaitement normal d'avoir les sources du noyau dans /usr/src/linux, aussi longtemps que vous n'avez pas les liens symboliques /usr/include/{linux,asm}.