Linux Mint : Compiler un noyau patché

Il existe beaucoup de documentation sur la façon de compiler un noyau Ubuntu / Linux Mint à partir des sources, mais il s’avère que la plupart sont incomplètes et/ou obsolètes. L’utilisation d’une méthode inadaptée n’est décelable qu’après plusieurs heures de compilation, découvrir la bonne méthode par tâtonnement peut s’avérer particulièrement frustrant.

Voici la bonne méthode (source en anglais), éditée par mes soins pour éviter de dérouler toute la procédure en super-utilisateur (root), car cela n’est pas nécessaire.

1. Activer les dépôts de sources.

Depuis le menu Mint, lancer le logiciel « Sources de logiciels », et activer « Dépôts de code source ».

Cliquer ensuite sur « Valider » pour mettre a jour le cache.

2. Installer les outils de compilation

Exécuter en console les commandes suivantes :

sudo apt update
sudo apt build-dep linux linux-image-$(uname -r)

sudo apt install libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm build-essential libncurses5-dev gcc bc dwarves

3. Récupérer le code source du noyau

Le code source du noyau Linux est disponible sur le site http://kernel.org, mais ce qui nous intéresse ici est le noyau patché par Ubuntu, qui est utilisé par Linux Mint. Téléchargeons les sources dans un dossier créé à cette fin :

mkdir linux-src
cd linux-src
apt source linux-image-unsigned-$(uname -r)

Plaçons-nous dans le dossier téléchargé, et donnons les permissions d’exécutions au scripts :

cd linux-hwe-6.2-6.2.0  # A mettre à jour avec le nom de votre noyau
chmod a+x debian/scripts/*
chmod a+x -R ./scripts

4. Appliquer vos patches

En exécutant, pour chaque patch, la commande suivante

patch -p1 <CHEMIN_DU_FICHIER_PATCH>.patch

5. Copier la configuration

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

# update config for new kernel
make oldconfig

6. Lancer la compilation

En exécutant la commande suivante :

make -j16 deb-pkg LOCALVERSION=-custom

L’argument « -j16 » permet de sélectionner le nombre de tâches exécutées en parallèle, une valeur plus élevée nécessitant plus de ressources matérielles (RAM notamment). La valeur idéal correspond généralement au nombre de thread exécutables en parallèle sur le système (par exemple 4 dans le cas d’un processeur 2 core / 4 threads).

7. Installer le nouveau noyau

# change to parent dir
cd ..

dpkg -i *.deb

update-grub

8. Démarrer sur le nouveau noyau

Le nouveau noyau est maintenant disponible au démarrage, dans le menu du chargeur d’amorçage Grub. Attention, ce n’est pas forcément le choix par défaut ! Il est reconnaissable a son préfixe « custom ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.