[LinuxFocus-icon]
Sommaire  |  Carte  |  Index  |  Recherche

Nouvelles | Archives | Liens | A propos
Ce document est disponible en: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Portugues  Russian  Turkce  Korean  

convert to palmConvert to GutenPalm
or to PalmDoc


par Subhasish Ghosh

L´auteur:

Je m'appelle Subhasish Ghosh, j'ai 20 ans, et vis actuellement en Inde. Je suis étudiant en Génie de systèmes d'exploitation et je travaille comme professionnel dans le domaine de l'Informatique. Je suis titulaire de 6 certifications Microsoft Certified Professional(MCP), ainsi que d'un MCP certifié en NT 4.0. Ca fait très longtemps que je travaille sous Linux, spécialement Red Hat Linux. Je suis en train de préparer l'examen de certification de Red Hat Linux Certified Engineer(RHCE) et me propose de travailler essentiellement avec les systèmes d'exploitation Linux dans l'avenir.


Sommaire:

 

Compiler, configurer et installer un noyau Linux personnalisé pleinement opérationnel

[illustration]

Résumé:

Salut tout le monde, cet article vous propose un processus pas-à-pas extrêmement détaillé qui décrit comment compiler, configurer et installer un noyau Linux personnalisé. Nous le savons tous, un noyau personnalisé est requis pour bien des raisons, et je n'aimerais pas entrer dans les détails "saignants" de celles-ci. Je me bornerai à montrer seulement comment compiler, configurer et installer un noyau Linux personnalisé. Bien que les étapes décrites ci-dessous visent en premier lieu les utilisateurs de Red Hat Linux, le même processus s'applique également aux utilisateurs d'autres distributions Linux, bien entendu, moyennant quelques modifications de détail.



 

Introduction

Voici les instructions pour compiler le noyau Linux en 27 étapes. J'ai exécuté toutes ces étapes sur un ordinateur avec la configuration suivante: Compaq Presario 4010 Series, disque dur de 15.5 Go, 96 Mo de RAM, processeur 400 MHz Intel Celeron, distribution Red Hat Linux 7.0 et noyau 2.2.16-22.
Notre objectif est d'obtenir un noyau personnalisé après accomplissement de toutes les étapes mentionnées ci-dessous. J'ai, par exemple un noyau personnalisé dénommé "2.2.16-22ghosh" qui fonctionne sur mon ordinateur (car je m'appelle Subhasish Ghosh; vous pourriez avoir n'importe quoi d'autre, et même plusieurs noyaux fonctionnant ensemble). Alors, bonne chance pour la compilation du noyau Linux.

 

Les étapes

Etape 1 : logez-vous en tant que "root" puis exécutez les étapes suivantes.

Etape 2 : à l'invite taper rpm -q kernel-headers kernel-source make dev86

Etape 3 : si ces RPM sont dejà installés alors passer à l'étape 4. Sinon monter le CD-ROM Red Hat Linux 7.0 puis exécuter un rpm -Uvh pour les installer.

Etape 4 : si vous avez un système X Window pleinement opérationnel, tapez startx à l'invite. Sinon ma suggestion est de le configurer avant de continuer car ça rendra les choses plus faciles. Si le système X Window n'est PAS configuré alors tapez make config ou make menuconfig à l'invite. Remarquez que j'ai supposé que votre X Window System était opérationnel et c'est pourquoi il vous suffit de taper startx.

Etape 5 : une fois dans l'environnement GNOME ouvrez le terminal GNOME et tapez cd /usr/src/linux puis tapez Entrée.

Etape 6 : depuis /usr/src/linux, tapez make xconfig.

Etape 7 : la version graphique de make config devrait apparaître à l'écran. Elle propose les diverses options disponibles pour obtenir un noyau personnalisé.

Etape 8 : pour l'instant je suggère de laisser la plupart des options telles qu'elles sont.

La configuration par défaut est passablement lourde. D'un autre côté c'est probablement celle qui fonctionnera sur la plupart des ordinateurs. Je suggère d'en terminer d'abord avec toutes les étapes afin d'apprendre le fonctionnement du processus. Ensuite vous pourrez vous familiariser avec votre matériel et ses caractéristiques de façon à avoir suffisamment d'expertise pour affiner votre noyau et en obtenir un plus petit et optimal. Un bon moyen de découvrir un peu plus sur les entrailles de votre ordinateur est fourni par les fichiers se trouvant dans /proc, tels /proc/pci, /proc/interrupts, /proc/modules, etc

Pour l'instant n'essayez pas de bricoler. Dans le but d'expérimenter, contentez-vous des changements suivants:

1.Type de processeur et caractéristiques : choisir le processeur correct selon que vous travaillez avec un Pentium 2, 3, ou Intel Celeron comme moi. Par exemple j'ai fait comme ceci: Processor Family: PPro/686MX, Maximum Physical Memory: 1 GB, Math Emulation: Yes, MTRR: Yes, SMP: Yes.

2.Ouvrez le dialogue Filesystems puis faites les changements suivants: par exemple j'ai choisi: DOS FAT fs support: Yes(y), MSDOS fs support: Yes(y), UMSDOS: m, VFAT(Windows 95) support: Yes(y), NTFS filesystem support (read-only): Yes(y), NTFS read-write support(DANGEROUS): No(n). Après avoir fait ces modifications, assurez-vous que vous n'avez rien changé d'autre en cours de route. Tous les changements ci-dessus sont inoffensifs et ne causeront aucun dommage à votre noyau Linux existant.

3.Sauvegardez et quittez la fenêtre Main.

Etape 9 : tapez un ls -al depuis le chemin /usr/src/linux.

Etape 10 : Je suis sûr que vous voyez un fichier: "Makefile". C'est un fichier très important pour le processus de compilation. Assurez-vous donc que vous en avez une sauvegarde en utilisant: cp Makefile Makefile.bak

Etape 11 : maintenant, tapez : (depuis /usr/src/linux) vi Makefile.

Etape 12 : allez à la ligne EXTRAVERSION et changez-la pour quelque chose dans ce genre : par exemple j'ai renommé EXTRAVERSION=-22, en EXTRAVERSION="-22ghosh". Vous pouvez lui donner le nom que vous voulez.

Etape 13 : sauvegardez et fermez le fichier.

Etape 14 : les étapes suivantes sont à exécuter depuis /usr/src/linux. Tapez make dep clean, et appuyez sur Entrée.

Etape 15 : tapez: make bzImage modules. Ca prend un certain temps, allez prendre un verre pendant que les fichiers nécessaires sont compilés. D'habitude, j'en profite pour faire un somme parce que je fais ce genre de chose en pleine nuit.

Etape 16 : à la fin de cette étape, un fichier "bzImage" sera créé dans le dossier /usr/src/linux/arch/i386/boot; allez-y et vérifiez qu'un fichier "bzImage" a bien été créé. SI ET SEULEMENT SI toutes les étapes de la compilation ont été accomplies correctement et si toutes les options que nous avons choisies dans make xconfig sont correctes, alors ce fichier aura été créé. Si vous trouvez ce fichier, ce dont je ne doute pas, vous pouvez vous réjouir car vous avez gagné 75% de la bataille. Si vous ne voyez pas ce fichier, je suis désolé, vous avez fait une erreur quelque part. Faites une pause et recommencez toutes les étapes depuis le début. Je suis sûr que vous allez réussir.

Etape 17 : tapez (depuis /usr/src/linux): cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.2.16-22ghosh et appuyez sur Entrée.

Etape 18 : tapez : cp System.map /boot/System.map-2.2.16-22ghosh
Bien que ça ne soit pas obligatoire, je suggère de sauvegarder le fichier de configuration du noyau (/usr/src/linux/.config) ce qui vous donne une référence pour créer ensuite d'autres noyaux sans avoir à tout reconfigurer depuis le début. La fenêtre de configuration graphique (make xconfig) offre la possibilité de charger un fichier de configuration. Pour sauvegarder le fichier de configuration tapez :
cp /usr/src/linux/.config /boot/Config-2.2.16-22ghosh

Etape 19 : tapez : make modules_install et appuyez sur Entrée. Vous verrez tous les modules s'installer dans un nouveau dossier personnalisé.

Etape 20 : tapez : mkinitrd /boot/initrd-2.2.16-22ghosh.img 2.2.16-22ghosh

Etape 21 : tapez : vi /etc/lilo.conf et ajoutez l'entrée suivante:

image=/boot/vmlinuz-2.2.16-22ghosh

label=GhoshKernel
initrd=/boot/initrd-2.2.16-22ghosh.img
root=/dev/hdc5
read-only

Etape 22 : sauvegardez et quittez. Remarquez que vous pouvez changer les entrées du fichier lilo.conf file comme vous le voulez, et le root devrait être le root de votre système; sur ma machine, il est sur /dev/hdc5. Insérez donc l'info de votre propre système. La commande
df | grep '/$'
vous dira où se trouve votre système de fichier root. Faites attention aux guillemets simples autour de l'expression qui suit grep.

Etape 23 : tapez : /sbin/lilo -v -v

Etape 24 : lisez toutes les infos sur l'écran. S'il n'y a pas d'erreurs, le travail est terminé. Félicitations !!!!

Etape 25 : redémarrez le système en tapant /sbin/reboot ou /sbin/shutdown -r now.

Etape 26 : dans l'écran de démarrage, tapez Tab (ou Control-X, si vous avez l'écran de démarrage LILO), et vous pouvez voir "GhoshKernel" parmi les autres choix pré-existants.

Etape 27 : tapez : GhoshKernel et appuyez sur Entrée. Le noyau personnalisé sera visualisé en train de démarrer sur votre système. Vous avez donc un noyau personnalisé parfaitement fonctionnel sur votre système.

 

Le résultat

Observez le processus de démarrage, les messages à l'écran et vérifiez qu'il n'y a pas d'erreurs. Plus tard vous pourrez aussi vérifier les messages depuis le fichier /var/log/boot.log et la commande dmesg. S'il n'y a pas d'erreurs, le noyau est parfait pour votre machine. Très bien!!

Logez vous à nouveau et tapez uname -a puis appuyez sur Entrée. Vous voyez l'entrée suivante sur l'écran: 2.2.16-22ghosh suivie de la date de compilation et d'autres informations. Ce qui prouve bien que vous utilisez un noyau personnalisé. C'est tout. Rappelez-vous aussi que vous pouvez avoir autant de versions du noyau que vous le souhaitez. Au cas où ça ne fonctionnerait pas, ou que vous messieurs (et mesdemoiselles) ayez un problème, n'hésitez pas à m'envoyer un courrier électronique à l'adresse auspicious_blessingsin= dia@hotmail.com pour des questions et des suggestions. J'aimerais vraiment avoir de vos nouvelles et vous aider et j'espère que cet article sera utile à tous ceux qui veulent un noyau personnalisé parfaitement fonctionnel. Prenez bien soin de vous.
Subhasish Ghosh

 

Discussion sur cet article

Chaque article possède sa page de discussion. Vous pouvez y soumettre un commentaire ou lire ceux d´autres lecteurs:
 page de discussion 

Site Web maintenu par l´équipe d´édition LinuxFocus
© Subhasish Ghosh, FDL
LinuxFocus.org

Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus
Translation information:
en -> -- Subhasish Ghosh
en -> fr Michel Eytan

2001-08-10, generated by lfparser version 2.17