Compilation du noyau Linux


apple tux
Cet article explique comment compiler soit même le noyau Linux à partir des sources.

Je précise quand même que tout ceci à un but pédagogique. Il est préférable en effet d'utiliser le noyau fourni par la distribution que vous utilisez, car ces derniers sont patchés et donc plus adaptés.

1. Préparation

Avant de commencer, il faudra récupérer la dernière version des sources du noyau sur le site officiel : www.kernel.org

On pourra ensuite ouvrir un terminal en root, et lancez les commandes suivantes :

cd /usr/local/src/
tar jxvf linux-*.tar.bz2
rm -f linux-*.tar.bz2
cd linux-*
make mrproper
cp /boot/config-2.6.18-1.2868.fc6 .config

Les deux dernières commandes servent à faire le ménage et installez la configuration de base du noyau.

2. Configuration

Pour lancer le logiciel de configuration du noyau, lancer la commande suivante :

make menuconfig

Naviguez dans les menus et ajoutez/supprimez les composants que vous souhaitez. Attention, cette opération reste réservée aux personnes averties.

Un petit exemple pour débuter, serait de choisir le bon processeur. Dans ce cas, il suffit d'aller dans le menu "Processor type and features" puis "Processor family" et sélectionnez votre processeur.

Si vous ne connaissez pas exactement les références de ce dernier, vous pouvez lancer la commande cat /proc/cpuinfo.

Une fois terminée, on met en place la configuration :

make oldconfig

3. Compilation

On lance la compilation du noyau (env 45 minutes) :

$ make 2> errors

Le 2> errors permet de rediriger les erreurs de compilation vers un fichier. Cela est souvent pratique. Par exemple, si en bas du fichier, on a un message indiquant que make a quitté avec une erreur, cela signifiera que la compilation a échoué.

Une fois compilée, on installe les modules :

make modules_install

Puis le noyau :

make install

Il ne reste plus qu'à vérifier qu'une nouvelle entrée a été ajoutée dans le fichier de configuration du Grub, pour démarrer sur notre propre noyau :

cat /boot/grub/menu.lst

Si tout est correcte, vous pourrez alors relancer votre système afin de tester ce dernier.


12 Commentaires pour "Compilation du noyau Linux"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    Si on a le message d'erreur suivant : error: curses.h: No such file or directory

    On devra installer ncurses-devel : yum install ncurses-devel

    RépondreRépondre
    pti-seb , le 29 décembre 2006 à 17:52
  •  

    Lors de l'utilisation d'une config d'un noyau différent de la version à compiler, il est n'est pas préférable d'utiliser la commande "make oldconfig" ?

    RépondreRépondre
    skydiverss , le 22 janvier 2007 à 16:41
  •  

    Je ne comprend pas bien ta question skydiverss car je mentionne bien l'utilisation de la commande make oldconfig ici.

    RépondreRépondre
    pti-seb , le 22 janvier 2007 à 18:55
  •  

    Il est grand temps que je prenne des vacances moi, j'avais lu make menuconfig désolé pour le dérangement ;)

    RépondreRépondre
    skydiverss , le 22 janvier 2007 à 19:04
  •  

    On peu aussi choisir la couleur pour l'interface ncurses, comme ceci :

    make MENUCONFIG_COLOR= menuconfig
    soit
    make MENUCONFIG_COLOR=mono menuconfig
    make MENUCONFIG_COLOR=blackbg menuconfig
    ...

    RépondreRépondre
    Ludovic , le 24 février 2007 à 00:04
  •  

    Salut à toi, j'ai suivi ce que tu as mis ds ton blog mais je n'y arrive pas.

    Voici le fichier divas.log qui m'a retourné ces erreurs:

    scripts/kconfig/mconf.c:91: error: static declaration of 'current_menu' follows non-static declaration
    scripts/kconfig/lkc.h:63: error: previous declaration of 'current_menu' was here

    Selon vous, ca signigie quoi ces messages, j'ai vu sur le web qu'il agirait d'une erreur de bug du kernel source.

    Cordialement

    RépondreRépondre
    jauneorange , le 2 mai 2007 à 09:51
  •  

    @jauneorange : aucune idées ...

    RépondreRépondre
    pti-seb , le 6 mai 2007 à 23:54
  •  

    @jauneorange :
    J'ai également rencontré ce probleme lors d'une compilation, non pas d'un noyau, mais de RTAI 3.2. Cela viendrait apparement de l'utilisation de gcc 3.3.4

    Personnellement, je ne peux pas prendre une version supérieure de gcc, donc j'ai résolu le probleme en bidouillant mconf.c et en enlevant le terme "static" de la déclaration de "*current_menu".

    "static struct menu *current_menu;"
    devient
    "struct menu *current_menu;"

    En espérant que ça t'ai aidé.

    RépondreRépondre
    Kaezar , le 26 juillet 2007 à 11:41
  •  

    Deux remarques sur la première copie de terminal:

    Les options de la commande tar sont précédées d'un "-".
    Le numéro de version du config sont propres à ta machine.

    Faut pas perturber les néophites

    RépondreRépondre
    jean , le 22 août 2007 à 18:40
  •  

    @Jean : pour la commande tar, cela dépand de la distribution que tu utilise. Sinon les numéros de version on changé depuisdonc c'est normal qu'il corresponde pas ...

    RépondreRépondre
    pti-seb , le 22 août 2007 à 19:49
  •  

    Bonjour,

    J'ai consulté votre CV et je suis très intéressée par votre profil.
    En effet, nous recherchons un ingénieur software linux kernel pour rejoindre l'équipe logicielle R&D de la société Wyplay (www.wyplay.com) à forte compétence Linux pour le développement de l'ensemble des produits actuels et à venir (Mediacenters et dérivés, Multimédia, boîtiers communicants, VoIP, VOD, ...). Ce poste est basé à Marseille, le contrat est un CDI.
    Voici l'annonce :
    Profil :
    - Vous êtes passionné du monde Linux et justifiez d'une expérience professionnelle et/ou personnelle dans ce domaine. Vous connaissez les drivers linux.
    - Vous maîtrisez la programmation C et C++
    - Vous avez déjà ou êtes motivés à évoluer dans un contexte de rigueur nécessaire au développement de produits grand public innovants, complexes, dans un souci de perfection, de stabilité.
    - Vous avez un bon sens de la communication.
    Compétences + :
    - Télévision numérique, Produits Audio/Vidéo orientés Consumer Electronic, ST 7100
    Merci de me communiquer vos coordonnées si ce poste vous intéresse.
    Bien cordialement,

    Blandine LORIDAN

    RépondreRépondre
    blandine , le 4 octobre 2007 à 18:01
  •  

    @blandine : je vous remercie de l'attention que vous portez à mon profil professionnel.

    Néanmoins je ne suis pas intéressé pour l'instant par votre offre (je préfère rester en région Bretagne).

    RépondreRépondre
    pti-seb , le 5 octobre 2007 à 09:01
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum