Etape 1 : récupération des sources du noyau
urpmi kernel-source-2.6
Note : Au moment de l'écriture de ce guide, cette commande charge les sources du noyau version 2.6.13.4, alors que la version officielle du noyau est 2.6.13.4. Si vous ne voulez pas une version récente, mais juste utiliser le noyau officiel comme base, précisez la commandre urpmi avec la version exacte.
urpmi vous demandera surement aussi d'installer d'autres paquetages pour satisfaire les dépendances, vous savez ce qu'il faut répondre.
Pour satisfaire les dépendances, les 3 paquetages suivants vont être installés (188 Mo):
kernel-source-2.6-2.6.8.1-24mdk.i586
libgpm1-devel-1.20.1-11mdk.i586
libncurses5-devel-5.4-1.20040529.2mdk.i586
Est-ce correct ? (O/n)
ftp://ftp.proxad.net/pub/Distrib.../main_updates/./kernel-source-2.6-13.4mdk.i586.rpm
ftp://ftp.proxad.net/pub/Distrib.../main/libgpm1-devel-1.20.1-11mdk.i586.rpm
ftp://ftp.proxad.net/pub/Distrib.../main/libncurses5-devel-5.4-1.20040529.2mdk.i586.rpm
installation de /var/cache/urpmi/rpms/libgpm1-devel-1.20.1-11mdk.i586.rpm
/var/cache/urpmi/rpms/kernel-source-2.6-3.4mdk.i586.rpm
/var/cache/urpmi/rpms/libncurses5-devel-5.4-1.20040529.2mdk.i586.rpm
Préparation... ##################################################
1:libgpm1-devel ##################################################
2:libncurses5-devel ##################################################
3:kernel-source-2.6 ##################################################
Etape 2 : Configuration du noyau à générer
cd /usr/src/linux-2.6.13-4mdk
make menuconfig
Choisir l'option "Load an alternate config file" en bas de la liste, et saisir :
/boot/config-2.6.13-4mdk (c'est à dire la derniere config connue. Cela vous evite de tout reconfigurer pour arriver à un noyau similaire a l'ancien).
Choisir ensuite l'option "Processor type and features" puis l'option "Processor family" et chosissez le modèle de processeur approprié (Pour moi Pentioum IV.)
Choisir "Exit" et "Yes" pour sauver la config.
Vous pouvez aussi essayer les autres options un peu partout... si vous avez du temps pour tester les noyaux en résultants...
Etape 3 : compilation du noyau, des modules et installation des modules
make -j2 clean bzImage modules modules_install
Etape 4 : Installation du noyau, reconfiguration de lilo
il faut maintenant copier plusieurs fichiers obtenus en compilant dans /boot
cp ?? /boot/System.map-2.6.13-4mdkcustom
cp ?? /boot/kernel.h-2.6.13-4mdk
cp ?? /boot/config-2.6.13-4mdkcustom
cp ?? /boot/vmlinuz-2.6.13-4mdkcustom
Il ne reste plus qu'a reconfigurer lilo (le meilleur moyen est de copier / coller la section existante pour le noyau precedent et de modifier juste les numéros de version (voir l'exemple ci dessous, à adapter à votre configuration) :
image=/boot/vmlinuz-2.6.13-4mdk
label="2681-12"
root=/dev/hda1
initrd=/boot/initrd-2.6.13-4mdk.img
append="acpi=ht resume=/dev/hda5 splash=silent"
vga=788
read-only
image=/boot/vmlinuz-2.6.13-4mdkcustom
label="2681-24"
root=/dev/hda1
initrd=/boot/initrd-2.6.13-4mdkcustom.img
append="acpi=ht resume=/dev/hda5 splash=silent"
vga=788
read-only
Notez que je n'ai pas (encore) déclaré ce nouveau noyau comme noyau par defaut dans lilo. Simplement parce que si il plante, il faudra que je jongle au boot pour revenir à l'ancien noyau.
Enfin, lancez lilo pour reconfigurer le boot. lilo
Choisissez votre nouveau noyau.
Si tout s'est bien passé, vous pouvez refaire un coup de lilo pour le mettre par defaut, ou changer les liens symboliques dans /boot pour pointer vers vos fichiers.
Ce qui peut arriver ....
J'ai eu la surprise apres avoir fait cette manip sur le noyau 2.6.13-4 d'avoir des tas d'erreurs au boot. En fait, aucun module ne se chargeait, et donc plusieurs services ne démarraient pas. La raison ? Simplement qu'a la compilation, les modules se sont rangés dans /lib/modules/2.6.13-4mdkcustom, mais que le noyau les cherchait dans /lib/modules/2.6.13-4mdk ... Super galère.