Généralités système Linux

kernel - Compiler son kernel Linux

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

linux_logomed







Introduction





Le noyau Linux (ou kernel en anglais) est un noyau de système d'exploitation de type UNIX. Le noyau Linux est un logiciel libre développé essentiellement en langage C par des milliers de bénévoles et salariés communiquant par Internet.



Le noyau est le cœur du système, c'est lui qui s'occupe de fournir aux logiciels une interface pour utiliser le matériel.



C'est lui qui amorce le système d'exploitation.

Il est possible d'avoir plusieurs noyaux et utiliser celui de votre choix. Il est même recommandé d'avoir toujours un noyau fonctionnel sur sa machine.



Pourquoi compiler son noyau ? Les noyaux fournis par défaut dans votre distribution GNU/Linux sont des noyaux capables de tourner sur un maximum de machines et de matériels. Ils sont donc souvent plus lourds, mais la différence de rapidité est en général assez faible. En fait les vraies raisons de compiler son propre noyau sont les suivantes :



  • Comprendre comment fonctionne le noyau Linux.
  • Faire fonctionner un matériel ou une fonctionnalité qui n'est pas pris en charge par votre noyau actuel.
  • Vous voulez passer le temps.







Prérequis





Pour compiler son noyau, il est nécessaire d'avoir quelques prérequis :



Matériel





Un bon processeur pour que la compilation soit rapide.

Prévoir 1Go de RAM au moins.

Avoir 10Go de place sur le disque dur (partition /usr/src)



Pour info avec un kernel sur serveur assez épuré, 1h avec un Intel(R) Pentium(R) D CPU 2.80GHz, et moins de 15mn avec Intel(R) Core(TM) i7-3610QM CPU @ 3.20GHz





Logiciel





Sur la distribution concernée, on a besoin de quelques logiciels :



  • wget : pour télécharger les sources du noyau (ou un navigateur Internet en graphique)
  • tar : pour extraire l'archive du noyau
  • xz : pour décompresser le noyau
  • ncurses : pour afficher le menu de configuration
  • make : pour lancer le processus de compilation
  • gcc (c++) : le compilateur C





Les paquets se nomment ainsi suivant les distributions:



  • Gentoo / Calculate Linux : net-misc/wget app-arch/tar app-arch/xz-utils sys-libs/ncurses sys-devel/make sys-devel/gcc
  • Mageia : wget tar xz ncurses-devel make gcc-c++







Mise en œuvre





Dans un premier temps, il est nécessaire de se connecter en root.

Toutes les commandes doivent être lancées en root.



Récupération des ressources





On se positionne dans le dossier /usr/src . C'est le dossier qui contient des fichiers de code source, selon la norme FHS (File Hierarchy Standard)



Code BASH :
cd /usr/src




On récupère ensuite le kernel depuis le site kernel.org (Je prends, en date de la rédaction de cet article le dernier noyau LTS, soit le 3.14.33 )



kernel_org





Code BASH :
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.33.tar.xz




On décompresse ensuite l'archive compressée :



Code BASH :
tar -xf linux-3.14.33.tar.xz




Et on se rend dans le dossier précédemment désarchivé



Code BASH :
cd linux-3.14.33






Préparation à la compilation