Le Noyau

 





Démarrer avec un autre noyau
Vous pouvez avoir besoin de démarrer votre machine avec un autre noyau. Par défaut le noyau se trouve à la racine avec le nom bsd. Pour lancer un autre noyau faites simplement indiquez simplement le nom du fichier.
boot >bsd.old 
Ce fichier doit avoir les droits 644 et être la propriété de root.wheel

Démarrer avec d'autres options
Il est possible de démarrer votre machine en passant au noyau d'autres options. Cela à l'avantage de faire des tests, puisque vous perdez cela au redémarrage de la machine. Si par la suite vous souhaitez conserver vos modifications, vous devez recompiler le noyau ou utiliser config -e -u -o bsd.nouveau (ou -f)  afin d'écrire les modifications dans un nouveau fichier bsd.nouveau, puis de rebooter en indiquant ce noyau. 

Pour entrer dans ce mode au boot, vous devez taper :
La commande boot wd0a:/bsd -c      wd0a est le nom de la partition root, /bsd le nom de votre noyau.
Vous obtenez le résultat :

 

Si vous tapez le ? (attention vous avez un clavier anglais), vous allez avoir la liste des commandes disponibles.



Par exemple supposons que l'irq d'une de mes cartes réseau ne corresponde pas. 
Je recherche alors les cartes de type ne

 

par exemple ici, je peux désactiver la carte ne1 qui est une carte isa, (je peux même désactiver tout ce qui est isa, puisque je n'en ai plus sur ma machine). Mais j'essaye de changer l'irq de cette carte et la passer  en 12 (au hasard ici pour l'exemple)



Tapez quit afin d'enregistrer les modifications et de quitter le mode UKC (tapez verbose avant quit, si vous souhaitez avoir un mode de démarrage plus verbeux). 
Cette modification va être prise immédiatement en compte, puisque le boot de la machine va se poursuivre.

Un autre exemple consiste à gérer l'heure de la machine.

Modifier le noyau sans recompiler
 
Il est possible avec la commande config -e /bsd de modifier le noyau directement, alors que la machine est déjà démarrée.
Vous allez alors avoir le même prompt que pour une modification du noyau au démarrage >UKC
 
Afin de conserver les modifications au reboot de la machine, vous devez écrire directement dans le binaire du noyau.
Pour cela vous utilisez l'option -f, vous écrivez alors directement dans /bsd (votre noyau). ou -o bsd.nouveau vous créez un nouveau binaire (plus prudent).

 

A partir de là je reprends l'exemple précédent. Lorsque vous valider par la commande quit, vous quittez le mode UKC et il se crée un nouveau.bsd (dans le répertoire ou vous étiez). 
Dans ce cas, les modifications n'interviennent que si vous relancez votre machine en utilisant ce nouveau noyau.

Recompiler le noyau
Pourquoi ?
1 - Mettre à jour la machine
2 - Optimiser la machine
3 - Sécuriser encore plus 
Optimiser le noyau
La solution consiste à noter ce qui est détecté et lancé sur la machine au démarrage de celle-ci (avec dmesg) et de désactiver ce qui n'est pas utilisé. Toutefois, désactiver un élément libérera un peu de mémoire, mais vous interdira de réutiliser cet élément plus tard. Si ca peut se comprendre pour une petite config ou un serveur bien chargé; est-ce nécessaire pour vous ?
Par contre dans le cas d'une machine ancienne vous avez une possibilité de réduire la taille de celui-ci, réduisant du même coup les ressources nécessaires.
Remarque
: Il est fortement conseillé de conserver le noyau GENERIC. C'est le plus testé, c'est le seul qui sera vérifié lors d'un bug-report. Avec les machines actuelles (ou moins actuelles, (un P100 32 Mo adore le GENERIC), ce n 'est pas le Mo que vous allez gagner en RAM au niveau du noyau qui va booster vos performances. L'usage des options de démarrage (boot -c) permet beaucoup de choses sans casser le noyau.

Recompiler le noyau
En fait la compilation du noyau se passe en trois étapes :
1 Rapatrier les sources ou les mettre à jour
Vous devez pour cela commencer par rapatrier les sources sur votre machine, avec cvs ou cvsup. Vous trouverez une documentation plus complète sur la façon de faire ici.

2 Configurer le fichier 
Avant toute chose prendre soin de bien faire une copie de sauvegarde du fichier GENERIC. Je vous conseille ici de lui donner un autre nom. Par exemple MONKERNEL. Mais vous pouvez inventer ce que vous voulez.
Le fichier de configuration du noyau se trouve dans le fichier /usr/src/sys/arch/i386/conf/GENERIC
Changer dedans les paramètres que vous souhaitez modifer.

Les options du noyau GENERIC

 

 

 

3 Recompiler et rebooter la machine

cd /usr/src/etc && make DESTDIR=/

cd /usr/src/sys/arch/i386/conf
cp GENERIC MONKERNEL                  Prudence est ....!
vi MONKERNEL                                       Pour l'adapter à vos besoin.
config MONKERNEL
cd ../compile/MONKERNEL
make clean && make depend && make            75 Minutes sur un P100
cp /bsd /bsd.old                                           On sauvegarde l'ancien.
 cp ./bsd /bsd
chown root.wheel /bsd
chmod  644 /bsd
Puis vous redémarrez en croisant les doigts. En cas de problème, lors du boot, vous tapez /bsd.old afin de redémarrer l'ancien noyau, sauf si vous êtes à distance....

Il peut être bon de profiter de la recompile du noyau afin de recompiler l'ensemble de la machine.

Changement de version de noyau d'OpenBSD
Cela ne change pas grand chose à la méthode. Vous devez rapatrier les sources, puis  recompiler comme pour la version que vous aviez. Faire attention de bien lire les consignes que vous pouvez trouver sur le site d'OpenBSD avant toute chose. Puis recompiler l'ensemble de la machine afin de vous aligner complètement sur la nouvelle version.


© Philippe Chadefaux -  Philippe Schwarz - $Id: Le_noyau.htm,v 1.3 2002/06/24 12:25:43 philippe Exp $