Estimation du temps de construction: 3 minutes Estimation de l'espace disque requis: 132 MB |
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 && yes "" | make config && make dep && cd $LFS/usr/include && cp -a ../src/linux/include/linux . && chown -R root.root $LFS/usr/include/linux && mkdir asm && cp -a ../src/linux/include/asm/* asm && chown -R root.root $LFS/usr/include/asm |
make mrproper: Ceci s'assure que l'arborescence du noyau est parfaitement propre.
yes "" | make config: Ceci exécute make config et donne la réponse par défaut à toutes les questions que le script de configuration pose à l'utilisateur (il fait ceci en se contentant de transmettre l'équivalent de l'appui sur la touche Enter, qui accepte les réponses par défaut Y et N aux questions). Nous ne configurons pas, ici, le véritable noyau; nous n'avons besoin que d'un fichier de configuration quelconque, pour pouvoir ensuite exécuter make dep qui créera de nouveaux fichiers dans $LFS/usr/src/linux/include/linux, comme version.h, entre autres, dont nous aurons besoin plus tard dans chroot pour compiler Glibc ainsi que d'autres packages.
make dep: make dep vérifie les dépendances et crée le fichier des dépendances. Nous n'avons pas vraiment besoin de la vérification des dépendances, mais ce qui nous importe est que make dep crée les fichiers susmentionnés dans $LFS/usr/src/linux/include/linux, dont nous aurons besoin plus tard.
cp -a ../src/linux/include/linux . and mkdir asm && cp -a ../src/linux/include/asm/* asm: Ces commandes copient les entêtes du kernel dans le répertoire $LFS/usr/include.
chown -R root.root $LFS/usr/include/linux et chown -R root.root $LFS/usr/include/asm: Ces commandes changent l'utilisateur propriétaire des répertoires $LFS/usr/include/linux et $LFS/usr/include/asm, plus tous les fichiers contenus, en utilisateur root du groupe root.
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.
Le package du Linux Kernel contient le 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.
Linux-2.4.8 nécessite l'installation de:
sh du package bash
ar du package binutils
as du package binutils
ld du package binutils
nm du package binutils
objcopy du package binutils
chown du package fileutils
cp du package fileutils
ln du package fileutils
mkdir du package fileutils
mv du package fileutils
rm du package fileutils
find du package findutils
xargs du package findutils
gcc du package gcc
grep du package grep
make du package make
awk du package mawk
depmod du package modutils
genksyms du package modutils
hostname du package net-tools
sed du package sed
basename du package sh-utils
date du package sh-utils
expr du package sh-utils
pwd du package sh-utils
uname du package sh-utils
whoami du package sh-utils
yes du package sh-utils
cat du package textutils
md5sum du package textutils
sort du package textutils
tail du package textutils
touch du package textutils
tr du package textutils