我想根据这个博客使用 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。