Comment construire et installer un noyau personnalisé sur Ubuntu

Image en vedette du noyau personnalisé Ubuntu

La pensée de compiler vos propres noyaux fait peur aux nouveaux utilisateurs de Linux. Cela semble terrifiant, construire la partie la plus cruciale de votre système à partir de zéro. La vérité est que construire le noyau Linux sur Ubuntu est vraiment facile.

Construire des noyaux Linux ne nécessite pas de programmation. Certains des meilleurs programmeurs du monde ont déjà écrit tout le code. Vous devez simplement choisir les fonctionnalités que vous souhaitez et tout assembler. Ici, nous allons vous montrer comment construire et installer un noyau personnalisé sur Ubuntu.

Table des matières

  • Obtenir les dépendances
  • Obtenir la source du noyau pour Ubuntu
  • Configuration de votre construction
  • Configuration du noyau Ubuntu
  • Construction des paquets de noyau pour Ubuntu
  • Installation du noyau
  • Installation de noyaux binaires personnalisés
  • Installation de Mainline sur Ubuntu
  • Utilisation de Mainline

Lisez aussi : Comment rétrograder le noyau sous Linux

Obtenir les dépendances

Avant même de toucher un noyau, vous avez besoin des bons outils pour le construire. Utilisez la commande ci-dessous pour les télécharger depuis les dépôts d’Ubuntu.

sudo apt install wget build-essential bison flex libncurses-dev libssl-dev libelf-dev

Obtenir la source du noyau pour Ubuntu

Maintenant, vous pouvez récupérer la source que vous souhaitez construire. Tous les noyaux sont disponibles dans les dépôts officiels de Linux. Vous pouvez jeter un œil aux dernières versions dans leur dépôt cdn. Au moment de cet article, la dernière version est 5.16. Vous pouvez télécharger en utilisant les commandes :

cd /home/$USER/  
mkdir kernelbuild  
cd kernelbuild  
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz

Télécharger le noyau personnalisé Ubuntu

Cela prendra un certain temps pour télécharger le noyau, alors soyez patient.

Configuration de votre construction

Commencez votre configuration en décompressant le fichier tar du noyau. Ensuite, copiez la configuration de votre noyau existant dans celui-ci.

tar xavf linux-5.16.19.tar.xz && cd ./linux-5.16.19  
cp /boot/config-`uname -r` .config

Maintenant, vous devez adapter l’ancienne configuration au nouveau noyau.

make oldconfig

Ce script vous demandera quoi faire avec chaque nouvelle fonctionnalité. Si vous souhaitez utiliser les valeurs par défaut, utilisez make olddefconfig à la place.

Lisez aussi : Comment construire un nouveau PC pour Linux

Configuration du noyau Ubuntu

Vous pouvez laisser votre configuration telle quelle, et vous seriez probablement en sécurité. Il n’y a pas de sens à construire un noyau personnalisé si vous n’allez pas le personnaliser, cependant.

Pour personnaliser votre configuration, exécutez

make menuconfig

Exemple de Makeconfig du noyau personnalisé Ubuntu

Un menu bleu s’ouvrira avec une liste de catégories. Ces catégories contiennent des fonctionnalités que vous pouvez sélectionner pour les intégrer dans votre noyau.

Exemple de Btrfs du noyau personnalisé Ubuntu

Par exemple, si vous souhaitez vraiment intégrer le support du système de fichiers BTRFS directement dans le noyau et activer d’autres fonctionnalités, vous devez aller dans “Systèmes de fichiers ->”. Ensuite, faites défiler jusqu’à ce que vous voyiez “Support du système de fichiers Btrfs.” Sélectionnez l’option que vous souhaitez et appuyez sur la barre d’espace. La barre d’espace fait défiler entre “M”, “*” et vide.

  • “M” signifie que la fonctionnalité sera construite en tant que module qui sera chargé si nécessaire lorsque Ubuntu démarre.
  • “*” signifie que la fonctionnalité sera intégrée dans le noyau et toujours chargée.

Le script n’inclut pas les options vides dans le produit final. Lorsque vous avez terminé de configurer les choses, nettoyez le répertoire.

make clean

Maintenant, votre noyau est prêt à être construit.

Construction des paquets de noyau pour Ubuntu

Il existe une méthode dans Ubuntu pour construire leurs noyaux, mais cela vous oblige à utiliser des scripts écrits pour des versions plus anciennes. Parfois, cela va, d’autres fois cela casse horriblement. Donc, il est généralement préférable d’utiliser la méthode Linux plus générique avec GNU make.

make -j `getconf _NPROCESSORS_ONLN`  
make deb-pkg LOCALVERSION=-custom

Tout ce que fait cette ligne est de compiler le noyau en paquets .deb en utilisant le nombre de cœurs CPU sur votre système plus un. Cela ajoute également “custom” à la fin de la version du paquet pour différencier votre noyau personnalisé des autres.

Remarque : Il peut falloir des heures pour compiler un noyau. Soyez patient.

Installation du noyau

Vous trouverez vos nouveaux paquets de noyau un répertoire au-dessus. Ils seront facilement identifiables par leur numéro de version. Vous pouvez utiliser dpkg pour les installer.

cd ./../  
sudo dpkg -i linux-firmware-image-5.16.19-custom_5.16.19-custom-1_amd64.deb  
sudo dpkg -i linux-libc-dev_5.16.19-custom-1_amd64.deb  
sudo dpkg -i linux-headers-5.16.19-custom_5.16.19-custom-1_amd64.deb  
sudo dpkg -i linux-image-5.16.19-custom-dbg_5.16.19-custom-1_amd64.deb  
sudo dpkg -i linux-image-5.16.19-custom_5.16.19-custom-1_amd64.deb

Lorsque l’installation est terminée, redémarrez votre ordinateur. Ubuntu démarrera automatiquement sur votre nouveau noyau. Vous pouvez vérifier cela en exécutant uname -r dans un terminal lorsque cela démarre.

Installation de noyaux binaires personnalisés

Une autre façon d’utiliser des noyaux Linux personnalisés dans Ubuntu est d’installer une version binaire précompilée. Contrairement à la version basée sur la source, ce sont des copies du noyau qui ont déjà été compilées pour le système et l’architecture que vous utilisez.

Liste des noyaux personnalisés Ubuntu

De plus, les noyaux binaires personnalisés peuvent également vous offrir la flexibilité de pouvoir passer d’une version de noyau à une autre pour votre installation Ubuntu. Cela peut être particulièrement utile si vous utilisez une machine avec des problèmes de compatibilité matérielle et que vous ne souhaitez pas vous occuper de la compilation de votre propre noyau.

Sachant cela, la méthode la plus populaire pour installer des noyaux binaires personnalisés est via Mainline. Il s’agit d’un programme GUI développé par bkw777 qui vise à simplifier le processus d’installation d’un noyau Linux.

Mainline du noyau personnalisé Ubuntu

Dans cela, ce programme combine toutes les étapes que vous devez suivre pour télécharger et configurer correctement le noyau. Par exemple, Mainline vous permet de choisir facilement un noyau binaire et un en-tête que vous souhaitez installer. Il conservera ensuite cette version dans un cache où vous pourrez facilement la charger chaque fois que vous en aurez besoin.

Lisez aussi : 5 outils pour créer facilement une distribution Linux personnalisée

Installation de Mainline sur Ubuntu

Avec cela, l’installation de Mainline est relativement facile. Tout d’abord, vous devez dire à apt d’inclure le dépôt de paquets de Mainline. Pour ce faire, vous pouvez exécuter la commande suivante depuis votre terminal :

sudo add-apt-repository ppa:cappelikan/ppa

Ajouter un nouveau dépôt Ubuntu personnalisé

À partir de là, vous devez ensuite mettre à jour le répertoire des paquets d’Ubuntu. Cela permettra à apt de lire à partir du dépôt que vous venez d’ajouter et, par conséquent, de vous permettre de télécharger Mainline à travers celui-ci :

sudo apt update

Avec cela, la seule chose qui reste à faire est d’installer Mainline lui-même :

sudo apt install mainline

Installation de Mainline sur Ubuntu personnalisé

Utilisation de Mainline

Une fois terminé, vous pouvez maintenant charger Mainline en allant dans votre menu d’application et en le recherchant. Le programme Mainline se chargera alors et affichera tous les paquets de noyau que vous pouvez installer pour votre système.

Recherche Mainline du noyau personnalisé Ubuntu

À partir de là, vous pouvez sélectionner et installer la version du noyau que vous souhaitez utiliser pour votre système. Par exemple, je peux sélectionner “Linux 5.16.19” et cliquer sur Installer dans la barre latérale droite pour charger complètement cette version du noyau sur ma machine.

Installer un nouveau noyau Ubuntu personnalisé 1

D’un autre côté, je peux également utiliser Mainline pour supprimer les noyaux que je ne souhaite plus utiliser. Par exemple, je peux sélectionner “Linux 5.15” et cliquer sur Supprimer dans la même barre latérale droite pour supprimer ce noyau de mon système.

Désinstaller un ancien noyau Ubuntu personnalisé

Faire cela vous permet d’ajouter ou de supprimer proprement tous les fichiers et binaires liés à cette version du noyau. Cela est dû au fait qu’un binaire de noyau inclut également les bibliothèques, les en-têtes et le firmware qui, à leur tour, lui permettent de fonctionner correctement.

Lisez aussi : Comment résoudre l’échec de vérification de sécurité du noyau sous Windows 10

Questions fréquentes

Quels sont les problèmes liés à l’utilisation d’un noyau personnalisé ?

L’un des plus grands problèmes liés à l’utilisation d’un noyau personnalisé est que vous retirez une pièce vitale de votre système des mises à jour régulières. Cela signifie que vous devez installer manuellement toutes les mises à jour du noyau à partir de ce moment. Cela inclut des fonctionnalités matérielles supplémentaires ainsi que des mises à jour de sécurité critiques.

Cela peut poser problème si vous avez besoin d’un système qui fonctionne et se maintient avec une intervention minimale de l’utilisateur. Ainsi, utiliser un noyau personnalisé nécessite non seulement de savoir quelles fonctionnalités du noyau vous souhaitez, mais aussi d’être conscient des mises à jour critiques.

Y a-t-il des inconvénients à utiliser un binaire de noyau ?

Oui. L’un des principaux inconvénients de l’utilisation d’un binaire de noyau est que vous n’avez aucun contrôle sur ses fonctionnalités intégrées. Cela signifie que, contrairement à un noyau basé sur la source, un binaire de noyau ne contiendra aucune optimisation et support spécifiques au matériel.

Cela signifie que si vous avez l’intention d’utiliser des pièces de matériel exotiques avec Ubuntu, vous devrez compiler votre noyau à partir de zéro.

Est-il préférable de compiler une fonctionnalité du noyau en tant que module ou intégrée ?

Cela dépend largement de ce que vous souhaitez faire avec votre noyau. Par exemple, compiler une fonctionnalité en tant qu’intégrée garantira qu’elle se chargera immédiatement une fois le noyau chargé en mémoire. Cependant, faire cela augmentera la taille globale du noyau final.

En revanche, compiler une fonctionnalité en tant que module l’enlèvera du noyau de base. Au lieu de cela, ce module se chargera une fois que le noyau est déjà en mémoire. Cela réduit la taille du fichier du noyau final, ce qui, à son tour, le rend rapide et sécurisé.

Sachant cela, il est bon de compiler les fonctionnalités du noyau en tant qu’intégrées car cela réduit les chances de problèmes de compatibilité dans votre système. Cependant, vous devez également faire attention à ne pas inclure trop de fonctionnalités, car cela augmentera considérablement la taille globale de votre noyau.