Recompiler son du noyau (Kernel)

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Linux

1.1 CentOS

CentOS Kernel 2.6

1.2 Debian

Voici une liste de packages nécessaire à la recompilation du noyau:

Command aptitude
aptitude install bzip2 libncurses5-dev fakeroot kernel-package

Rendons nous dans le /usr/src :

Command 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 :

Command
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 :

Command ln
ln -s linux-4.8.4 linux

Le kernel est prêt à être configuré. Lançons l'outil de configuration :

Command
cd linux
make menuconfig

ou bien copiez la config de votre kernel existant:

Command 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):

Command
 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 :

Command 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 :

Command 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 :

Command make
make-kpkg clean
make-kpkg --initrd --revision=1.0 kernel_image

ou sans initrd :

Command 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 :

Command 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

1.3 Fedora Core

Fedora Kernel

1.4 Mandriva

Mandriva Kernel

1.5 Suse

Suse Kernel

1.6 Ubuntu

Ubuntu Kernel