Installer Linux-2.4.18

Estimation du temps de construction:           1 minute
Estimation de l'espace disque requis:  132 MB

Installation du noyau Linux

Nous n'allons pas encore compiler une nouvelle image du noyau. Nous le ferons après avoir fini l'installation des logiciels du système de base dans ce chapitre. Mais, parce que certains logiciels ont besoin des fichiers d'en-tête du noyau, nous allons désarchiver le noyau maintenant et le configurer pour pouvoir compiler les packages ayant besoin du noyau.

Le fichier de configuration du noyau est créé en exécutant la commande suivante:

make mrproper &&
make include/linux/version.h &&
make symlinks &&
mkdir $LFS/usr/include/asm &&
cp include/asm/* $LFS/usr/include/asm &&
cp -R include/linux $LFS/usr/include &&
touch $LFS/usr/include/linux/autoconf.h

Explication des commandes

make mrproper: Ceci s'assure que l'arborescence du noyau est parfaitement propre. Nous faisons ceci parce que l'équipe de développement du noyau recommande que ceci soit fait avant chaque compilation du noyau, et que nous ne devons pas supposer que l'arborescence des sources soit propre après l'avoir déballé.

make include/linux/version.h et make symlinks: Ceci crée le fichier include/linux/version.h, ainsi que le lien symbolique include/asm symlink.

mkdir $LFS/usr/include/asm and cp include/asm/* $LFS/usr/include/asm: Ceci commande copie les fichiers d'entête assembleur du kernel dans $LFS/usr/include/asm.

cp -R include/linux $LFS/usr/include: Cette commande copie les fichiers d'entête pour la cross-compilation du kernel dans $LFS/usr/include.

touch $LFS/usr/include/linux/autoconf.h: Quelque fichiers d'entête du kernel incluent le fichier autoconf.h, mais en dehors de la hiérarchie des fichiers source du noyau Linux, ce fichier n'apporte rien donc nous en créons un vide de manière à ne pas avoir d'erreurs de compilation lorsqu'il est une dépendance pour un autre fichier d'entête du noyau.

Pourquoi nous copions les en-têtes du noyau et pourquoi nous ne créons pas de liens

Auparavant, une pratique commune consistait à créer des liens symboliques pour les répertoires /usr/include/linux et asm vers respectivement /usr/src/linux/include/linux et asm. Ceci est une mauvaise idée d'après cet extrait d'un envoi 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 kernel 2.2.13, même si je n'ai pas lancé cette version du kernel depuis 
un _loong_ moment. Mais glibc a été compilé avec, donc ces entê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 importante là-dedans correspond au moment où il indique que les en-têtes doivent être ceux avec lesquels glibc a été compilé. Ces en-têtes doivent rester accessibles et en les copiant, nous nous assurons de suivre ces recommandations. Notez aussi que tant que ces liens symboliques ne sont pas créés, il est tout à fait correct d'avoir les sources du noyau sous /usr/src/linux.

Contenu de Kernel-2.4.17

Support Files

Le noyau linux et les entêtes du noyau linux

Descriptions

noyau linux

Le noyau de Linux est au coeur de chaque système Linux. C'est lui qui fait tourner Linux. Quand vous allumez votre ordinateur et démarrez un système Linux, la toute première partie de logiciel Linux qui est chargée est le noyau. Le noyau initialise les composants matériels du système comme les ports série, les ports parallèles, les cartes son, les cartes réseau, les contrôleurs IDE, les contrôleurs SCSI et beaucoup d'autres choses. En bref, le noyau rend le matériel disponible pour que le logiciel puisse fonctionner.

entêtes du noyau linux

Nous copions ces fichiers dans /usr/include/(linux,asm) lors du chapitre 5. Ils doivent correspondre à ceux avec lesquels glibc a été compilé et ne doivent pas être remplacé lors d'une mise à jour du kernel. Ils sont essentiels pour compiler un grand nombre de logiciels.

Dépendances

Linux-2.4.17 nécessite que les programmes suivants soient installés:


bash: sh
binutils: ar, as, ld, nm, objcopy
fileutils: cp, ln, mkdir, mv, rm, touch
findutils: find, xargs
gcc: cc1, collect2, cpp0, gcc
grep: grep
gzip: gzip
make: make
gawk: awk
modutils: depmod, genksyms
net-tools: dnsdomainname, hostname
sed: sed
sh-utils: basename, date, expr, pwd, stty, uname, whoami, yes
textutils: cat, md5sum, sort, tail