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