Modifier le noyau Linux sous VirtualBox

Publié dans Geekeries | Marqué avec , ,
Share

VirtualBox
En ce moment en cours, nous avons un projet consistant à ajouter une fonctionnalité au noyau Linux. Pour cela, on modifie un noyau Linux (téléchargeable sur The Linux Kernel Archives), on le compile, et on fait booter notre Linux dessus pour voir le résultat.
A l’école, on utilise une distribution créée par l’école nommée Yaka, qui a l’avantage de s’installer et de se démarrer très rapidement. Mais du coup, il faut travailler sur les ordinateurs de l’école… Ce serait quand même plus pratique de travailler tranquillement chez moi, aussi tard que je le souhaite. Mais vu que je n’avais pas trop envie de faire de bêtises sur mon joli Ubuntu, j’avais un petit peu abandonné l’idée. Jusqu’à ce que je vois un ami qui a virtualisé une Fedora et qui utilise son noyau Linux modifié dessus. Du coup, bah j’ai essayé de faire pareil ! Ce qui a fonctionné avec plus ou moins de succès.

Dans ce billet j’explique comment installer VirtualBox et créer une machine virtuelle, puis j’essaie de décrire comment booter sur un autre noyau que le noyau d’origine !

Virtualiser une distribution Linux

A vrai dire, sous Linux il existe un outils bigrement bien fichu s’appelant VirtualBox (OSE la version libre, PUEL la version non libre) qui permet de créer très facilement des machines virtuelles. Pour moi qui utilise Ubuntu, j’ai juste installé le paquet virtualbox-ose.

Ensuite, il faut d’abord créer une machine virtuelle et configurer ses paramètres. Pour l’instant, il n’y a besoin de rien d’autre que de cliquer sur Nouveau et de suivre les différentes étapes (sélection du type de machine virtuelle, taille de mémoire à réserver, disque dur virtuel à utiliser). La machine virtuelle est créée et ne demande qu’à être démarrée ! (moi aussi je trouve ça magique)
Création d'une VM sous VirtualBox
Une fois démarrée, éh bien il faut installer dessus la distribution. Pour cela, il faut sélectionne un média d’installation à partir d’une disquette (ahah), d’un CD ou d’une image. Pour ma part j’ai choisi la solution CD. Je vais commencer par un Fedora, ensuite on verra.

Installer un Linux sur une machine virtuelle
Be happy!

Utiliser un autre noyau Linux

Maintenant que la machine virtuelle est pleinement installée et utilisable, on voudrait utiliser notre noyau Linux modifié et non celui d’origine. Moi j’ai rapatrié le noyau sur ma machine virtuelle en me connectant à Internet en filaire (le Wifi et l’USB ne marchaient pas… Ils devraient normalement. Allez savoir !). Vous pouvez en récupérer un sur The Linux Kernel Archives.

Ensuite, il faut compiler notre noyau :

make -j3 arch=i386 bzImage

Puis modifier Lilo ou Grub selon celui que vous utilisez .

Lilo

Ouvrir /etc/lilo.conf et à la fin ajouter :

image = /boot/bzImage # chemin vers l'image du noyau linux modifié
label = linux # label apparaissant dans le menu de sélection de Lilo
root =  /dev/hda5 # disque dur sur lequel on boote

Restarter Lilo : /boot/lilo (à faire à chaque fois que l’on a recompilé le noyau)

Grub

Ouvrir /boot/grub/menu.lst et vers la fin ajouter :

title Mon Fedora
# manuel apparaissant dans le menu de sélection de Grub uuid à adapter à votre cas
# sous Ubuntu, utilisez le commande : sudo vol_id -u /dev/sdXX
kernel /boot/grub/bzImage # chemin vers l'image du noyau linux modifié
quiet

Cette fois-ci pas besoin de restarter !

Logiquement maintenant, si vous redémarrez votre machine et que vous sélectionnez le bon noyau, ça devrait bien marcher. Mais peut-être que comme moi, cela ne va pas fonctionné du premier coup. Pour ma part j’ai dû ajouter la gestion de l’ext4 à mon noyau.

Ajouter la gestion de l’ext4 à un noyau

Pour ma part, j’avais un disque dur formaté en ext3 et mon noyau n’acceptait que jusqu’au ext3. Logiquement, l’ext4 est par défaut à partir du noyau 2.6.28. En tout cas, la solution qui m’a été conseillée est la suivante :

  • Télécharger un noyau 2.6.30
  • Copier le contenu du dossier jb2d (find . -iname "*jb2d*" pour le trouver) du noyau télécharger, dans le noyau modifié au même endroit.
  • Se positionner à la racine du noyau modifier et taper make menuconfig
  • Sélectionner Filesystem, puis cocher ext4 (en mettant une étoile, pas un M).
  • Et voilà !

Bon, moi j’ai encore quelques soucis lors de la compilation de mon noyau, donc j’aurai peut-être d’autres choses à rajouter avec le temps. !

Pour aller plus loin

Pour aller plus loin, il faut nécessairement faire des tests par soi même. Et dans ce cas, rien ne vaut une bonne documentation, comme celle d’Ubuntu par exemple : VirtualBox.

Une réponse à Modifier le noyau Linux sous VirtualBox

  1. Virtualisation Linux

    La Virtualisation sous Linux avec Virtualbox…

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*