Driver radeon libre

Bonjour,

Ma machine fonctionne avec une debian sid (à jour), et est équipée d’une radeon de la famille 7200.

Ça faisait longtemps que je ne m’étais pas intéressé à l’exploitation de l’accélération matérielle de la carte graphique. Il y a plusieurs années, ça fonctionnait parfaitement avec le pilote libre. J’ai donc décidé de voir ce qu’il en était.

Tout d’abord, il semble que le module DRM reconnaisse ma carte :

dmesg |grep drm [ 90.715699] [drm] Initialized drm 1.1.0 20060810 [ 90.724511] [drm] Initialized radeon 1.29.0 20080528 on minor 0

lsmod|grep radeon radeon 102684 0 drm 133260 1 radeon

drm 133260 1 radeon i2c_core 20828 3 drm,eeprom,i2c_viapro agpgart 30624 2 drm,via_agp
Mon serveur xorg quant à lui démarre correctement, charge la plupart des modules nécessaires (dri, dri2, etc.) et utilise le pilote radeon:

code LoadModule: “radeon”
(II) Loading /usr/lib/xorg/modules/drivers//radeon_drv.so
(II) Module radeon: vendor="X.Org Foundation"
compiled for 1.6.0, module version = 6.12.2
Module class: X.Org Video Driver
ABI class: X.Org Video Driver, version 5.0[/code]

Cependant, j’observe dans le Xorg.0.log l’erreur suivante :

code RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM
[dri] Disabling DRI.

(II) AIGLX: Screen 0 is not DRI2 capable
(II) AIGLX: Screen 0 is not DRI capable
[/code]
Un peu plus haut, on lit :

drmOpenDevice: node name is /dev/dri/card0 drmOpenByBusid: Searching for BusID pci:0000:01:00.0 drmOpenDevice: node name is /dev/dri/card0 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card1 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card2 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card3 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card4 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card5 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card6 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card7 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card8 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card9 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card10 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card11 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card12 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card13 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card14 drmOpenByBusid: drmOpenMinor returns -1 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: node name is /dev/dri/card0 drmOpenDevice: node name is /dev/dri/card1 drmOpenDevice: node name is /dev/dri/card2 drmOpenDevice: node name is /dev/dri/card3 drmOpenDevice: node name is /dev/dri/card4 drmOpenDevice: node name is /dev/dri/card5 drmOpenDevice: node name is /dev/dri/card6 drmOpenDevice: node name is /dev/dri/card7 drmOpenDevice: node name is /dev/dri/card8 drmOpenDevice: node name is /dev/dri/card9 drmOpenDevice: node name is /dev/dri/card10 drmOpenDevice: node name is /dev/dri/card11 drmOpenDevice: node name is /dev/dri/card12 drmOpenDevice: node name is /dev/dri/card13 drmOpenDevice: node name is /dev/dri/card14

Par la suite, glxinfo indique que le rendu direct est activé :

glxinfo |grep render direct rendering: Yes

mais sans que la vitesse de glxgears soit efficace.
J’ai l’impression, après avoir cherché et lu différents messages d’autres utilisateurs, que le nœud du problème vient du problème de dialogue entre DRI et DRM.

Pour information, voici les packages qui sont installés sur ma machine :

ii xserver-xorg-video-ati 1:6.12.2-1 X.Org X server -- ATI display driver wrapper ii linux-image-2.6.29-1-686 2.6.29-3 Linux 2.6.29 image on PPro/Celeron/PII/PIII/P4

et c’est le bon noyau qui fonctionne :

uname -a Linux demya 2.6.29-1-686 #1 SMP Fri Apr 17 14:35:16 UTC 2009 i686 GNU/Linux

Quelqu’un a-t-il des erreurs semblables ? Comme ça fait longtemps que je n’ai pas regardé de ce côté-là, je ne sais pas si c’est une erreur récente… Et ne sais pas trop dans quelle direction chercher.

J’ai fini grâce à kolter à trouver la raison de ce récent dysfonctionnement :
hermann-uwe.de/blog/resolvin … ware-linux

En quelques mots, l’équipe debian a choisi de séparer le firmware radeon du kernel.

Pour résoudre le problème :