Je m’occupe actuellement de préparer ma box pour le FOSDEM, et il s’avère qu’il manque le support du DRM (Direct Rendering Manager, le truc pour avoir de l’accélération graphique dans le kernel pour X.org) pour ma carte vidéo. Il s’agit de NetBSD 5.1.1, la version 6 n’aura pas ce manque.
Il faut donc recompiler un noyau pour ajouter cette fonctionnalité, pour
faire vite on ne passe pas par build.sh
, les tools etc, on compile
directement dans l’arbre des sources, montrer comment faire ça est le
but de post.
On commence par récupérer les sources sur un serveur CVS près de chez soi :
# export CVS_RSH=ssh
# export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
# cd /usr
# cvs -q -z3 co -P -rnetbsd-5-1-1-RELEASE src
Ensuite, on n’a pas besoin d’avoir une conf particulière dans son
/etc/mk.conf
, on n’a juste à ajouter les options dans le fichier de
conf du kernel et compiler directement par l’intermédiaire de make
.
On édite le fichier /usr/src/sys/arch/i386/conf/GENERIC.local
, pour y
ajouter les lignes suivantes, il est inclus par le fichier GENERIC
:
# DRI driver
i915drm* at vga? # Intel i915, i945 DRM driver
mach64drm* at vga? # mach64 (3D Rage Pro, Rage) DRM driver
mgadrm* at vga? # Matrox G[24]00, G[45]50 DRM driver
r128drm* at vga? # ATI Rage 128 DRM driver
radeondrm* at vga? # ATI Radeon DRM driver
savagedrm* at vga? # S3 Savage DRM driver
sisdrm* at vga? # SiS DRM driver
tdfxdrm* at vga? # 3dfx (voodoo) DRM driver
On compile le kernel à la main :
# config GENERIC
# cd ../compile/GENERIC
# make depend
# make
On installe le kernel à la main :
# mv /netbsd /netbsd.old
# cp netbsd /
# chmod 444 /netbsd
Pour revenir facilement en arrière en cas de souci, on peut ajouter la
ligne suivante dans /boot.cfg
, en deuxième position :
menu=Boot old kernel:boot netbsd.old
Il ne reste plus qu’à rebooter sur le nouveau kernel.
Référence : Le guide
On peut faire la même manip pour mettre à jour une partie du système seulement, par exemple lorsqu’une faille de sécurité doit être corrigée. La méthode de compilation dans l’arbre des sources est indiquée dans l’avis.
Plus généralement, la méthode est la suivante, avec l’exemple de ls
:
# cd /usr/src/bin/ls
# make USETOOLS=no cleandir
# make USETOOLS=no dependall
Le binaire résultant et sa doc sont prêts dans le répertoire courant, il ne reste qu’à installer :
# make USETOOLS=no install