mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
runqemu: check permissions of available render nodes as well as their presence
qemu itself is not helpful when render nodes exist, but can't be opened: qemu-system-x86_64: egl: render node init failed To fix this, users likely need to * modprobe vgem (presence when physical graphic card is absent or has a driver without support for render nodes, such as many older cards found in server machines) * add their user to "render" group to write to /dev/dri/renderD* (permissions) With this change runqemu should print hints for the above as appropriate from probing the nodes. (From OE-Core rev: 12ae43abbc4e7d6184198a912487ace3a4e66e50) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit acd85925cb197b7a31a25b60e8de762e2c3697ef) Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
559ed4ecd5
commit
099fdd3441
@@ -1374,8 +1374,18 @@ to your build configuration.
|
||||
render_hint = """If /dev/dri/renderD* is absent due to lack of suitable GPU, 'modprobe vgem' will create one suitable for mesa llvmpipe software renderer."""
|
||||
try:
|
||||
content = os.listdir("/dev/dri")
|
||||
if len([i for i in content if i.startswith('render')]) == 0:
|
||||
raise RunQemuError("No render nodes found in /dev/dri: %s. %s" %(content, render_hint))
|
||||
nodes = [i for i in content if i.startswith('renderD')]
|
||||
if len(nodes) == 0:
|
||||
raise RunQemuError("No render nodes found in /dev/dri/: %s. %s" %(content, render_hint))
|
||||
for n in nodes:
|
||||
try:
|
||||
with open(os.path.join("/dev/dri", n), "w") as f:
|
||||
f.close()
|
||||
break
|
||||
except IOError:
|
||||
pass
|
||||
else:
|
||||
raise RunQemuError("None of the render nodes in /dev/dri/ are accessible: %s; you may need to add yourself to 'render' group or otherwise ensure you have read-write permissions on one of them." %(nodes))
|
||||
except FileNotFoundError:
|
||||
raise RunQemuError("/dev/dri directory does not exist; no render nodes available on this machine. %s" %(render_hint))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user