Vous utilisez par défaut le noyau GENERIC, dont le fichier de configuration est dans le dossier /usr/src/sys/amd64/conf/ (bien sûr, amd64 doit être remplacé par i386 si vous utilisez cette version). Mais ce n'est pas une obligation. Vous pouvez aussi préparer votre propre noyau.
Il ne faut pas modifier le fichier GENERIC original, mais en faire une copie dans le dossier /root/.
Code : Console | [Nom de l'ordinateur]# cd /usr/src/sys/amd64/conf
[Nom de l'ordinateur]# cp GENERIC /root/MONNOYAU |
Pour que FreeBSD trouve votre fichier MONNOYAU, il faut placer un lien (un raccourci) vers lui dans /usr/src/sys/amd64/conf/ :
Code : Console | [Nom de l'ordinateur]# ln -s /root/MONNOYAU |
Avec l'option
-s, la commande
ln permet la création d'un
lien symbolique vers MONNOYAU : un fichier de type lien (qui s'appellera aussi MONNOYAU) est créé dans le dossier
/usr/src/sys/amd64/conf/. Si vous tapez
ls -G, il apparaîtra en
rose.
Symbolique signifie que, si le fichier lien venait à être détruit, le vrai fichier
/root/MONNOYAU ne serait pas affecté.
Sans l'option
-s, c'est un
lien physique que
ln établit : si le fichier lien est détruit, le vrai fichier l'est aussi.
Voyons maintenant ce qu'on peut améliorer dans ce noyau. Dans une première console, affichez le fichier
/var/run/dmesg.boot (avec
less). Vous reconnaissez ce texte ?

Oui, c'est celui qui s'affiche pendant le démarrage. Vous allez pouvoir, cette fois, prendre tout votre temps pour le lire.
Parallèlement, ouvrez avec
emacs le fichier
/root/MONNOYAU :
Code : Console | [Nom de l'ordinateur]# emacs /root/MONNOYAU |
Vous allez retirer certaines lignes qui sont inutiles sur votre ordinateur. Par prudence, plutôt que de les effacer, placez simplement un
# au début de ces lignes. Ainsi, elles seront considérées comme des
commentaires et ignorées par l'ordinateur.
Je ne comprends pas !

Un coup, on utilise
/* */ pour les commentaires et, d'autres fois, c'est
#. Qu'elle est la différence ?
Il ne s'agit pas du même langage ! En C, les commentaires sont entourés des symboles
/* */ (ou précédés de
// pour ceux qui tiennent sur une seule ligne). Le
#, en C, désigne les
directives de préprocesseur, dont je vous ai parlé au chapitre précédent. Mais, dans un fichier de configuration de FreeBSD, les conventions sont différentes : c'est le
# qui précède les commentaires.
C'est bon ? Vous n'êtes pas trop perdus ?

N'hésitez pas à revenir en arrière si c'est le cas. Vous avez tout votre temps.
Après les commentaires initiaux, MONNOYAU vous parle d'abord de votre CPU : le type de microprocesseur présent sur votre ordinateur. Si vous utilisez la version i386 de FreeBSD, vous voyez certainement plusieurs lignes commençant par cpu. Une seule de ces lignes est utile. Cherchez dans
/var/run/dmesg.boot quel est votre CPU à vous et mettez les autres lignes en commentaires.
Il faut être très prudent avant de mettre des lignes en commentaires. Si vous commettez une erreur et si votre nouveau noyau refuse de démarrer, c'est le
menu de boot 
qui vous sauvera : choisissez-y
Escape to a loader prompt, puis tapez
unload kernel pour décharger le nouveau noyau et
/boot/kernel.old/kernel pour démarrer l'ancien.
Pas trop effrayés ?

Alors, repérez la ligne
ident GENERIC, juste après le CPU. Elle permet d'identifier ce noyau. Remplacez-y GENERIC par MONNOYAU. Ensuite, voici une série de lignes que vous pouvez mettre en commentaires sans trop de risques.
Si vous n'utilisez pas un serveur de fichiers, ces lignes ne devraient pas vous manquer :
Code : Console | options NFSCLIENT
options NFSSERVER
options NFS_ROOT |
Comme vous n'avez certainement pas besoin d'une partition MS-DOS pendant le démarrage, vous pouvez aussi commenter :
Code : Console
Cela ne vous empêchera pas de monter une clé USB par la suite.
Le système PROCFS est un ancien système qui apportait des informations supplémentaires sur les processus en cours. Certains UNIX l'utilisent toujours mais plus FreeBSD. Vous pouvez donc vous passer de :
Code : Console | options PROCFS
options PSEUDOFS |
Comme votre machine n'a probablement pas de lecteur de disquettes, débarassez-vous de :
Code : Console | device fdc
device atapifd |
Je vous parle d'un temps que les moins de vingt ans ne peuvent pas connaître...
Les ordinateurs, en ce temps-là, n'avaient pas de disques durs mais stockaient leurs données sur des
cassettes, qui ressemblaient à s'y méprendre à des cassettes audio. Comme votre machine n'est pas si antique, vous allez me faire le plaisir de commenter la ligne :
Code : Console
Ensuite, tout dépend des périphériques que vous avez. Le fichier
/var/run/dmesg.boot vous renseigne à ce sujet.
Cette page du manuel officiel, d'autre part, décrit ligne par ligne le contenu du fichier GENERIC. Et le fichier
/usr/src/sys/i386/conf/NOTES propose un grand nombre d'options que vous pouvez ajouter pour vous concocter le noyau de vos rêves, avec des explications pour chacune.
En le lisant, vous verrez que la plupart des modules de votre
/boot/loader.conf peuvent être compilés directement avec le noyau. Ainsi, vous n'aurez plus besoin de les charger séparément : vous pourrez les retirer de
/boot/loader.conf et donc réduire (un peu) votre temps de démarrage. En particulier, vous ajouterez certainement
device sound et
device snd_[votre pilote].
Si vous n'êtes pas surs de vous, attendez peut-être d'avoir un peu plus d'expérience. Restez raisonnables et ne modifiez que quelques lignes dans un premier temps : vous n'avez pas besoin d'avoir un noyau parfait.
Quand vous aurez terminé et sauvegardé, vous pourrez aller dans
/usr/src pour compiler votre nouveau noyau. Si c'est la première fois que vous recompilez le système, il faudra d'abord faire un
make buildworld.
Code : Console | [Nom de l'ordinateur]# make -j4 buildkernel KERNCONF=MONNOYAU |
Avant d'installer définitivement le nouveau noyau, testons-le déjà une fois :
Code : Console | [Nom de l'ordinateur]# make installkernel KERNCONF=MONNOYAU KODIR=/boot/testing
[Nom de l'ordinateur]# nextboot -k testing |
Vous installez ainsi le noyau personnalisé, non pas dans
/boot/kernel mais dans
/boot/testing. Il ne sera utilisé que pour le prochain boot. En cas de problème, vous n'aurez donc qu'à redémarrer pour retrouver l'ancien noyau.
Par contre, si le test s'avère convaincant

et si vous voulez embaucher définitivement MONNOYAU, l'étape suivante consiste à mettre son prédécesseur à la retraite (même s'il n'a pas encore 60 ans !

) :
Code : Console | [Nom de l'ordinateur]# mv /boot/kernel /boot/kernel.old |
C'est fait. MONNOYAU peut maintenant prendre ses fonctions :
Code : Console | [Nom de l'ordinateur]# mv /boot/testing /boot/kernel |