Aller au contenu Aller à l'accueil plan du site rechercher Aide sur les raccourcis clavier

Accueil > Debian > Compilation du noyau et modules >

Commandes pour compiler un noyau Debian


Est-ce indispensable ?

Pour une distribution comme la Mandriva, la compilation du noyau (kernel) n’est absolument pas indispensable pour une utilisation ordinaire.

Sur la Debian Woody, la section Configurer les modules des pilotes peut rendre l’opération de compilation (ou plutôt recompilation puisque le programme d’installation en effectue une) moins indispensable.

Néanmoins, pour des soucis de performance, l’opération reste conseillé.

Utiliser un noyau précompilé ?

Pour des raisons de périphériques, j’ai dû utiliser des noyaux recompilés. Debian étant de mieux en mieux, surtout depuis Etch, l’utilisation de noyau précompilé est désormais la norme (les drivers nvidia ou ndiswrapper se construisent aisément avec module-assistant)

Initialisation de la compilation

 ATTENTIONIl est inutile de passer des paramètres matériels différents de ceux que vous possédez. Cela peut s’avérer fatal.

Pour pouvoir compiler le noyau, encore faut-il avoir installé les sources de ce dernier.

Tout se fait dans un terminal (ou en mode texte) en mode super-utilisateur (su + mot de passe root) :

Les sources

Installer le paquet kernel-package qui contient les outils (commandes) nécessaires pour compiler un noyau.

Installer la source du noyau, choisir le paquet correspondant au noyau que vous voulez compiler (ex. kernel-source-2.4.18), il peut être utile d’avoir également le paquet contennant la documentation correspondante (ex. kernel-doc-2.4.18).

Ce qui donne en terme de commande :

apt-get install kernel-source-2.4.18 kernel-doc-2.4.18 kernel-package

 ATTENTION : pour les noyaux 2.6 : c’est linux-source et linux-header

Les paquets auraient pu être installé en mode graphique avec synaptic

Répertoire /usr/src/

Aller dans le répertoire /usr/src : cd /usr/src.

C’est dans ce répertoire que va se faire la suite : on y trouve l’archive des sources du noyau (ex. kernel-source-2.4.18.tar.bz2)

D’abord, décompresser l’archive :

tar xjf kernel-source-2.4.18.tar.bz2

Puis aller dans le répertoire des sources : cd /kernel-source-2.4.18

Modification du makefile

Avec un éditeur (pourquoi pas avec nano, comme cela on reste dans le terminal), modifier le Makefile à la quatrième ligne (extraversion) et uniquement celle-ci. Vous mettez ce que vous voulez (ici -mjk pour mon joli kernel langue tirée)

Comme vous êtes déjà dans le répertoire des sources, tapez simplement : nano Makefile

Le tiret permet d’avoir un nom de noyau plus "propre", plus "debian", plus "..." : 2.6.25-mjk, si vous ne le mettez pas vous aurez : 2.6.25mjk.

Compilation

Voici les commandes pour faire une compilation en mode texte (tout dans un terminal).

make menuconfig

PNG - 9.3 ko
Compilation en mode texte

- Paramètres de compilation d’un noyau de la famille 2.4.x
- Installation d’un noyau 2.6.x

Dans ces articles, les commandes pour paramétrer graphiquement un noyau y sont expliqués.

Lorsque c’est terminé, sauvegardez votre travail en appuyant sur Save and exit .

Mise en place du nouveau noyau

Création du noyau

Nettoyage et vérification des dépendances :

make-kpkg clean

Compilation du noyau à proprement parler :

Si vous avez modifié le Makefile :

make-kpkg kernel-image

Sinon :

make-kpkg --revision=custom.1.0 kernel-image  [1]

Si vous avez coché des options ’m’ dans les paramètres du noyau, vous devez construire les modules (quand vous cochez ’Y’, les modules sont compilés directement avec le noyau) :

make-kpkg modules-image

Installation du noyau

Si vous n’avez pas modifié le Makefile, il vous faudra faire une étape supplémentaire :

Avant d’installer, il faut archiver les anciens modules du noyau (sinon le processus s’arrêtera jusqu’à ce que vous le fassiez) :

mv /lib/modules/2.4.18 /lib/modules/2.4.18.save (ou 2.4.18.old ou ce que vous voulez).

Ensuite, installer le nouveau noyau :

dpkg -i ../kernel-image-2.4.18_custom.1.0_i386.deb

 ATTENTIONL’avantage d’une compilation Debian sur une compilation ordinaire, c’est que GRUB (ou LILO) sera mis automatiquement à jour avec votre nouveau noyau.

Création du initrd

Depuis quelques temps (kernel 2.6.22 ??? je ne sais plus 0 :-) ), il faut ajouter un initrd pour votre noyau : sinon vous aurez un KERNEL PANIC !!! et des sueurs froides au redémarrage.

C’est expliqué ici : Debian : Créer un initrd.img pour votre kernel

Fin de compilation

C’est le moment de vérité : quittez et relancez l’ordinateur. Si votre noyau ne fonctionne pas, pas de panique, vous avez toujours l’ancien noyau accessible par GRUB (ou LILO) (sauf si vous avez modifié votre fichier /boot/grub/menu.lst ou /etc/lilo.conf : ce que je vous déconseille de faire)...

Votre première compilation n’est pas parfaite ? ce n’est pas grave, vous pouvez la modifier en relançant le processus.

Avantage : les options déjà choisies seront remises par défaut (on ne recommence pas de zéro).

Pour ma part, j’ai fait quatre compilations avant d’avoir un système qui fonctionne correctement (notamment lors de mes recherches pour installer le graveur...).

Je sais pertinemment que je pourrais encore améliorer cela avec une meilleure connaissance des divers paramètres du noyau. Mais bon, tout fonctionne correctement...

Retirer un ancien noyau

Si vous voulez retirer l’image de l’ancien noyau, utilisez Synaptic et retirez le paquet comme vous pouvez le faire pour un autre programme. C’est plus fiable et cela mettra à jour GRUB automatiquement.

C’est aussi possible en ligne de commande : apt-get remove linux-image-2.6.XX

 ATTENTION : vous devez avoir au moins un noyau actif pour utiliser votre ordinateur.

Astuce d’un internaute de 2004

"Salut la belle jaune, Bon site et bon article, et une petite astuce en plus :

Si tu ouvre le makefile tu trouves a la quatrième ligne un intitulé que tu remplies avec "ser" par exemple ce qui te donneras un noyau du genre 2.4.20-ser apres la compile. C cool car les modules dans /lib/modules seront automatiquement dans un fichier 2.4.20-ser et donc aucun risque d’effacer les anciens (on ne sait jamais clin d'oeil De plus n’oublies pas ton fichier systemap dans le /boot ça accélère la bécane.

Juste pour le fun."

Befluid

Yellowspoon Yellowspoon
bio www


[1] Vous pouvez mettre autre chose que ’custom.1.0’.

Navigation

Lettre d'information |  News | plan du site |  Kiosque web |  Sites


RSS rubrique Afficher le contenu dynamique RSS de Les Pinguinautes