Introduction
Je pars du principe que vous avez déjà votre distribution Debian à jour, avec un compte root opérationnel.
Prérequis
Avant de s’occuper du kernel, qui faudra compiler depuis les sources officielles, il est nécessaire d’installer les outils permettant de le construire.
A exécuter en root !
sudo apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr libncurses-dev libelf-dev flex bison lsb-release rsync dwarves
Ensuite, il vous faut préparer le répertoire destiné à accueillir tous les fichiers du kernel…
À exécuter avec un compte utilisateur normal !
mkdir ~/compilation && cd ~/compilation
Le Kernel
Première étape, récupérer les sources du kernel (le .tar.gz ou le .tar.xz et le .tar.sign).
Et ça se passe comme ça :
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.1.tar.xz \
&& wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.3.1.tar.sign
Pour se simplifier un petit peu la vie, vous assignez une variable référençant la version du kernel en question :
kversion=6.3.1
Normalement, vous devriez vérifier l'intégrité de votre téléchargement grâce au .tar.sign.https://www.kernel.org/signature.html
Décompression
À exécuter avec un compte utilisateur normal !
tar -xaf linux-$kversion.tar.xz && cd linux-$kversion
Configuration
make olddefconfig
Ça vous permet d’utiliser la configuration existante comme base.
Si vous voulez modifier des options, y compris les nouveaux réglages apportés par ce kernel (qui seront aux valeurs par défaut grâce à oldconfig) :
make menuconfig
Désactiver les clés de chiffrement
Comme vous n’êtes pas, sauf erreur, membre du club restreint du Linux Kernel Club, pour éviter les erreurs de compilation, il vous faut désactiver les clés de signature…
./scripts/config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS
Désactiver le debug
Et comme vous comptez l’utiliser pour faire autre chose que du debug de kernel, vous désactiver toutes les informations de débogage :
./scripts/config -d CONFIG_DEBUG_INFO
Compilation
Selon la puissance de votre machine, ça peut prendre vraiment longtemps !
make bindeb-pkg -j"$(nproc)" LOCALVERSION=-"$(dpkg --print-architecture)" KDEB_PKGVERSION="$(make kernelversion)-1"
Installation
À exécuter avec un compte utilisateur normal !
cd ..
A exécuter en root !
dpkg -i *.deb
Désinstallation
En root ! Et dans le même répertoire que celui pour l'installation.
dpkg -P *.deb
Vous pouvez aussi utiliser apt, aptitude...
Option blacklist
Si lors du boot, vous avez le message pcspkr is already registered, alors il vous faudra désactiver le module pcspkr.
(Ce module ne sert qu’à gérer le beeper de la machine…)
echo "blacklist pcspkr" > /etc/modprobe.d/blacklist-pcspkr.conf
On test !
sudo reboot
Conclusion
Si lors du reboot, vous n’avez pas de message d’erreur et que vous arrivez à vous identifier et à utiliser la machine ; félicitation, vous avez réussi à compiler et installer le kernel 6.3 sur votre Debian.
Changelog
2023-05-05
- Mise à jour pour le kernel v6.3.1