Convention de ce document;

# == root shell

$ == user shell

Il va sans dire, que vous avez votre /usr/src a jour. Repportez vous aux differents tips existant.

Attaquons nous deja a la configuration du noyau. Deux fichiers generique (dont un specifique a l'architecture) se trouvemt respectivement dans /usr/src/sys/conf/GENERIQUE & /usr/src/sys/arch/$ARCH/conf/GENERIQUE

Creer un repertoire qui nous servira pour la compilation.

$ mkdir compile_dir

cd dans ce repertoite. Modifier les deux fichiers afin que ces derniers correspondent a vos besoins. Il est a noter qu'il est possible de modifier le nombre de pseudo-device a la volee par un config(8). Vous trouverez toute la documentation correspondantes aux variables de configuration dans les FAQ.

Sauvegardez vos modifications, puis lancez la configuration et la compilation du nouveau kernel par un:

$ config -s /usr/src/sys -b . VOTRE_FICHIER_DE_CONF && make clean && make depend && make

Sauvegarde votre ancien noyau par un

# mv /bsd /bsd.old 

et installer le nouveau:

# cp compile_dir/bsd /bsd && chown root:wheel /bsd

Pour attribuer les bons droits.

En enlevant tout ce qui etait supperflux a ma gateway, je suis passe d'un kernel de 4.7Mo a une version allegee de 1.7Mo ;)

Passons maintenant a la recompilation du userland.

# rm -rf /usr/obj && mkdir /usr/obj 

Pour enlever tous les anciens fichier objet 0:-)

# cd /usr/obj ; make obj

Pour les compiler a partir des sources mise a jour …

# make build 

compilera le nouvel userland.

Le probleme maintenant, c'est que les fichiers de configuration residant dans /etc ne sont pas mis a jour automatiquement, il va donc falloir les “merger” a la main. Il en va de meme pour /dev (openbsd n'utilisant pas devfs)

# cd /dev && cp /usr/src/etc/etc.i386/MAKEDEV .
# ./MAKEDEV all

Pour les fichiers de configuration, c'est plus long et fastidieux puisqu'il faut comparer a coup de diff les fichiers residant dans /etc et les nouveaux que vous trouverez dans /usr/src/etc. Pour ce faire creer un repertoire temporaire ou les nouveaux fichiers seront installes.

$ mkdir tmp_etc && export DESTDIR=/home/$USER/tmp_etc

Devenez root, par exemple avec un 'sudo -s'

# cd /usr/src/etc & make distribution-etc-root-var   

puis comparez les.

Enfin, le moment venu, on reboot en croisant les doigts ;D et on admire le resultat, voila vous avez merite un bol de cafe ;)

/Olivier (aka daffy)

openbsd/maj_kernel_userland.txt · Last modified: 2010/01/12 13:29 (external edit)