libGL error: failed to open drm device: Permission denied
Jacek Konieczny
jajcus at jajcus.net
Sat Dec 18 11:04:47 CET 2010
Cześć,
Ja z nowu z problemami z 3D na moim intelu…
Kupiłem sobie Humble Indie Bundle 2 – zestaw pięciu gier. Najpierw miłe
zaskoczenie – z tych pięciu gier 4 działają w miarę poprawnie. Nieźle
jak na OpenGL na Intelu w PLD ;-) Niestety, zamiast piątej (Braid)
miałem tylko czarny ekran… Google podpowiedziało tyle, że mało u kogo to
działało od początku, ale niektórym pomógł upgrade…
No to zacząłem robić upgrade. Mesa-*, xorg-*, kernel. Najpierw do
th-main, potem th-ready… doszedłem do tego, że już mi żadna z gier nie
działała – zero akceleracji.
Aktualnie zainstalowany zestaw to:
Mesa-dri-driver-intel-i915-7.9-8.i686
Mesa-dri-driver-intel-i965-7.9-8.i686
Mesa-dri-driver-swrast-7.9-8.i686
Mesa-libGL-7.9-8.i686
Mesa-libGLU-7.9-8.i686
Mesa-utils-7.8.2-1.i686
kernel-drm-2.6.36.2-1.i686
libdrm-2.4.23-1.i686
xorg-driver-video-intel-2.13.0-3.i686
xorg-xserver-libdri-1.9.3-1.i686
A problem objawia się tak:
$ LIBGL_DEBUG=yes glxinfo | grep -Ei 'direct|renderer'
libGL error: failed to open drm device: Permission denied
direct rendering: Yes
OpenGL renderer string: Software Rasterizer
Najpierw powód wydał się oczywisty:
$ ls -l /dev/dri
total 0
crw-------+ 1 root video 226, 0 Dec 18 10:01 card0
crw-rw---- 1 root video 226, 64 Dec 18 10:01 controlD64
Jednak po 'chmod a+rw /dev/card0' to samo…
$ LIBGL_DEBUG=yes glxinfo | grep -Ei 'direct|renderer'
libGL error: failed to open drm device: Permission denied
direct rendering: Yes
OpenGL renderer string: Software Rasterizer
[jajcus w lolek ~]$ ls -l /dev/dri
total 0
crw-rw-rw-+ 1 root video 226, 0 Dec 18 10:01 card0
crw-rw-rw- 1 root video 226, 64 Dec 18 10:01 controlD64
Już myślałem, że coś w kernelu nie pozwala userowi z DRM korzystać, ale
zastanowił mnie ten '+' w powyższym…
$ getfacl /dev/dri/card0
getfacl: Removing leading '/' from absolute path names
# file: dev/dri/card0
# owner: root
# group: video
user::rw-
group::---
mask::rw-
other::rw-
WTF?!
# setfacl -m group::rw- /dev/dri/card0
$ LIBGL_DEBUG=yes glxinfo | grep -Ei 'direct|renderer'
direct rendering: Yes
OpenGL renderer string: Mesa DRI Intel(R) 945GM GEM 20100330 DEVELOPMENT
x86/MMX/SSE2
Czyli jakby naprawione (ciekawe czy gry będą działać…).
Pytania:
1. Czemu po upgrade, bez żadnej zmiany konfiguracji, /dev/dri/card0 ma
prawa dostępu ustawione 600 zamiast 660/666 (jak było przed upgrade)?
2. Po cholerę coś jeszcze ACL ustawia dla tego urządzenia?
3. Dlaczego ACL są ustawione tak, żeby akurat grupa video _nie miała_
dostępu do DRM?
4. Który z pakietów jest za to odpowiedzialny?
Pozdrowienia,
Jacek
P.S.
Po poprawieniu ACL znowu działają cztery gry, jednak Braid (według
niektórych najciekawsza) nie:
$ ./braid -windowed
i915_program_error: Exceeded max nr indirect texture lookups (8 out of 4)
i915_program_error: Exceeded max nr indirect texture lookups (8 out of 4)
i915_program_error: Exceeded max ALU instructions (83 out of 64)
More information about the pld-devel-pl
mailing list