Niveau :
Résumé : make menuconfig ; make ; make-kpkg
Un bon sysadmin doit savoir recompiler son noyau, et ce pour plusieurs raisons. Tout d'abord, c'est l'occasion de passer en revue les nouveautés (support d'un nouveau driver, changement d'architecture ...), c'est aussi comme ça qu'on peut ajouter les patchs dont on a besoin. Ensuite cela peut permettre de se passer de l'initrd (et donc de gagner une étape au boot) et enfin cela permet de faire des noyaux purement monolithiques si l'on veut renforcer la sécurité d'équipements critiques.
Avant de compiler un noyau, il faut le configurer. Cette étape est longue, très longue, surtout pour une première fois. Mais c'est aussi la plus intéressante. Je vais donc vous la présenter en long, en large, et surtout en travers. Si cela vous parait lourd, ne partez pas, sautez quelques étapes et revenez-y plus tard.
La base
Commençons par récupérer les sources du noyau. Personnellement je prends les sources officielles de Linus, simples à trouver :
# usuellement on se met dans /usr/src, mais ça n'a rien d'obligatoire $ lftp ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.XXX.tar.bz2 # qu'on va décompresser $ tar xfj linux-2.6.XXX.tar.bz2 $ cd linux-2.6.XXX # les debianeux peuvent aussi avoir les sources patchés debian $ apt-get install linux-source-2.6.XX
Nous allons récupérer la configuration actuelle du noyau pour partir sur des bases saines et ne pas avoir peur de tout casser si on saute une étape. Le fichier de configuration s'appelle .config
# la meilleur méthode si disponible : lire la configuration en live $ zcat/proc/config.gz > .config # sinon récupérer un ancien fichier $ cp ../linux-2.6.XX-1/.config . # ou celui fourni par la distrib $ cp /boot/config-2.6.XX-1 .config
Lançons la configuration :
# en mode texte (il vous faut libncurses5-dev) $ make menuconfig # en mode graphique (qvec qt depuis quelque temps) $ make xconfig # ou avec gtk $ make gconfig
continue reading...