This is an archive of past FreeBSD releases; it's part of the FreeBSD Documentation Archive.
Il y a cinq types de problèmes qui peuvent survenir lors de la compilation d'un noyau sur mesure. Ce sont:
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 vous y référer rapidement avec vi. Par exemple, si vous avez:
config: line 17: syntax error
Vous pouvez aller directement au problème dans vi en tapant 17G en mode commande. Vérifiez que le mot-clé est correctement écrit, en le comparant avec le noyau GENERIC ou une autre référence.
Si la commande make échoue, cela signale habituellement une erreur dans la description de votre noyau, mais 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 <freebsd-questions@FreeBSD.org> en joignant votre fichier de configuration du noyau, le diagnostic devrait être rapide.
Si le noyau se compile sans problème, mais ne peut être installé (la commande make install ou make installkernel échoue), la première chose à vérifier est si votre système fonctionne à un niveau de sécurité égal à 1 ou supérieur (voir init(8)). L'installation du noyau tente de retirer le drapeau rendant votre noyau actuel immuable et positionner ce drapeau sur le nouveau noyau. Comme le niveau de sécurité 1 et supérieur empêche de modifier l'état immuable d'un fichier du système, l'installation du noyau doit être effectuée au niveau de sécurité 0 ou inférieur.
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 système décompte à partir de 10. Au lieu de d'appuyez sur Entrée, appuyez sur une autre touche, puis tapez unload et ensuite boot kernel.old, 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.
Note : 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 fichier kernel où des commandes comme ps(1) ne fonctionneront pas correctement. La commande correcte pour ``déverrouiller'' un noyau installé par make (pour mettre définitivement en place un autre noyau) est:
# chflags noschg /kernelSi vous vous apercevez que vous ne pouvez pas effectuer cette opération, c'est que vous êtes probablement sous un `` securelevel(8)'' supérieur à zéro. Editez la ligne kern_securelevel dans /etc/rc.conf et positionnez-la à -1, puis redémarrez. Vous pouvez repositionner l'ancienne valeur si vous êtes satisfait de votre nouveau noyau.
Et, si vous voulez ``verrouiller'' votre nouveau noyau, ou tout autre fichier, de sorte qu'il ne puisse être déplacé ou modifié, utilisez:
# chflags schg /kernel
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 4.X sur un système 3.X, de nombreuses commandes d'affichage de l'état du système comme ps(1) and vmstat(8) ne fonctionneront plus. Vous devez recompiler la bibliothèque libkvm de même que ces utilitaires. 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.
Précédent | Sommaire | Suivant |
Créer les fichiers spéciaux de périphériques | Niveau supérieur | Security ** Traduction en Cours ** |
Ce document, ainsi que d'autres peut être téléchargé sur 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>.