J’vous vois v’nir hein, “woaaa l’auuut’ comment il fait son jacky”. Que nenni, je fais ça pour la posterité, la documentation, l’experience !
Voila.
Donc, afin de faire taire les mauvaises langues qui diraient que l’UI, sous NetBSD, elle a 8 ans de retard, je me propose de vous exposer ici une methode permettant d’activer le Direct Rendering sur une machine NetBSD, mais aussi de profiter des jolis effets proposés par les applications supportant la fonction “Composite” d’Xorg. La carte graphique cible est une Intel i945GM mais cette méthode fonctionnera sur toutes les cartes listées ici.
Sous NetBSD 5.0, le support drm n’est pas présent dans le noyau GENERIC (il l’est dans current). La première étape consiste donc à ajouter ce support comme suit :
# cd /usr/src/sys/arch/amd64/conf/ # cp GENERIC MABOXEN # echo "i915drm* at vga?" >> MABOXEN # config MABOXEN # cd ../compile/MABOXEN # make depend && make # cp /netbsd /netbsd.generic # cp netbsd /netbsd # sync
Puis informons Xorg que nous souhaitons bénéficier de quelques atouts supplémentaires :
Section "Device"
Option "DRI" "true"
Option "AccelMethod" "XAA"
Option "XAANoOffscreenPixmaps" "true"
Option "AllowGLXWithComposite" "true"
Option "XVideo" "true"
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller"
BusID "PCI:0:2:0"
EndSection
Section "DRI"
Mode 0666
EndSection
Section "Extensions"
Option "Composite" "Enable"
EndSection
Attention, vous noterez qu’ici je définis comme methode d’acceleration le mode “XAA”. En effet, par defaut, c’est le module “EXA” qui est choisi par Xorg, or ce dernier produit, lorsque je choisis d’activer “composite” sur ma machine en tout cas, des résultats pour le moins surprenants: ecran divisé, trainées de pixels, disparition de curseur et j’en passe. En “XAA”, mon interface fonctionne parfaitement et rapidement.
Une fois ces opérations effectuées, un reboot sera nécessaire afin que notre nouveau noyau puisse dialoguer avec Xorg, comme nous l’indique un dmesg après avoir démarré Xorg :
i915drm0: interrupting at ioapic0 pin 16
Si tout s’est bien déroulé, le fichier /var/log/Xorg.0.log devrait contenir quelque chose de ce style :
[...] drmOpenByBusid: drmOpenMinor returns 6 drmOpenByBusid: drmGetBusid reports pci:0000:00:02.0 (II) [drm] DRM interface version 1.2 (II) [drm] DRM open master succeeded. (II) intel(0): [drm] Using the DRM lock SAREA also for drawables. (II) intel(0): [drm] framebuffer mapped by ddx driver (II) intel(0): [drm] added 1 reserved context for kernel (II) intel(0): X context handle = 0x1 (II) intel(0): [drm] installed DRM signal handler [...] (II) intel(0): [dri] visual configs initialized [...] (II) intel(0): [DRI] installation complete
Et la commande glxinfo devrait vous indiquer ceci :
$ glxinfo |grep ^direct direct rendering: Yes
Signe que toutes les folies sont désormais possibles.
À ce stade, si vous utilisez metacity comme gestionnaire de fenêtre, il suffit d’activer son mode “compositing” à l’aide de gconftool-2 :
$ gconftool-2 -s '/apps/metacity/general/compositing_manager' --type bool true
Et là , tout de suite, ça en jette :

November 23rd, 2009 at 1:14 pm
Allez maintenant la meme chose mais sous netbsd-current :)
November 23rd, 2009 at 4:16 pm
Bah en l’occurrence ce serait pas fondamentalement different, si ce n’est qu’il faudrait se taper la compil de tout les packages à la main ;’/
November 23rd, 2009 at 5:26 pm
J’avoue, ça en jette *grave* !
November 24th, 2009 at 9:22 pm
Y’a rien de kikoo à avoir la DRI sur netbsd .. Avec tout ce que les gens trouvent “kikoo” on fait plus grand chose dans la vie :-)
November 27th, 2009 at 7:15 pm
Moi aussi tiens , j’ai activé composite et tout sur mon eeePC
Maintenant quand je deplace ma fenetre de terminal , c’est la fenetre pleine et pas le contour :)))
January 15th, 2010 at 7:56 am
[...] Comme par hasard. Tu vas pas me faire croire que tu l’as pas fait [...]