Le noyau Linux est la force vitale de toute la famille de systèmes d'exploitation Linux, y compris Ubuntu, CentOS et Fedora.
Pour la plupart, vous n'avez pas besoin de compiler le noyau, car il est installé par défaut lorsque vous installez le système d'exploitation. De plus, lorsqu'une mise à jour critique est effectuée sur le noyau, vous pouvez utiliser yum ou apt-get pour mettre à jour le noyau sur votre système Linux.
Cependant, vous pouvez rencontrer certaines situations, où vous pouvez avoir pour compiler le noyau à partir des sources. Voici quelques situations où vous devrez peut-être compiler le noyau sur votre système Linux.
- Pour activer des fonctionnalités expérimentales qui ne font pas partie du noyau par défaut.
- Pour activer la prise en charge d'un nouveau matériel qui n'est actuellement pas pris en charge par le noyau par défaut.
- Pour déboguer le noyau
- Ou, juste pour savoir comment fonctionne le noyau, vous pouvez explorer le code source du noyau et le compiler vous-même.
Dans ce tutoriel, nous expliquerons comment compiler le noyau Linux à partir des sources.
Notez également que si vous souhaitez simplement compiler un pilote, vous n'avez pas besoin de compiler le noyau. Vous n'avez besoin que du paquet linux-headers du noyau.
1. Téléchargez le dernier noyau stable
La première étape consiste à télécharger le dernier noyau stable depuis kernel.org.
# cd /usr/src/ # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz
2. Décompressez la source du noyau
La deuxième étape consiste à décompresser le fichier source du noyau pour la compilation.
# tar -xvJf linux-3.9.3.tar.xz
3. Configurer le noyau
Le noyau contient près de 3000 options de configuration. Pour que le noyau soit utilisé par la plupart des gens sur la plupart des matériels, la distribution Linux comme Ubuntu, Fedora, Debian, RedHat, CentOS, etc. inclura généralement la prise en charge du matériel le plus courant. Vous pouvez prendre n'importe quelle configuration de la distribution, et en plus vous pouvez ajouter votre propre configuration, ou vous pouvez configurer le noyau à partir de zéro, ou vous pouvez utiliser la configuration par défaut fournie par le noyau.
# cd linux-3.9.3 # make menuconfig
Le make menuconfig lancera une interface utilisateur textuelle avec des options de configuration par défaut, comme indiqué sur la figure. Vous devez avoir installé les packages "libncurses et libncurses-devel" pour que cette commande fonctionne.
Nous utiliserons la configuration par défaut fournie par le noyau. Sélectionnez donc "Enregistrer" et enregistrez la configuration sous le nom de fichier ".config".
Voici un exemple de fichier ".config" :
CONFIG_MMU=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y
4. Compiler le noyau Linux
Compilez le noyau principal :
# make
Compilez les modules du noyau :
# make modules
Installez les modules du noyau :
# make modules_install
À ce stade, vous devriez voir un répertoire nommé /lib/modules/3.9.3/ dans votre système.
5. Installer le nouveau noyau
Installez le nouveau noyau sur le système :
# make install
La commande make install créera les fichiers suivants dans le répertoire /boot.
- vmlinuz-3.9.3 – Le noyau actuel
- System.map-3.9.3 – Les symboles exportés par le noyau
- initrd.img-3.9.3 - l'image initrd est le système de fichiers racine temporaire utilisé pendant le processus de démarrage
- config-3.9.3 – Le fichier de configuration du noyau
La commande « make install » mettra également à jour grub.cfg par défaut. Nous n'avons donc pas besoin de modifier manuellement le fichier grub.cfg.
6. Démarrez Linux sur le nouveau noyau
Pour utiliser le nouveau noyau que vous venez de compiler, redémarrez le système.
# reboot
Puisque, dans grub.cfg, le nouveau noyau est ajouté comme démarrage par défaut, le système démarrera à partir du nouveau noyau. Juste au cas où vous auriez des problèmes avec le nouveau noyau, vous pouvez sélectionner l'ancien noyau dans le menu grub lors du démarrage et vous pouvez utiliser votre système comme d'habitude.
Une fois le système démarré, utilisez la commande uname pour vérifier que la nouvelle version du noyau Linux est installée.
$ uname -r 3.9.3