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
Vus : 1757
Publié par Julien : 171