Compiler un noyau Linux pour une Debian

Transcription

Compiler un noyau Linux pour une Debian
RAHME.FR
Compiler un noyau Linux pour une Debian
Soumis par Johnny RAHME
Difficulté
(Admin Systèmes)
1. Introduction
Cet article traitera de la compilation d'un noyau Linux, pour une plateforme Debian, ou comment compiler un kernel à la
sauce Debian.
{mospagebreak title=2. Compilation et Installation}
2. Compilation
Tout d'abord, il faut préparer l'environnement Debian, en installant ou en vérifiant l'installation de quelques paquets:
rahme.fr # sudo aptitude install binutils gcc make libncurses5-dev initrd-tools
[..]
Ensuite, il nous faut récupérer la version du noyau qu'on veut installer, après avoir vérifié la version déjà installée sur le
système à l'aide de la commande suivante :
rahme.fr # uname -r
2.6.20
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06
RAHME.FR
A la rédaction de cet article, la dernière version du noyau disponible est la 2.6.25, qui devient, si patchée, 2.6.25.2.
Cet article installera donc cette version, mais l'exposé reste valable bien entendu pour toute autre version.
Récupérons le noyau et son dernier patch, du site www.kernel.org:
rahme.fr # pwd
/home/rahme/kernel-compil/
rahme.fr # wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2
[..]
rahme.fr # wget http://www.eu.kernel.org/pub/linux/kernel/v2.6/patch-2.6.25.2.bz2
[..]
Décompressons ces fichiers et patchons le kernel:
rahme.fr # tar -xjf linux-2.6.25.tar.bz2
rahme.fr # tar -xjf patch-2.6.25.2.bz2
rahme.fr # cd linux-2.6.25
rahme.fr # patch -p1 <../patch-2.6.25.2
[..]
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06
RAHME.FR
Notons que nous sommes logués en simple utilisateur, mais qui doit appartenir au groupe src. Si ce n'est pas le cas, il
faut créer cet utilisateur :
rahme.fr # useradd -G src rahme
rahme.fr # passwd rahme
[..]
rahme.fr # id
uid=1000(rahme) gid=1000(rahme) groupes=40(src)
Une fois le kernel patché, commençons la configuration. Comme nous sommes sur une plateforme fonctionnelle, autant
utiliser la configuration du noyau actuel et fonctionnel, en copiant le fichier de configuration de ce noyau dans le
répertoire de travail du noyau en cours de configuration :
rahme.fr # pwd
/home/rahme/kernel-compil/linux-2.6.25/
rahme.fr # cp /boot/config-2.6.20 .config
Sauvegardons la configuration (en changeant si nécessaire quelques paramètres :
rahme.fr # make menuconfig
{Après avoir fait les modifications de paramètres nécessaires, s'il y en a, choisir Exit et sauvegarder la configuration, à la
demande}
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06
RAHME.FR
C'est le moment à présent de lancer la compilation du noyau (il n'est pas nécessaire d'être root, le compte rahme que
nous avons créé précédemment va nous suffire) :
rahme.fr # make-kpkg --rootcmd fakeroot --initrd --append-to-version=.rahme.`date +%y%m%d` --revision=2.6.25.2
buildpackage
Cette commande, qui durera un long moment, créera les paquets source, doc, headers et image.
L'installation
Un fichier généré par la commande précédente nous intéresse particulièrement : linux-imagerahme.2.6.25.2.080509_2.6.25.2.deb.
Installons ce nouveau noyau :
rahme.fr # sudo dpkg -i linux-image-rahme.2.6.25.2.080509_2.6.25.2.deb
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06
RAHME.FR
Cette commande va pratiquement tout faire :
- Installer les modules dans /lib/modules/2.6.25...../
- Créer les fichiers /boot/System.map-2.6.25....... , /boot/vmlinuz-2.6.25......... et /boot/config-2.6.25.......
En revanche, avant de se lancer dans un reboot, il est très recommandé de vérifier le fichier de configuration du Grub,
/boot/grub/menu.lst, pour vérifier que tout ce qui a été ajouté par la commande dpkg est valide.
Ne reste plus qu'à rebooter et vérifier le bon fonctionnement du nouveau noyau.
En cas de problème ou de kernel panic, on pourra toujours rebooter et choisir l'ancien noyau dans le menu de grub.
Au cas où le nouveau noyau doit être désinstallé, rien de plus simple :
rahme.fr # sudo dpkg --purge linux-image-rahme.2.6.25.....
ou
rahme.fr # sudo aptitude purge linux-image-rahme....
Ne pas oublier de revérifier /boot/grub/menu.lst.
{mospagebreak title=3. Conclusion}
3. Conclusion
Cet article a traité de la compilation et de l'installation, ainsi que de la désinstallation, d'un kernel (noyau) Linux à la
sauce Debian.
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06
RAHME.FR
Je pense écrire un autre article traitant des différents problèmes (et il y en a..) lors d'une compilation pareille.
http://hercule.rahme.fr
Propulsé par Joomla!
Généré: 8 February, 2017, 00:06