Tout d'abord, une petite chose : si vous compilez un noyau dont la version est identique à une version déjà présente sur votre système, les modules de cette dernière doivent être effacés auparavant. Par exemple, si vous recompilez un noyau 2.6.8, il vous faudra effacer le répertoire /lib/modules/2.6.8.
La compilation du noyau et des modules, ainsi que l'installation des modules, se font grâce aux instructions suivantes :
make clean make all make modules_install install |
Un peu de vocabulaire : clean, all, etc..., sont appelés targets (soit cibles). Remarquez que, depuis le noyau 2.6, la cible all existe. Exécuter cette cible équivaut à exécuter les cibles bzImage et modules (pour une architecture x86). Cette nouvelle option exécutera les cibles choisies pour n'importe quelle architecture. Avant la version 2.6, chaque architecture possédait un nom d'option différent pour compiler le noyau. Si vous spécifiez un certain nombre de cibles pour make tel que ci-dessus, elles seront exécutées selon l'ordre d'apparition. Mais si une cible échoue, make n'ira pas plus loin [38].
Penchons-nous maintenant sur les différentes cibles et regardons ce qu'elles font :
bzImage : ceci construit le noyau. Notez que cette cible est seulement valable pour des processeurs x86 and x86_64. Cette cible générera aussi le fichier System.map pour ce noyau. Nous verrons plus loin à quoi sert ce fichier ;
modules : comme son nom l'indique, cette cible générera des modules pour le noyau. Si vous ne choisissez pas ces modules, la cible ne fera rien ;
all : cette cible générera une image type du noyau choisi pour l'architecture et les modules en place;
modules_install : ceci installe les modules. Par défaut, les modules seront installés dans le répertoire /lib/modules/<kernel-version>. Cette cible calcule aussi les dépendances entre modules ;
install : cette dernière cible va finalement copier le noyau et tous ses modules au bon endroit, et modifier la configuration des chargeurs de démarrage de telle sorte que le nouveau noyau soit disponible au démarrage. Ne l'utilisez pas si vous préférez effectuer une installation manuelle, telle que décrite dans la section intitulée « Installation du nouveau noyau ».
Tout est maintenant compilé et les modules sont installés. Mais ce n'est pas tout : vous devez également installer le noyau dans un endroit où votre programme de démarrage (bootloader), que ce soit LILO ou GRUB, pourra le trouver. C'est ce dont il est question dans la prochaine section.
[38] Dans ce cas, si cela échoue, cela signifie qu'il y a un bogue dans le noyau... Dans ce cas, merci de nous le faire savoir !