Nota: par défaut, certaines options du noyau Fedora sont proposées en modules.
Exemple, pour le support ACPI:
- sous /lib/modules/2.6.21-1.3228.fc7/kernel/drivers/acpi:
ac.ko bay.ko dock.ko ibm_acpi.ko sony_acpi.ko video.ko
battery.ko button.ko i2c_ec.ko sbs.ko toshiba_acpi.ko
- sous /lib/modules/2.6.21-1.3228.fc7/kernel/drivers/cpufreq
cpufreq_conservative.ko cpufreq_powersave.ko
cpufreq_ondemand.ko cpufreq_stats.ko
Il suffit de charger le module (modprobe nom_du_module sans l'extension). J'ai mentionné les options cpufreq parce que le mode conservative est assez intéressant (on le charge par modprobe et il faut relancer l'applet cpufreq-applet pour pouvoir piloter les changements de fréquences du processeur depuis le tableau de bord).
On rend la chargement systématique à chaque démarrage du système en insérant la commande utile dans /etc/rc.local. Par exemple, en y insérant la ligne: /sbin/modprobe cpufreq_conservative pour charger le mode conservative ...
Sinon, pour la compilation d'un noyau, qui doit rester un exercice circonscrit à la solution de pbs spécifiques ou simplement, au plaisir de tâtonner avec les risques associés!, un
tutorial a été rédigé. Sans préjuger des évolutions du tutorial et pour clarifier le schéma général à suivre:
* on prend les sources d'un noyau (y compris patché Fedora);
* on se positionne à la racine et on lance make gconfig (pour faire apparaître toutes les options dans un environnement graphique, qui requiert cependant les bibliothèques glade, gtk+ etc ... );
* le fichier des paramètres par défaut est à la racine, décrit dans .config mais on peut charger le fichier de config de chacun des noyaux Fedora, logé dans /boot ;
* on choisit les paramètres à activer ou à passer en module (le tutorial explique les différences); le choix "modules" permet d'éviter certains pbs ... la documentation en ligne apporte quelques éclairages et recommandations fort utiles;
* à l'issue, on modifie le Makefile situé lui-aussi à la racine (EXTRAVERSION = .1-chepioq par exemple) pour que le noyau produit ne vienne pas se substituer à un noyau existant de même nom (qui serait alors sauvegardé en .old mais quand même ...);
* on lance make qui créé le noyau selon les paramètres définis;
* on lance make modules qui créé les modules selon les paramètres;
* on passe en root en se positionnant encore à la racine et on lance successivement make modules_install puis make install.
Le make install va générer l'initrd, et loger cet initrd, le noyau et le System-map associé dans /boot. Si le make install concerne une compilation de noyau assuré depuis les sources fournies par Fedora (implantée dans un répertoire bien identifié, /home/builder/rpmbuild/BUILD/kernel-2.6.22/linux-2.6.22.i686 par exemple, en suivant le tutorial), /boot/grub/grub.conf sera modifié automatiquement (l'entrée y sera déclarée).
Il suffira simplement de copier le .config dans /boot en lui donnant un nom plus explicite en rapport au noyau compilé (config-2.6.22.1-chepioq par exemple) pour conserver la mémoire des paramètres retenus.
Puis un make mrproper effacera judicieusement tous les éléments compilés pour permettre une nouvelle compilation "saine" (accessoirement, on pourra repartir du dernier config créé pour améliorer ...).