Linux-2.4.26

Le paquet Linux contient le noyau et les fichiers d'en-têtes.

Temps de construction approximatif :  toutes les options par défaut : 4,20 SBU
Espace disque requis :                toutes les options par défaut : 181 Mo

L'installation de Linux dépend de Bash, Binutils, Coreutils, Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

Installation du noyau

Construire le noyau implique un certain nombre d'étapes : configuration, compilation et installation. Si vous n'aimez pas la façon dont ce livre configure le noyau, jetez un ½il sur le fichier README contenu dans les sources du noyau pour d'autres méthodes.

Préparez la compilation en lançant la commande suivante :

make mrproper

Ceci nous assure que le répertoire du noyau est complètement nettoyé. L'équipe du noyau recommande que cette commande soit lancée avant chaque compilation du noyau. Vous ne devez pas penser que le répertoire des sources soit propre juste après avoir été déballé.

Configurez le noyau via une interface par menu :

make menuconfig

make oldconfig peut être plus approprié dans certaines situations. Voir le fichier README pour plus d'informations.

Si vous le souhaitez, vous pouvez éviter la configuration du noyau en copiant le fichier de configuration du noyau, .config, à partir de votre système hôte (en supposant qu'il soit disponible) vers le répertoire $LFS/usr/src/linux-2.4.26. Néanmoins, nous ne recommandons pas cette option. Vous ferez bien mieux d'explorer tous les menus de configuration et de créer la configuration de votre propre noyau à partir de rien.

Pour le support de la mémoire partagée POSIX, assurez-vous que l'option de configuration du noyau « Virtual memory file system support » est activée. Elle réside dans le menu « File systems » et est normalement activée par défaut.

Il est important de noter que pour être conforme avec les réquisitions de la mémoire partagée POSIX, nous devons activé l'option du système de fichiers tmpfs et nous devons monter un système de fichiers tmpfs à partir de /dev/shm.

Vérifiez les dépendances et créez les fichiers d'information sur dépendances :

make CC=/opt/gcc-2.95.3/bin/gcc dep

Compilez l'image du noyau :

make CC=/opt/gcc-2.95.3/bin/gcc bzImage

Compilez les pilotes qui ont été configurés comme modules:

make CC=/opt/gcc-2.95.3/bin/gcc modules

Si vous avez l'intention d'utiliser des modules du noyau, vous aurez besoin d'un fichier /etc/modules.conf. L'information sur les modules et sur la configuration du noyau sont disponibles en général dans la documentation du noyau qui est stockée dans linux-2.4.26/Documentation. La page man modules.conf et le guide pratique du noyau (http://www.tldp.org/HOWTO/Kernel-HOWTO.html) peuvent aussi vous intéresser.

Installez les modules:

make CC=/opt/gcc-2.95.3/bin/gcc modules_install

Si vous avez beaucoup de modules et très peu d'espace, vous pourriez considérer l'utilisation de strip et la compression des modules. Pour la plupart des gens, utiliser cette compression pose trop de soucis, mais si vous êtes vraiment gêné par l'espace, alors jetez un ½il à http://www.linux-mips.org/archives/linux-mips/2002-04/msg00031.html.

Comme rien n'est terminé sans documentation, construisez les pages man venant avec le noyau :

make mandocs

Et installez ces pages :

cp -a Documentation/man /usr/share/man/man9

La compilation du noyau est terminée mais quelques étapes supplémentaires sont requises pour finir l'installation. Quelques fichiers doivent être copiés dans le répertoire /boot.

Le chemin vers l'image du noyau peut varier suivant la plateforme que vous utilisez. Lancez la commande suivante pour installer le noyau :

cp arch/i386/boot/bzImage /boot/lfskernel

System.map est un fichier de symboles pour le noyau. Il fait correspondre les points d'entrée des fonctions à chaque fonction de l'API (Application Programming Interface) du noyau ainsi que les adresses des structures de données du noyau pour le noyau actuel. Lancez la commande suivante pour installer le fichier map :

cp System.map /boot

.config est le fichier de configuration du noyau et a été produit par l'étape du make menuconfig ci-dessus. Il contient toutes les sélections lors de configuration pour le noyau qui v ient d'être compilé. Il est intelligent de conserver ce fichier en tant que référence :

cp .config /boot/config-lfskernel

Il est important de noter que les fichiers du répertoire des sources du noyau n'appartiennent pas à root. À chaque fois que vous déballez un paquet en tant qu'utilisateur root (comme nous avons fait ici dans le chroot), les fichiers appartiennent aux possesseurs des identifiants d'utilisateur et de groupe enregistrés sur l'ordinateur de la personnes ayant généré le paquet. Ceci n'est habituellement pas un problème pour les autres paquets installés parce que vous allez supprimer les sources après l'installation. Mais le répertoire des sources du noyau est souvent conservé très longtemps, donc il y a une chance pour que l'identifiant du mainteneur soit affecté à quelqu'un sur votre machine. À ce moment, cet utilisateur aura accès en écriture aux sources du noyau.

Si vous comptez conserver le répertoire des sources du noyau, vous devez lancer chown -R 0:0 sur le répertoire linux-2.4.26 pour vous assurer que tous les fichiers appartiennent à l'utilisateur root.

Contenu de Linux

Fichiers installés : le noyau, les en-têtes du noyau et le System.map

Descriptions courtes

Le noyau (kernel) est le moteur de votre système GNU/Linux. En allumant votre machine, le noyau est la première partie de votre système d'exploitation à être chargé. Il détecte et initialise tous les composants matériels de votre ordinateur, rend disponible ces composants comme un ensemble de fichiers pour le logiciel et transforme le seul CPI en une machine multi-tâche capable d'exécuter des programmes apparemment en même temps.

Les en-têtes du noyau (kernel headers) définissent l'interface des services fournis par le noyau. Les en-têtes du répertoire include de votre système devraient toujours être ceux avec lesquels Glibc a été compilé et ne devraient pas être remplacés lors de la mise à jour du noyau.

Le fichier System.map est une liste d'adresses et de symboles. Il fait correspondre les points d'entrées aux adresses de toutes les fonctions et structures de données du noyau.