A.2. Construction du noyau

Les instructions contenues dans cette section se réfèrent à la création d'un noyau modularisé. Si vous souhaitez construire un noyau monolithique, reportez-vous à la Section A.3 pour obtenir une explication des différents aspects de la construction et de l'installation d'un noyau monolithique.

NoteRemarque
 

Cet exemple utilise la version de noyau 2.4.20-2.47.1 (la version de noyau peut être différente). Pour identifier la version de votre noyau, entrez la commande uname -r et remplacez 2.4.20-2.47.1 par la version de noyau fournie par cette commande.

Pour construire un noyau personnalisé pour une architecture x86 (effectuez toutes les étapes suivantes en étant connecté en tant que super-utilisateur):

  1. Ouvrez l'invite du shell et allez dans le répertoire /usr/src/linux-2.4/. Dorénavant, toutes les commandes doivent être exécutées à partir de ce répertoire.

  2. Il est important d'avoir une arborescence source dont vous connaissez la condition lorsque vous vous lancez dans la construction d'un noyau. Il est par conséquent recommandé de commencer par la commande make mrproper afin de supprimer tous les fichiers de configuration et toutes les traces des constructions précédentes qui pourraient se trouver dans l'arborescence source. Si vous avez déjà un fichier de configuration nommé /usr/src/linux-2.4/.config, sauvegardez-le dans un répertoire différent avant d'exécuter cette commande et recopiez-le ensuite.

  3. Il est recommandé d'utiliser comme point de départ, la configuration du noyau Red Hat Linux par défaut. Pour ce faire, copiez le fichier de configuration de l'architecture du système qui se trouve dans le répertoire /usr/src/linux-2.4/configs/ dans /usr/src/linux-2.4/.config. Si le système a plus de quatre giga-octets de mémoire, copiez le fichier contenant le mot-clé bigmem.

  4. Personnalisez ensuite les paramètres. Si le système X Window est disponible, la méthode recommandée consiste à utiliser la commande make xconfig pour exécuter la Configuration du noyau Linux.

    NoteRemarque
     

    Pour pouvoir utiliser l'outil graphique avec la commande make xconfig, le paquetage tk fournissant la commande wish, doit être installé. Pour obtenir de plus amples informations sur l'installation de paquetages RPM, reportez-vous à la Partie V.

    Figure A-1. Configuration des catégories de composants du noyau

    Comme le montre la Figure A-1, cliquez sur la catégorie que vous souhaitez configurer. Chaque catégorie contient un certain nombre de composants. Effectuez votre choix en sélectionnant y (oui), m (module) ou n (non) à côté du composant à compiler dans le noyau puis compilez-le ou non en tant que module du noyau. Pour plus d'informations sur le composant, cliquez sur le bouton Aide placé juste à côté.

    Cliquez sur le bouton Menu principal pour afficher à nouveau la liste de catégories.

    Après avoir terminé la configuration, cliquez sur le bouton Enregistrer et quitter dans la fenêtre du menu principal afin de créer le fichier de configuration /usr/src/linux-2.4/.config et de sortir du programme de configuration du noyau Linux.

    Même si aucun changement n'a été apporté aux paramètres, il est nécessaire d'exécuter la commande make xconfig (ou l'une des autres méthodes utilisées pour la configuration du noyau) avant de continuer.

    Parmi les autres méthodes utilisées pour la configuration du noyau figurent:

    • make config — Un programme interactif en mode texte. Les composants sont présentés de façon linéaire et las résponses aux questions les concernant sont fournies sur une base individuelle. Cette méthode ne nécessite pas l'utilisation du système X Window et ne permet pas de revenir en arrière pour modifier les réponses apportées aux questions précédentes.

    • make menuconfig — Un programme en mode texte piloté par des menus. Les composants sont présentés dans un menu de catégories spécifiques; sélectionnez les composants souhaités de la même manière que celle utilisée dans le programme d'installation Red Hat Linux en mode texte. Changez simplement l'étiquette correspondant à l'élément que vous souhaitez inclure: [*] (incorporé), [ ] (exclu), <M> (module) ou < > (module possible). Cette méthode ne requiert pas le système X Window.

    • make oldconfig — Un script non-interactif qui modifie le fichier de configuration afin qu'il contienne les paramètres par défaut. Si votre système utilise le noyau Red Hat Linux par défaut, il crée un fichier de configuration pour le noyau livré avec Red Hat Linux pour votre architecture. Cela peut être utile lors de la configuration de votre noyau car vous pouvez ainsi connaître les composants par défaut et désactiver ceux que vous ne souhaitez pas utiliser.

    NoteRemarque
     

    Pour utiliser kmod et les modules de noyau, répondez Yes à kmod support et module version (CONFIG_MODVERSIONS) support lors de la configuration.

  5. Après avoir créé un fichier /usr/src/linux-2.4/.config utilisez la commande make dep pour définir correctement toutes les dépendances.

  6. Utilisez la commande make clean pour préparer l'arborescence source en vue de la construction.

  7. Il est recommandé de donner au noyau personnalisé un numéro de version différent afin d'éviter que le noyau existant ne soit écrasé. La méthode décrite ici est celle dont le dépannage est le plus simple en cas de problèmes. D'autres possibilités sont décrites en détail à l'adresse suivante: http://www.redhat.com/mirrors/LDP/HOWTO/Kernel-HOWTO.html ou dans Makefile dans /usr/src/linux-2.4.

    Par défaut, /usr/src/linux-2.4/Makefile comporte le mot custom à la fin de la ligne commençant par EXTRAVERSION. En ajoutant un élément à la chaîne, il est possible d'avoir simultanément sur le système l'ancien et le nouveau noyau, (version 2.4.20-2.47.1custom).

    Si le système contient plus d'un noyau personnalisé, il est recommandé d'ajouter la date à la fin (ou tout autre identificateur).

  8. Construisez le noyau à l'aide de make bzImage.

  9. Construisez les modules que vous avez configurés à l'aide de make modules.

  10. Utilisez la commande make modules_install pour installer les modules de noyau (même si vous n'en avez construit aucun). Notez le caractère de soulignement (_) dans la commande pour donner l'instruction d'installer les modules de noyau dans le chemin du répertoire /lib/modules/<KERNELVERSION>/kernel/drivers (où KERNELVERSION correspond à la version spécifiée dans Makefile). Dans cet exemple, il s'agirait donc de /lib/modules/2.4.20-2.47.1custom/kernel/drivers/.

  11. Utilisez make install pour copier votre nouveau noyau ainsi que les fichiers qui lui sont associés dans les répertoires appropriés.

    Outre l'installation des fichiers de noyau dans le répertoire /boot, cette commande exécute également le script /sbin/new-kernel-pkg qui construit une nouvelle image initrd et ajoute de nouvelles entrées au fichier de configuration du chargeur d'amorçage.

    Si votre système dispose d'un adaptateur SCSI que le pilote SCSI a été compilé en tant que module ou si le noyau a été construit avec une prise en charge ext3 en tant que module (la valeur par défaut de Red Hat Linux), l'image initrd est nécessaire.

  12. Même si des modifications sont effectuées au niveau de l'image initrd et du chargeur d'amorçage, vérifiez d'une part qu'elles ont été faites correctement et assurez-vous d'autre part de bien utiliser la version personnalisée du noyau au lieu de 2.4.20-2.47.1. Pour obtenir des informations sur la manière de vérifier ces modifications, reportez-vous à la Section 30.5 et à la Section 30.6.