5. La compilation & l'installation du nouveau noyau Linux

Q22.

Quelle est l'option à utiliser avec les sources du noyau pour construire des paquets de la distribution Debian GNU/Linux ?

Rechercher la clé deb dans la liste des options du Makefile des sources du noyau.

La recherche dans les options permet d'identifier la directive de construction des paquets binaires de la distribution : bindeb-pkg.

$ make help | less

Suivant l'état antérieur de l'installation système, la liste des dépendances est plus ou moins importante lors du lancement de la compilation du noyau.

# sudo aptitude install -R fakeroot bison flex libelf-dev libssl-dev

Q23.

Comment lancer la compilation du noyau ?

Pour faciliter les opérations de (dé|ré)installation du noyau, on se propose de construire un paquet Debian de noyau Linux. L'utilisation d'un paquet permet de s'assurer que tous les fichiers nécessaires ont bien été (copiés|supprimés) dans l'arborescence du système.

$ pwd
/usr/src/linux
$ make -j$(grep  -c  '^processor'  /proc/cpuinfo) bindeb-pkg

Q24.

Quelles sont les étapes d'installation du noyau compilé ?

Quel outil faut-il utiliser pour gérer les paquets localement sur le système ?

Une fois les paquets de noyau construits, il ne reste plus qu'à procéder à l'installation de ces paquets locaux. Cette étape fait appel à l'outil de gestion de bas niveau des paquets Debian : dpkg. Cette opération nécessite les droits du super-utilisateur.

# pwd
/usr/src
# dpkg -i linux-image*.deb linux-libc*.deb

Après cette installation de paquet de noyau on peut valider la liste des paquets correspondant installés.

$ aptitude search ~ilinux-

Q25.

Comment vérifier que le nouveau noyau sera disponible lors de l'initialisation du système ?

Identifier le gestionnaire d'amorce installé sur le système.

L'opération d'installation du paquet de noyau intègre l'ajout d'une nouvelle entrée dans le gestionnaire de démarrage.

On peut valider la liste des noyaux disponibles au niveau du gestionnaire d'amorce en faisant appel à la commande update-grub.

$$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.2.14
Found initrd image: /boot/initrd.img-5.2.14
Found linux image: /boot/vmlinuz-5.2.0-2-amd64
Found initrd image: /boot/initrd.img-5.2.0-2-amd64
done

Une fois toutes ces étapes franchies, il ne reste plus qu'à relancer le système et vérifier que le noyau exécuté est bien celui qui a été recompilé à partir des sources.