GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compiler le noyau Linux à partir de la source pour créer un noyau personnalisé

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

Linux
  1. Comment compiler Brotli à partir de la source sur Ubuntu 18.04 LTS

  2. Comment compiler Brotli à partir de la source sur CentOS 7

  3. Comment installer et configurer Nginx à partir de la source sous Linux

  4. Comment compiler et installer un logiciel à partir du code source sous Linux

  5. Comment compiler ma propre bibliothèque standard glibc C à partir des sources et l'utiliser ?

Comment construire Nginx à partir de la source sur CentOS 7

Comment installer un programme à partir de la source sous Linux

Comment construire des paquets Debian à partir de la source

Comment installer un logiciel à partir de la source sous Linux

Comment compiler PHP7.0/PHP7.1 à partir de la source sur Arch Linux

Comment construire le noyau Linux à partir de zéro