« find -delete | Home | fsck -y »

Compilation du kernel, des headers, sources, et docs.

posté par cep le 8 janvier 2008

Exemple de recompilation d’un kernel debian récupéré sur http://kernel-archive.buildserver.net/debian-kernel/ pour, au final, avoir en même temps, les deb linux-image, linux-headers, linux-manual, linux-doc, et linux-source.

Récupération du snapshot linux-source-2.6.24 :

~/compile$ aptitude download linux-source-2.6.24

À ce jour, on récupère donc le :
linux-source-2.6.24_2.6.24~rc6-1~experimental.1~snapshot.10030_all.deb

Il faut décompresser l’ensembel pour pouvoir utiliser le linux-source-2.6.24-rc6.tar.bz2:
:~/compile$ mkdir rc6 ; cd rc6
:~/compile/rc6$ unp -u ~/compile/linux-source-2.6.24_2.6.24~rc6-1~experimental.1~snapshot.10030_all.deb
x - debian-binary
x - control.tar.gz
x - data.tar.gz
./
./usr/
./usr/src/
./usr/src/linux-source-2.6.24-rc6.tar.bz2
./usr/share/
./usr/share/doc/
./usr/share/doc/linux-source-2.6.24/
./usr/share/doc/linux-source-2.6.24/README.Debian
./usr/share/doc/linux-source-2.6.24/copyright
./usr/share/doc/linux-source-2.6.24/changelog.Debian.gz
./
./md5sums
./control

:~/compile/rc6$ unp ./usr/src/linux-source-2.6.24-rc6.tar.bz2

Je fais un lien symbolique :
:~/compile/rc6$ ln -s linux-source-2.6.24-rc6/ linux
:~/compile/rc6$ cd linux

À partir de là, il y a plusieurs possibilités. Soit on lance directement le make menuconfig.
Dans ce cas, voir à cette adresse des copies d’écrans de l’utilisation de menuconfig avec sauvegarde de l’ancienne configuration : http://www.cepcasa.info/parted/kernel.html

Une autre solution, que je préfère car elle intègre plus simplement les nouveautés, est de lancer la commande :
make oldconfig
pour avaliser ce que l’on souhaite ajouter.

Ensuite on peut reprendre la compilation et la construction des paquets :
:~/compile/rc6/linux$ make-kpkg clean

:~/compile/rc6/linux$ fakeroot make-kpkg binary –initrd –revision=cep1×08a kernel_image

fakeroot permet de faire les dernières manipulations sans être root ; l’ensemble de la procédure a d’ailleurs été fait en tant qu’user, et dans l’espace de l’user.

L’option binary groupe la construction des quatre paquets. Voir man make-kpkg pour plus de détails. Adapter –revision= selon vos souhaits. L’ensemble de la procédure a d’ailleurs été faite sans être root, et dans un espace de l’user.

À la fin de la compilation, on vérifie que les paquets ont été créés, et on peut les installer avec dpkg -i le_paquet.deb :
:~/compile/rc6/linux$ cd ..
:~/compile/rc6$ ls -lh *deb
-rw-r–r– 1 sidcep sidcep 3,7M 2008-01-08 10:08 linux-doc-2.6.24-rc6_cep1×08a_all.deb
-rw-r–r– 1 sidcep sidcep 8,6M 2008-01-08 13:30 linux-headers-2.6.24-rc6_cep1×08a_i386.deb
-rw-r–r– 1 sidcep sidcep 19M 2008-01-08 13:32 linux-image-2.6.24-rc6_cep1×08a_i386.deb
-rw-r–r– 1 sidcep sidcep 2,1K 2008-01-08 10:08 linux-manual-2.6.24-rc6_cep1×08a_all.deb
-rw-r–r– 1 sidcep sidcep 45M 2008-01-08 10:08 linux-source-2.6.24-rc6_cep1×08a_all.deb
:~/compile/rc6$ sudo dpkg -i linux-image-2.6.24-rc6_cep1×08a_i386.deb

cep

Topics: Général, debian, linux |

2 Responses to “Compilation du kernel, des headers, sources, et docs.”

  1. david Says:
    11 mai 2008 at 10:57

    salut,
    je viens de découvrir ton blog, il est vraiment de qualité ! bonne continuation

  2. cep Says:
    11 mai 2008 at 18:09

    Merci.

Comments

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image