Recompiler son du noyau (Kernel)
Contents
1 Linux
1.1 CentOS
1.2 Debian
Voici une liste de packages nécessaire à la recompilation du noyau:
aptitude |
aptitude install bzip2 libncurses5-dev fakeroot kernel-package |
Rendons nous dans le /usr/src :
cd |
cd /usr/src |
Ensuite, on se rends sur le site www.kernel.org et on télécharge la dernière version en "Full" du dernier noyau. Ici, c'est la version 4.8.4, puis on la décompresse :
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.8.4.tar.xz tar -xJf linux-4.8.4.tar.xz |
On va maintenant créer un lien symbolique :
ln |
ln -s linux-4.8.4 linux |
Le kernel est prêt à être configuré. Lançons l'outil de configuration :
cd linux make menuconfig |
ou bien copiez la config de votre kernel existant:
cp |
cp /boot/config-$(uname -r) .config |
Afin d'éviter d'avoir une erreur de "x509_certificate" à la compilation, nous allons désactiver la signature du kernel (nous n'avons pas la clé de signature, elle appartient à Debian):
sed -i 's/^CONFIG_SYSTEM_TRUSTED_KEY/# CONFIG_SYSTEM_TRUSTED_KEY/g' .config sed -i 's/^CONFIG_MODULE_SIG_KEY/# CONFIG_MODULE_SIG_KEY/g' .config |
Il est possible d'utiliser la totalité de vos cores pour accélérer le temps de compilation :
grep |
export CONCURRENCY_LEVEL=`grep -c "^processor" /proc/cpuinfo` |
1.2.1 Nouvelle méthode
Une fois configuré, il ne reste plus qu'a lancer la compilation de celui-ci :
make-kpkg |
make clean make deb-pkg LOCALVERSION=-custom KDEB_PKGVERSION=$(make kernelversion)-1 -j $CONCURRENCY_LEVEL |
Vous pouvez changez le nom de LOCALVERSION par un nom qui vous conviendra mieux et incrémentez KDEB_PKGVERSION chaque compilation que vous faites.
1.2.2 Ancienne méthode
Une fois configuré, il ne reste plus qu'a lancer la compilation de celui-ci :
make |
make-kpkg clean make-kpkg --initrd --revision=1.0 kernel_image |
ou sans initrd :
make-kpkg |
make-kpkg --revision=1.0 kernel_image |
Le tag revision sert à mettre un numéro de version à votre kernel. De cette façon, si lors du prochain boot, vous obtenez un kernel panic, redémarrez avec l'ancien et recommencez. A la recompilation de celui-ci, incrémentez de 1 la version (ex : --revision=2.0).
Votre noyau est maintenant fini, installons le :
dpkg |
dpkg -i ../linux-image-4.8.4_1.0_amd64.deb |
Redémarrez maintenant votre machine et bootez sur votre nouveau kernel :-)
Voici d'autres documentations :
Debian Kernel 2.4
Debian Kernel 2.6