If you are using the Nvidia drivers and have installed new versions
of those packages but have not yet rebooted the host kernel,
attempting to use the egl-headless display will cause QEMU to fail to
start with
$ qemu-system-aarch64 -M virt -display egl-headless
qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
qemu-system-aarch64: egl: render node init failed
together with this complaint in the host kernel dmesg:
[7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
NVRM: this kernel module has the version 535.230.02. Please
NVRM: make sure that this kernel module and all NVIDIA driver
NVRM: components have the same version.
This isn't a problem with QEMU itself, so reporting this as a test
failure is misleading. Instead skip the tests, as we already do for
various other kinds of "host system can't actually run the EGL
display" situation.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I run into this fairly often so I got fed up with just ignoring the
spurious test failure messages...
---
tests/functional/test_aarch64_virt_gpu.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
index 38447278579..4e50887c3e9 100755
--- a/tests/functional/test_aarch64_virt_gpu.py
+++ b/tests/functional/test_aarch64_virt_gpu.py
@@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
self.skipTest("egl-headless support is not available")
elif "'type' does not accept value 'dbus'" in excp.output:
self.skipTest("dbus display support is not available")
+ elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
+ self.skipTest("EGL failed to initialize on this host")
else:
self.log.info("unhandled launch failure: %s", excp.output)
raise excp
--
2.43.0
On 2025/08/26 21:34, Peter Maydell wrote: > If you are using the Nvidia drivers and have installed new versions > of those packages but have not yet rebooted the host kernel, > attempting to use the egl-headless display will cause QEMU to fail to > start with > > $ qemu-system-aarch64 -M virt -display egl-headless > qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED > qemu-system-aarch64: egl: render node init failed > > together with this complaint in the host kernel dmesg: > > [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but > NVRM: this kernel module has the version 535.230.02. Please > NVRM: make sure that this kernel module and all NVIDIA driver > NVRM: components have the same version. > > This isn't a problem with QEMU itself, so reporting this as a test > failure is misleading. Instead skip the tests, as we already do for > various other kinds of "host system can't actually run the EGL > display" situation. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Akihiko Odaki <odaki@rsg.ci.i.u-tokyo.ac.jp>
On 8/26/25 15:34, Peter Maydell wrote:
> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
>
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed
>
> together with this complaint in the host kernel dmesg:
>
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
> NVRM: this kernel module has the version 535.230.02. Please
> NVRM: make sure that this kernel module and all NVIDIA driver
> NVRM: components have the same version.
>
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading. Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I run into this fairly often so I got fed up with just ignoring the
> spurious test failure messages...
> ---
> tests/functional/test_aarch64_virt_gpu.py | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
> index 38447278579..4e50887c3e9 100755
> --- a/tests/functional/test_aarch64_virt_gpu.py
> +++ b/tests/functional/test_aarch64_virt_gpu.py
> @@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
> self.skipTest("egl-headless support is not available")
> elif "'type' does not accept value 'dbus'" in excp.output:
> self.skipTest("dbus display support is not available")
> + elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
> + self.skipTest("EGL failed to initialize on this host")
> else:
> self.log.info("unhandled launch failure: %s", excp.output)
> raise excp
Acked-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
--
Best regards,
Dmitry
Peter Maydell <peter.maydell@linaro.org> writes: > If you are using the Nvidia drivers and have installed new versions > of those packages but have not yet rebooted the host kernel, > attempting to use the egl-headless display will cause QEMU to fail to > start with > > $ qemu-system-aarch64 -M virt -display egl-headless > qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED > qemu-system-aarch64: egl: render node init failed > > together with this complaint in the host kernel dmesg: > > [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but > NVRM: this kernel module has the version 535.230.02. Please > NVRM: make sure that this kernel module and all NVIDIA driver > NVRM: components have the same version. > > This isn't a problem with QEMU itself, so reporting this as a test > failure is misleading. Instead skip the tests, as we already do for > various other kinds of "host system can't actually run the EGL > display" situation. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Acked-by: Alex Bennée <alex.bennee@linaro.org> <snip> -- Alex Bennée Virtualisation Tech Lead @ Linaro
On Tue, Aug 26, 2025 at 3:36 PM Peter Maydell <peter.maydell@linaro.org> wrote:
>
> If you are using the Nvidia drivers and have installed new versions
> of those packages but have not yet rebooted the host kernel,
> attempting to use the egl-headless display will cause QEMU to fail to
> start with
>
> $ qemu-system-aarch64 -M virt -display egl-headless
> qemu-system-aarch64: egl: eglInitialize failed: EGL_NOT_INITIALIZED
> qemu-system-aarch64: egl: render node init failed
Could this error ever mean QEMU is doing something wrong in general? I
think not, but I'm not 100% certain. Better to skip it indeed.
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
>
> together with this complaint in the host kernel dmesg:
>
> [7874777.555649] NVRM: API mismatch: the client has the version 535.247.01, but
> NVRM: this kernel module has the version 535.230.02. Please
> NVRM: make sure that this kernel module and all NVIDIA driver
> NVRM: components have the same version.
>
> This isn't a problem with QEMU itself, so reporting this as a test
> failure is misleading. Instead skip the tests, as we already do for
> various other kinds of "host system can't actually run the EGL
> display" situation.
>
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I run into this fairly often so I got fed up with just ignoring the
> spurious test failure messages...
> ---
> tests/functional/test_aarch64_virt_gpu.py | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tests/functional/test_aarch64_virt_gpu.py b/tests/functional/test_aarch64_virt_gpu.py
> index 38447278579..4e50887c3e9 100755
> --- a/tests/functional/test_aarch64_virt_gpu.py
> +++ b/tests/functional/test_aarch64_virt_gpu.py
> @@ -76,6 +76,8 @@ def _launch_virt_gpu(self, gpu_device):
> self.skipTest("egl-headless support is not available")
> elif "'type' does not accept value 'dbus'" in excp.output:
> self.skipTest("dbus display support is not available")
> + elif "eglInitialize failed: EGL_NOT_INITIALIZED" in excp.output:
> + self.skipTest("EGL failed to initialize on this host")
> else:
> self.log.info("unhandled launch failure: %s", excp.output)
> raise excp
> --
> 2.43.0
>
>
© 2016 - 2025 Red Hat, Inc.