Voici les étapes. Cette procédure est basée sur nixCraft Comment compiler le noyau Linux 2.6--mais considérablement modernisé.
Téléchargez et extrayez le code source du noyau que vous souhaitez construire.
Vous pouvez obtenir le code source du noyau upstream sur kernel.org. La version 3.16.1 (le dernier noyau stable au moment de la rédaction) sera utilisée ici. Vous devrez donc modifier ces commandes si vous utilisez une version différente.
Actuellement, le code source du noyau est fourni dans des archives .tar.xz, alors cliquez sur le lien "tar.xz" de la version que vous souhaitez:
Après avoir cd
dans le répertoire où vous avez téléchargé l'archive, vous pouvez l'extraire avec tar
:
tar xf linux-3.16.1.tar.xz
Installez les outils de construction nécessaires et effectuez la configuration du noyau.
Pour obtenir la chaîne d'outils d'Ubuntu (gcc
, make
, etc.) installez le métapaquet build-essential :
sudo apt-get update
sudo apt-get install build-essential
Deux façons raisonnablement conviviales de configurer ce qui va dans votre noyau sont fournies par les cibles make
xconfig
et menuconfig
.
xconfig
lance un utilitaire de configuration graphique, tandis que menuconfig
est basé sur du texte (c'est-à-dire, son interface apparaît entièrement dans votre terminal). Chacun nécessite un logiciel supplémentaire non fourni par build-essential .
Pour configurer graphiquement, installez libqt4-dev et pkg-config et exécutez make xconfig
:
sudo apt-get install libqt4-dev pkg-config
make xconfig
Pour configurer dans le terminal, installez libncurses5-dev
(merci à Hannu pour cette information) et exécutez make menuconfig
:
sudo apt-get install libncurses5-dev
make menuconfig
Construisez le noyau configuré.
Commencez par exécuter ceci pour compiler le noyau et créer vmlinuz
:
make
vmlinuz
est "le noyau". Plus précisément, c'est l'image du noyau qui sera décompressée et chargée en mémoire par GRUB ou tout autre gestionnaire de démarrage que vous utilisez.
Ensuite, construisez les modules de noyau chargeables:
make modules
Installez votre nouveau noyau construit.
En supposant que ces commandes make
se sont terminées avec succès, il est temps d'installer le nouveau noyau. Tout d'abord, installez les modules :
sudo make modules_install
Puis installez le noyau lui-même :
sudo make install
Cela place vmlinuz-3.16.1
(une copie de vmlinuz
), config-3.16.1
(un fichier texte stockant les paramètres de configuration du noyau), et System.map-3.16.1
(la table de recherche de symboles du noyau) dans /boot
. Pour plus de détails, voir cette publication comp.os.linux.misc de Hadron et man installkernel
.
Configuration finale, pour que le noyau puisse démarrer et démarrer le système :
Cette section est partiellement basée sur des informations provenant de Kernel/Compile.
Le noyau étant désormais là où il doit être, il a besoin de :
Générez votre initramfs avec mkinitramfs
:
cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1
Lorsque vous mettez à jour la configuration du gestionnaire de démarrage GRUB2--qui a été le choix par défaut dans Ubuntu depuis 9.10--devrait détecter automatiquement le nouveau noyau et ajouter une option pour démarrer à partir de celui-ci.
sudo update-grub
Essayez votre noyau.
Maintenant vous pouvez redémarrer pour tester votre nouveau noyau. Vous devrez peut-être maintenir la touche Shift enfoncée ou appuyer sur Esc pendant le démarrage pour voir le menu de démarrage de GRUB où vous pouvez sélectionner entre les différents noyaux installés.
Pour rendre votre noyau (ou un autre) par défaut, consultez Comment changer l'ordre de démarrage GRUB?