Compilation du noyau Linux
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 commentaireSi on a le message d'erreur suivant : error: curses.h: No such file or directory
On devra installer ncurses-devel : yum install ncurses-devel
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" ?
Je ne comprend pas bien ta question skydiverss car je mentionne bien l'utilisation de la commande make oldconfig ici.
Il est grand temps que je prenne des vacances moi, j'avais lu make menuconfig désolé pour le dérangement
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
...
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
@jauneorange : aucune idées ...
@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é.
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
@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 ...
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
@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).