![使用 OpenGL 重新编译 QEMU,但 virt-manager 或 libvirt 告诉我此 QEMU 不支持 spice OpenGL](https://linux22.com/image/1541894/%E4%BD%BF%E7%94%A8%20OpenGL%20%E9%87%8D%E6%96%B0%E7%BC%96%E8%AF%91%20QEMU%EF%BC%8C%E4%BD%86%20virt-manager%20%E6%88%96%20libvirt%20%E5%91%8A%E8%AF%89%E6%88%91%E6%AD%A4%20QEMU%20%E4%B8%8D%E6%94%AF%E6%8C%81%20spice%20OpenGL.png)
我想根据这个博客使用 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。