diff options
author | Alexander Kanavin <alex.kanavin@gmail.com> | 2023-02-27 12:40:08 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-02-27 11:55:22 +0000 |
commit | cbbada6a6c9b0a2e97f7395117dad986555f2db9 (patch) | |
tree | 60053fa8e1193ab829fa49cc1599117695153364 /scripts | |
parent | ad179728a6978d929e2a876abe7e1cbd6b76a502 (diff) | |
download | openembedded-core-contrib-cbbada6a6c9b0a2e97f7395117dad986555f2db9.tar.gz |
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
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/runqemu | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index cedf4f62ad..58b0c191e1 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -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: |