compiler son kernel dans un bootstrap
Le cas est le suivant : Mon netbook dispose d’une architecture 32 bits, et je souhaite lui compiler un nouveau kernel à base de 2.6.37. Pour des raisons évidentes, je ne souhaite pas le compiler sur le netbook, j’ai donc souhaité le concocter sur une machine disposant des ressources suffisantes à cet harassant travail. Seulement la machine sur laquelle j’ai jeté mon dévolu une Debian SID ….. 64bits. J’ai d’abord envisagé de spécifier l’architecture au moment de la compilation, ou exporter la variable d’environnement ARCH. Mais après avoir recueilli plusieurs avis sur le sujet j’ai décidé de passer par la technique debootstrap. Le deboostrap permet d’installer une Debian au sein d’une autre Debian. Le but étant de se chrooter dedans afin de faire toutes les manipulations que l’on veut sans risquer d’endommager le système hôte, ou bien comme dans mon cas, d’installer un environnement 32 bits au sein d’un environnement 64 bits afin de pouvoir compiler le kernel idoine.
Il y a donc 2 étapes dans ce tutorial. La première étant la création du bootstrap en lui même.
Mise en place de l’environnement chrooté
Il faut d’abord installer debootstrap par un simple :
sudo aptitude install debootstrap
Une fois le paquet installé on passe à la création de l’environnement.
on crée le répertoire qui accueillera l'environnement mkdir /home/julien/bootstrap
on passe à la création en elle même sudo debootstrap --arch i386 lenny /home/julien/bootstrap http://ftp.fr.debian.org/debian
à noter que tout est sur la même ligne.
Que faisons nous avec cette commande :
--arch i386
indique que nous souhaitons un environnement 32 bits
lenny
indique que nous souhaitons installer une lenny nous aurions pu spécifier SID à la place
http://ftp.fr.debian.org/debian
indique que nous allons chercher les paquets sur le miroir Debian français.
Vous pouvez spécifier votre miroir local
Laissez l’environnement se créer. Vous allez voir ça à l’écran :
Quand vous arrivez là :
C’est que le bootstrap est créé.
On va maintenant se chrooter dedans :
sudo chroot /home/julien/bootstrap
Vous aurez alors un prompt root dans votre nouvel environnement.
Il faut maintenant installer des paquets nécessaires à la compilation :
aptitude install build-essential make libncurses-dev kernel-package bzip2
A ce titre si vous compilez sous Lenny, je vous conseille d’ajouter les dépôts de SID dans votre sources.list afin d’installer la version de SID de kernel-package, sous peine de renconter ce genre d’erreur pendant la compilation :
The UTS Release version in include/linux/version.h does not match current version
Une fois tous les paquets installés, vous pouvez passer à l’étape de compilation en elle même.
Je vous renvoie à un article que j’ai déjà écrit sur le sujet.
Une fois la compilation terminée, vous pouvez sortir du bootstrap en tapant :
exit