6. Compilation et installation des modules

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.10, il vous faudra effacer le répertoire /lib/modules/2.6.10.

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. L'exécution de 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 [42].

Penchons-nous maintenant sur les différentes cibles et regardons ce qu'elles font :

[Avertissement]Avertissement

Il est important de respecter l'ordre des cibles modules_install install afin que les modules soient installés en premier. Sinon initrd sera erroné et le noyau ne démarrera pas correctement.

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.



[42] 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 !