Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont:
config
échoue:Si la commande config(8) échoue quand vous lui passez en paramètre la description de votre noyau, vous avez probablement fait une simple erreur quelque part. Heureusement config(8) affichera le numéro de la ligne qui lui a posé problème, vous pouvez donc localiser rapidement la ligne contenant l'erreur. Par exemple, si vous avez:
config: line 17: syntax error
Vérifiez que la ligne est
correctement écrite, en le comparant avec le noyau
GENERIC
ou une autre
référence.
make
échoue:Si la commande make
échoue,
cela signale habituellement une erreur dans la description
de votre noyau, mais qui n'est pas suffisamment sérieuse pour que
la commande config(8) la détecte.
A nouveau, vérifiez votre fichier de configuration, et si
vous n'arrivez toujours pas à résoudre le
problème, envoyez un courrier électronique à la
liste de diffusion pour les questions d'ordre général à propos de FreeBSD en joignant votre fichier de configuration
du noyau, le diagnostic devrait être rapide.
Si votre nouveau noyau ne démarre pas, ou ne
reconnaît pas vos périphériques,
ne paniquez pas! Heureusement, FreeBSD dispose d'un
excellent mécanisme pour récupérer si le
noyau ne fonctionne pas. Sélectionnez simplement le noyau,
à partir duquel vous désirez démarrer,
à l'invite du chargeur de FreeBSD. Vous pouvez y
accéder quand le menu de démarrage
apparaît. Sélectionner l'option 6,
« Escape to a loader prompt ». A l'invite,
tapez unload kernel
et ensuite
boot /boot/kernel.old/kernel
,
ou le nom de fichier d'un autre noyau qui pourra démarrer
proprement. Quand on reconfigure un noyau, il est
toujours bon de conserver à portée de la main un
noyau dont on sait qu'il fonctionne.
Après avoir démarré avec un
noyau en état de marche, vous pouvez revérifier votre
fichier de configuration et essayer de recompiler à
nouveau votre noyau. Une ressource utile est le fichier
/var/log/messages
qui enregistre,
entre autres, tous les messages du noyau à chaque
démarrage réussi. En outre, la commande
dmesg(8) affichera les messages du noyau pour le
dernier démarrage.
Si vous avez des difficultés à compiler
un noyau, veillez à conserver un noyau
GENERIC
, ou un autre noyau dont
vous savez qu'il fonctionne, sous la main, avec un nom
différent de sorte qu'il ne soit pas
écrasé à la prochaine compilation.
Vous ne pouvez pas faire confiance au noyau
kernel.old
parce qu'en installant
un nouveau noyau, kernel.old
est
remplacé par le dernier noyau installé dont
il n'est pas certain qu'il soit opérationnel. Aussi,
dès que possible, déplacez le noyau
opérationnel vers le
bon emplacement /boot/kernel
où des commandes
comme ps(1) pourront ne pas fonctionner correctement.
Pour cela, renommez le répertoire contenant le bon
noyau:
#
mv /boot/kernel /boot/kernel.bad
#
mv /boot/kernel.good /boot/kernel
ps
ne fonctionne plus du tout:Si vous avez installé une version du noyau différente de celle avec laquelle ont été compilés les utilitaires système, par exemple, un noyau -CURRENT sur un système -RELEASE, de nombreuses commandes d'affichage de l'état du système comme ps(1) and vmstat(8) ne fonctionneront plus. Vous devrez recompiler et installer un système avec la même version de l'arborescence des sources de celle utilisée pour votre noyau. C'est une des raisons pour lesquelles il n'est pas judicieux d'utiliser des versions différentes du noyau et du reste du système d'exploitation.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.