Le noyau Linux (Kernel en anglais) est un noyau de système de type UNIX.
Le noyau est le cœur du système, il permet de fournir aux logiciels une interface pour utiliser le matériel.
Compiler son noyau permet d’activer ou de désactiver des options dedans, de mieux comprendre comment fonctionne le noyau Linux, faire fonctionner un matériel ou une fonctionnalité qui n’est pas prise en charge par le noyau actuel.
Première étape : Installation des paquets nécessaires
$ apt install linux-source build-essential debconf-utils dpkg-dev debhelper ncurses-dev fakeroot libncurses-dev libglade2-dev flex bison qt5-qmake qt5-qmake-bin libelf-dev rsync libssl-dev qt5* lzop perl bc gnupg dirmngr lsb-release dwarves
Dans le cas où les dépôts sources sont activés, nous pouvons également faire :
$ apt build-dep linux
Deuxième étape : Création d’un répertoire pour la compilation
$ mkdir ~/compilation
$ cd ~/compilation
Troisième étape : Téléchargement et extraction des sources
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.14.9.tar.xz
$ tar -xJf linux-5.14.9.tar.xz
$ cd linux-5.14.9/
Quatrième étape : Configuration du Noyau
Nous pouvons maintenant configurer notre noyau avec les options existantes du noyau en cours d’exécution, ce qui maintiendra au moins notre système en cours d’exécution, puis accepter les nouvelles options avec les valeurs par défaut.
$ make olddefconfig
Génération des clefs :
$ ./scripts/config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS
On peut supprimer la partie débogage, cela nous fera gagner beaucoup de temps, et cela n’est généralement utile qu’aux développeurs :
$ ./scripts/config -d CONFIG_DEBUG_INFO
Cinquième étape : Compilation
$ make deb-pkg -j"$(nproc)" LOCALVERSION=-"$(dpkg --print-architecture)" KDEB_PKGVERSION="$(make kernelversion)-1"
La compilation est maintenant terminée, le noyau fourni par défaut dans la distribution GNU/Linux est un noyau capable de tourner sur un maximum de machines et de matériels. Il est donc souvent plus lourd que celui que nous venons de compiler.