Commençons par passer rapidement en revue le répertoire
de configuration du noyau. Tous les chemins d'accès
mentionnés seront relatifs au répertoire principal
/usr/src/sys
, qui est également
accessible via le lien symbolique /sys
.
Il comporte un certain nombre de sous-répertoires correspondants
à différentes parties du noyau, mais les plus
importantes, en ce qui nous concerne, sont
arch/conf
, où vous
éditerez votre fichier configuration personnalisé, et
compile
, qui est l'espace de travail où
votre noyau sera compilé. arch
représente une des architectures suivante: i386
, soit
alpha
, amd64
,
ia64
, powerpc
,
sparc64
, ou encore pc98
(une branche alternative de développement de l'architecture PC,
populaire au Japon). Tout ce qui se trouve dans un répertoire
particulier à une architecture est propre uniquement
à cette architecture; le reste du code est un code indépendant du type de machine et commun à
toutes les plates-formes sur lesquelles FreeBSD pourrait être
potentiellement porté. Remarquez l'organisation logique de
l'arborescence des répertoires, où chaque
périphérique, système de fichiers,
et option supportés a son propre
sous-répertoire.
Les exemples de ce chapitre supposent que vous utilisez l'architecture i386. Si ce n'est pas votre cas, effectuez les ajustements appropriés au niveau des chemins d'accès pour votre architecture.
S'il n'y a pas de répertoire
/usr/src/sys
sur votre système,
alors c'est que les sources du noyau n'ont pas été
installées. La manière la plus facile de les installer
est d'exécuter sysinstall
en tant
que root
, et sélectionner
, puis
,
, puis
et .
Si vous avez une aversion envers sysinstall
et que vous disposez d'un CDROM “officiel” de
FreeBSD, alors vous pouvez installer les sources depuis la
ligne de commande:
#
mount /cdrom
#
mkdir -p /usr/src/sys
#
ln -s /usr/src/sys /sys
#
cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
#
cat /cdrom/src/sbase.[a-d]* | tar -xzvf -
Ensuite allez dans le répertoire
arch/conf
et copiez
le fichier de configuration GENERIC
dans un
fichier qui portera le nom que vous voulez donner à votre
noyau. Par exemple:
#
cd /usr/src/sys/i386/conf
#
cp GENERIC MONNOYAU
Par tradition, c'est un nom en majuscules, et si vous maintenez
plusieurs machines FreeBSD avec des configurations matérielles
différentes, c'est une bonne idée de lui donner le
même nom que la machine. Nous l'appellerons
MONNOYAU
pour les besoins de cet
exemple.
Conserver votre fichier de configuration du noyau
directement sous /usr/src
peut être une
mauvaise idée. Si vous avez des problèmes
il peut être tentant de juste effacer
/usr/src
et recommencer à nouveau.
Après avoir fait cela ne prends que quelques secondes
pour vous rendre compte que vous venez
d'effacer votre fichier de configuration du noyau
personnalisé. N'éditez pas, non plus, directement le fichier
GENERIC
, il peut être
écrasé à la prochaine mise à jour de l'arborescence
des sources, et vos modifications seraient
perdues.
Vous voudrez peut être conserver votre fichier de
configuration du noyau ailleurs et alors créer un lien
symbolique vers le fichier dans le répertoire
i386
.
Par exemple:
#
cd /usr/src/sys/i386/conf
#
mkdir /root/noyaux
#
cp GENERIC /root/noyaux/MONNOYAU
#
ln -s /root/noyaux/MONNOYAU
Editez maintenant MONNOYAU
avec votre
éditeur de texte préféré.
Si vous venez tout juste de finir l'installation, le seul
éditeur disponible sera probablement
vi, qui est trop complexe pour être
décrit ici, mais est bien expliqué dans de nombreux
ouvrages de la bibliographie.
Cependant, FreeBSD offre un éditeur plus simple appelé
ee qui, si vous êtes débutant,
sera votre éditeur de choix. N'hésitez pas à
modifier les commentaires d'entête pour y décrire
votre configuration ou les modifications que vous avez apportés
par rapport au noyau GENERIC
.
Si vous avez déjà compilé un noyau sur SunOS™
ou tout autre système d'exploitation BSD, l'essentiel de fichier
vous sera familier. Si vous venez d'un système d'exploitation
comme DOS, à l'inverse, le fichier de configuration
GENERIC
vous paraîtra inintelligible, lisez
alors lentement et attentivement la section sur le fichier de
configuration.
Si vous synchronisez
votre arborescence des sources avec les toutes
dernières sources du projet FreeBSD, assurez-vous de
toujours lire le fichier /usr/src/UPDATING
avant d'effectuer une quelconque opération de mise
à jour. Ce fichier décrit les problèmes
importants ou les domaines demandant une attention
particulière dans le code mis à jour.
/usr/src/UPDATING
correspond toujours
à votre version des sources de FreeBSD, et est donc plus
à jour que ce Manuel.
Vous devez maintenant compiler le code source du noyau.
Passez dans le répertoire
/usr/src
.
#
cd /usr/src
Compilez le noyau:
#
make buildkernel KERNCONF=MONNOYAU
Installez le nouveau noyau:
#
make installkernel KERNCONF=MONNOYAU
Il est indispensable d'avoir l'intégralité des sources du système FreeBSD pour compiler le noyau.
Par défaut, quand vous compilez un noyau
personnalisé, tous les modules
seront également recompilés. Si vous
désirez mettre à jour un noyau plus rapidement
ou compiler que certains modules, vous devez éditer le
fichier /etc/make.conf
avant de compiler
le noyau:
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Cette variable définit une liste de modules à compiler à la place de l'intégralité des modules.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Cette variable définit une liste de modules à exclure du processus de compilation. Pour d'autres variables qui peuvent être intéressantes pour le processus de compilation du noyau, consultez la page de manuel make.conf(5).
Le nouveau noyau sera copié dans le répertoire
/boot/kernel
avec le nom
/boot/kernel/kernel
et l'ancien noyau sera renommé en
/boot/kernel.old/kernel
. Maintenant, arrêtez
le système et redémarrez pour utiliser votre
nouveau noyau.
Si quelque chose se passe mal, il y a quelques instructions
de dépannage à
la fin de ce chapitre que vous pourrez trouver utiles. Assurez-vous de lire la section qui
explique comment revenir en arrière dans le cas où
votre nouveau noyau ne
démarre pas.
Les autres fichiers
concernant le processus de démarrage, comme le chargeur
(loader(8)) et la configuration du démarrage
sont conservés dans le
répertoire /boot
.
Les modules tiers et personnalisés peuvent être
placés dans /boot/kernel
,
bien que les utilisateurs doivent être conscients
que garder ses modules synchronisés avec le noyau
compilé est très important.
Les modules qui ne sont pas destinés à fonctionner
avec le noyau compilé peuvent être instables et
ne pas donner les résultats escomptés.
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>.