Le noyau Linux est la base des systèmes d’exploitation de type Unix.
Le kernel Linux est responsable de la communication entre le matériel et les logiciels et de l’allocation des ressources disponibles.
Toutes les distributions Linux sont basées sur un noyau prédéfini. Mais, si vous souhaitez désactiver plusieurs options et pilotes ou essayer des correctifs expérimentaux, vous devez recompiler un noyau Linux.
Cela peut aussi être nécessaire pour bénéficier de la version du noyau Linux.
Dans ce guide étape par étape, vous apprendrez comment compiler un noyau Linux à partir de zéro.
Introduction
La compilation du noyau Linux nécessite cinq grandes phases :
- Installer les paquets de compilations nécessaires
- Télécharger les sources du noyau Linux
- Choisir les modules et composants à activer dans le noyau
- Compiler le noyau et l’installer dans le système
- Redémarrer sur le nouveau kernel
Prévoyez 15 Go d’espace libre sur le disque pour compiler le noyau Linux lorsque vous le faites avec les paramètres par défaut.
Comment compiler le noyau Linux
Préparer le système à la compilation du noyau Linux
Sur une distribution Linux de type Debian, installez les composants suivants :
sudo apt-get update
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
The command we used above installs the following packages:
Package | Package description |
git |
Trace et enregistre toutes les modifications apportées au code source au cours du développement. Il permet également de revenir sur les modifications |
fakeroot |
Outil d’emballage qui crée le faux environnement racine. |
build-essential |
Installe les outils de développement tels que C, C++, gcc et g++. |
ncurses-dev |
Bibliothèque de programmation qui fournit une API pour les terminaux à base de texte |
xz-utils |
Permet une compression et une décompression rapides des fichiers |
libssl-dev |
Prend en charge SSL et TSL qui cryptent les données et sécurisent la connexion Internet |
bc (Basic Calculator) |
Un langage de script mathématique qui permet l’exécution interactive d’instructions |
flex (Fast Lexical Analyzer Generator) |
Génère des analyseurs lexicaux qui convertissent les caractères en jetons |
libelf-dev |
Ajoute une bibliothèque partagée pour la gestion des fichiers ELF (fichiers exécutables, vidage du noyau et code objet) |
bison |
Générateur d’analyseur GNU qui convertit la description de la grammaire en un programme C |
Télécharger le noyau Linux
Vous pouvez télécharger les sources depuis les dépôts de votre distribution.
Cela va vous donner les sources de la version du noyau installé.
Ces dernières seront disponibles dans le dossier /usr/src/.
sudo apt-get install linux-source
Si vous désirez télécharger une version spécifique ou la dernière version du noyau linux, rendez-vous sur le site kernel.org.
Vous pouvez télécharger directement les sources avec wget.
Ensuite on décompresse l’archive avec la commande tar.
cd /usr/src/
sudo wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.0.5.tar.xz
tar xvf linux-6.0.5.tar.xz
Configurer les modules et composants du noyau Linux
Avant de compiler le noyau, vous devez indiquer à GCC comment vous souhaitez procéder. Pour ce faire, vous utilisez un outil de ligne de commande appelé make. Tapez cette commande :
sudo make menuconfig
Cela ouvre une interface Ncurses dans laquelle vous pouvez activer et désactiver les modules du noyau et les fonctionnalités supportées par ce dernier.
Pour rappel, un module de noyau est un fichier d’objet qui contient du code qui peut étendre la fonctionnalité du noyau. On peut charger et décharger un module à tout moment.
Essentiellement, activer des composants jouent sur la taille du noyau Linux.
Il faut donc dans la logique n’activer que ce dont vous avez besoin.
Le noyau prendra moins en mémoire et donc votre système sera optimisé.
Mais si vous n’avez pas prévu de pousser une fonctionnalité en module ou intégré directement dans le noyau, vous devrez recompiler à nouveau le noyau.
Pire encore s’il s’agit d’un pilote matériel, ce dernier ne fonctionnera pas.
Naviguez dans les menus et sous-menus pour activer les modules.
Une fois terminée, sélectionnez Save puis Exit.
Cela crée un fichier appelé .config, qui indique à GCC ce qu’il doit compiler à partir des sources du noyau.
Notez que le fichier de configuration du noyau actif est disponible dans le dossier /boot/
Vous pouvez le recopier pour appliquer la configuration du noyau Linux par défaut.
sudo cp /boot/config-$(uname -r) .config
Compiler le noyau Linux
Maintenant tout est prêt pour lancer la compilation du noyau.
Pour cela, on utilise la commande make :
sudo make
Les actions effectués par make s’affichent en liste.
Patientez car cela va beaucoup de temps étant donné que le noyau Linux est assez volumineux.
L’opération se termine avec un retour au prompt.
Ensuite on peut installer les modules.
sudo make modules_install
Vous pouvez passer la commande en une seule ligne de cette manière :
sudo make modules_install
Les fichiers de module .ko se créeent et l’opération se termine avec le retour du prompt du shell.
La commande make accepte des drapeaux pour modifier des options de compilation.
Par exemple INSTALL_MOD_STRIP à 1 supprime tous les symboles qui ne sont pas nécessaires au traitement de la relocalisation. Cela va réduire la taille du noyau Linux.
Par exemple :
sudo make INSTALL_MOD_STRIP=1 modules_install
La liste complète est donnée sur le lien suivant : https://www.kernel.org/doc/html/latest/kbuild/kbuild.html
Installer le noyau compilé dans le système
Pour installer le nouveau noyau dans le système, utilisez la commande suivante :
sudo make install
Cette opération génère et installe les fichiers initrd.img et vmlinuz.
Vous n’avez pas besoin de mettre à jour la configuration du chargeur de démarrage GRUB car la commande précédente s’en charge.
Mais au besoin, la voici :
sudo update-grub
Enfin redémarrez votre ordinateur pour booter sur le nouveau noyau Linux.
Pour vérifier la version du noyau Linux :
uname -a
Liens
- Comment compiler un logiciel depuis des sources sur Linux
- Pourquoi compiler ses programmes depuis les sources sur Linux
- Comment utiliser la commande make avec exemples
- Qu’est-ce que le Noyau Linux (kernel) : rôle, versions et comment ça marche
- Les modules du noyau Linux : charger, décharger et fonctionnement
- Comment compiler le noyau Linux
- Utiliser modprobe et configurer /etc/modprobe.d/
- Ajouter un module du noyau Linux avec module assistant sur Debian
- Qu’est-ce que initrd dans Linux : rôle et comment ça marche
- Qu’est-ce que vmlinuz dans Linux
- Comment connaître la version du noyau Linux
- sysctl : paramétrer le noyau Linux
- NTFS, EXT4 : Comprendre les systèmes de fichiers
L’article Comment compiler le noyau Linux est apparu en premier sur malekal.com.
0 Commentaires