GNU/Linux >> Tutoriels Linux >  >> Linux

Comment construire le noyau Linux à partir de zéro {Guide étape par étape}

Présentation

Le noyau Linux est la base des systèmes d'exploitation de type Unix. Le noyau est responsable de la communication entre le matériel et le logiciel 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 créer un noyau Linux.

Dans ce guide étape par étape, vous apprendrez à créer et à compiler un noyau Linux à partir de zéro.

Prérequis

  • Un système exécutant Linux
  • Accès au terminal/ligne de commande
  • Un compte utilisateur avec sudo/root privilèges
  • 12 Go d'espace disponible sur le disque dur

Construire le noyau Linux

Le processus de construction d'un noyau Linux prend sept étapes faciles à réaliser. Cependant, la procédure nécessite beaucoup de temps, en fonction de la vitesse du système.

Suivez les étapes ci-dessous pour créer le dernier noyau Linux au moment de la rédaction de cet article.

Remarque : Si la version sur le site Web du noyau ne correspond pas à celle des étapes ci-dessous, utilisez ces commandes et remplacez le numéro de version du noyau.

Étape 1 :Téléchargez le code source

1. Visitez le site Web officiel du noyau et téléchargez la dernière version du noyau. Le fichier téléchargé contient un code source compressé.

2. Ouvrez le terminal et utilisez la commande wget pour télécharger le code source du noyau Linux :

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz

La sortie affiche le message "sauvegardé" lorsque le téléchargement est terminé.

Étape 2 :Extrayez le code source

Lorsque le fichier est prêt, exécutez la commande tar pour extraire le code source :

tar xvf linux-5.9.6.tar.xz

La sortie affiche le code source extrait du noyau :

Étape 3 :Installez les packages requis

Installez des packages supplémentaires avant de construire un noyau. Pour ce faire, exécutez cette commande :

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

La commande que nous avons utilisée ci-dessus installe les packages suivants :

Forfait Description du package
git Suit et enregistre toutes les modifications apportées au cours du développement dans le code source. Il permet également d'annuler les modifications.
fakeroot Outil d'empaquetage qui crée le faux environnement racine.
build-essential Installe des outils de développement tels que C, C++, gcc et g++.
ncurses-dev Bibliothèque de programmation qui fournit une API pour les terminaux textuels.
xz-utils Fournit 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 (Calculatrice de base) Un langage de script mathématique qui prend en charge l'exécution interactive d'instructions.
flex (Générateur d'analyseur lexical rapide) Génère des analyseurs lexicaux qui convertissent les caractères en jetons.
libelf-dev Émet une bibliothèque partagée pour la gestion des fichiers ELF (fichiers exécutables, core dumps et code objet)
bison Générateur d'analyseur syntaxique GNU qui convertit la description grammaticale en un programme C.

Étape 4 :Configurer le noyau

Le code source du noyau Linux est fourni avec la configuration par défaut. Cependant, vous pouvez l'adapter à vos besoins. Pour ce faire, suivez les étapes ci-dessous :

1. Accédez à linux-5.9.6. répertoire en utilisant le cd commande :

cd linux-5.9.6

2. Copiez le fichier de configuration existant en utilisant le cp commande :

cp -v /boot/config-$(uname -r) .config

3. Pour apporter des modifications au fichier de configuration, exécutez le make commande :

make menuconfig

La commande lance plusieurs scripts, qui ouvrent alors le menu de configuration :

4. Le menu de configuration comprend des options telles que les paramètres du micrologiciel, du système de fichiers, du réseau et de la mémoire. Utilisez les flèches pour faire une sélection ou choisissez AIDE pour en savoir plus sur les options. Lorsque vous avez terminé d'apporter les modifications, sélectionnez SAVE, puis quittez le menu.

Remarque : La modification des paramètres de certaines options peut conduire à un noyau non fonctionnel. Si vous ne savez pas quoi changer, laissez les paramètres par défaut.

Étape 5 :Créer le noyau

1. Commencez à créer le noyau en exécutant la commande suivante :

make

Le processus de création et de compilation du noyau Linux prend un certain temps.

Le terminal répertorie tous les composants du noyau Linux :gestion de la mémoire, pilotes de périphériques matériels, pilotes de système de fichiers, pilotes réseau et gestion des processus.

2. Installez les modules requis avec cette commande :

sudo make modules_install

3. Enfin, installez le noyau en tapant :

sudo make install 

La sortie indique fait une fois terminé :

Étape 6 :Mettre à jour le chargeur de démarrage (facultatif)

Le chargeur de démarrage GRUB est le premier programme qui s'exécute lorsque le système s'allume.

Le make install La commande effectue ce processus automatiquement, mais vous pouvez également le faire manuellement.

1. Mettez à jour initramfs vers la version du noyau installée :

sudo update-initramfs -c -k 5.9.6

2. Mettez à jour le chargeur de démarrage GRUB avec cette commande :

sudo update-grub

Le terminal imprime le processus et le message de confirmation :

Étape 7 :Redémarrez et vérifiez la version du noyau

Lorsque vous avez terminé les étapes ci-dessus, redémarrez la machine.

Lorsque le système démarre, vérifiez la version du noyau à l'aide de uname commande :

uname -mrs

Le terminal imprime la version actuelle du noyau Linux.


Linux
  1. Comment charger les modules du noyau Linux à partir du code C ?

  2. Comment fonctionne copy_from_user du noyau Linux en interne ?

  3. Comment coder un module du noyau Linux ?

  4. Comment construire un module de noyau Linux pour qu'il soit compatible avec toutes les versions du noyau ?

  5. Comment puis-je réserver un bloc de mémoire à partir du noyau Linux ?

Comment accéder aux partitions Linux à partir de Windows 10

Comment supprimer une commande de l'historique sous Linux

Comment installer un logiciel à partir de la source sous Linux

Comment supprimer les caractères (^M) d'un fichier sous Linux

Comment construire le noyau Linux à partir de zéro

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