使用 OpenGL 重新编译 QEMU,但 virt-manager 或 libvirt 告诉我此 QEMU 不支持 spice OpenGL

使用 OpenGL 重新编译 QEMU,但 virt-manager 或 libvirt 告诉我此 QEMU 不支持 spice OpenGL

我想根据这个博客使用 virtio-gpu:

https://www.kraxel.org/blog/2016/09/using-virtio-gpu-with-libvirt-and-spice/

我正在使用 Debian 进行测试,但是当我运行时,官方 Debian 源中的 QEMU 不支持 OpenGL

qemu-system-x86_64 -display sdl,gl=on

它说

SDL1 display code has no opengl support.
Please recompile qemu with SDL2, using
./configure --enable-sdl --with-sdlabi=2.0
qemu-system-x86_64: OpenGL support is disabled

所以我用这些选项重新编译了 QEMU。

成功后,当我跑

qemu-system-x86_64 -display sdl,gl=on

再次,它启动了一个窗口并继续。

但是当我添加

<graphics type='spice'>
  <listen type='none'/>
  <gl enable='yes'/>
</graphics>
<video>
  <model type='virtio'/>
</video>

到我的 libvirt 域文件并启动,libvirt 提示符:

error: Failed to start domain debian9-xfce
error: unsupported configuration: This QEMU doesn't support spice OpenGL

我已经安装了这些包:

gir1.2-spice-client-gtk-3.0=0.33-3.3
libspice-server1=0.13.90-0.2
libvirglrenderer0=0.6.0-2
mesa-utils=8.3.0-5
libepoxy0=1.3.1-3

我发现那里是针对 QEMU OpenGL 支持的 libvirt 补丁:

+    if (graphics->data.spice.gl) {
+        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE_GL)) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("This QEMU doesn't support spice OpenGL"));
+            goto error;
+        }

但是我不知道如何virQEMUCapsGet获得 QEMU 功能,因为我已经编译了支持 OpenGL 的 QEMU。

相关内容