mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
scripts/runqemu: move render nodes check to runqemu from selftest
This will produce a more useful hint for those setting up or testing virgl headless: runqemu - ERROR - No render nodes found in /dev/dri: ['by-path', 'card0']. If /dev/dri/renderD* is absent due to lack of suitable GPU, 'modprobe vgem' will create one suitable for mesa llvmpipe software renderer. as qemu itself isn't helpful: alex@Zen2:/srv/storage/alex/yocto/build-64-alt$ qemu-system-x86_64 -display egl-headless qemu-system-x86_64: egl: no drm render node available qemu-system-x86_64: egl: render node init failed (From OE-Core rev: cbbada6a6c9b0a2e97f7395117dad986555f2db9) Signed-off-by: Alexander Kanavin <alex@linutronix.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
a87811f255
commit
5a5ab7cdec
|
@ -260,13 +260,6 @@ class TestImage(OESelftestTestCase):
|
|||
if distro and (distro in ['debian-9', 'debian-10', 'centos-7', 'centos-8', 'ubuntu-16.04', 'ubuntu-18.04'] or distro.startswith('almalinux')):
|
||||
self.skipTest('virgl headless cannot be tested with %s' %(distro))
|
||||
|
||||
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:
|
||||
self.fail("No render nodes found in /dev/dri: %s. %s" %(content, render_hint))
|
||||
except FileNotFoundError:
|
||||
self.fail("/dev/dri directory does not exist; no render nodes available on this machine. %s" %(render_hint))
|
||||
qemu_distrofeatures = get_bb_var('DISTRO_FEATURES', 'qemu-system-native')
|
||||
features = 'IMAGE_CLASSES += "testimage"\n'
|
||||
if 'opengl' not in qemu_distrofeatures:
|
||||
|
|
|
@ -1366,6 +1366,15 @@ class BaseConfig(object):
|
|||
raise RunQemuError("Failed to boot, QB_SYSTEM_NAME is NULL!")
|
||||
self.qemu_system = qemu_system
|
||||
|
||||
def check_render_nodes(self):
|
||||
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))
|
||||
except FileNotFoundError:
|
||||
raise RunQemuError("/dev/dri directory does not exist; no render nodes available on this machine. %s" %(render_hint))
|
||||
|
||||
def setup_vga(self):
|
||||
if self.nographic == True:
|
||||
if self.sdl == True:
|
||||
|
@ -1403,6 +1412,7 @@ class BaseConfig(object):
|
|||
|
||||
self.qemu_opt += ' -display '
|
||||
if self.egl_headless == True:
|
||||
self.check_render_nodes()
|
||||
self.set_dri_path()
|
||||
self.qemu_opt += 'egl-headless,'
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user