不接受 lib-virt 的 QEMU 命令行参数 - 无法保存 xml 文件

不接受 lib-virt 的 QEMU 命令行参数 - 无法保存 xml 文件

我正在尝试按照本指南在 Ubuntu 主机上运行的 Win10 Guest 上运行音频https://blog.zerosector.io/2018/07/28/kvm-qemu-windows-10-gpu-passthrough/

GPU 直通工作正常,但我有音频问题。描述如何使音频工作的部分需要通过编辑 xml 文件的第一行,然后在末尾添加以下行,将命令行参数传递到 VM:

<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_PA_SAMPLES' value='8192'/>
<qemu:env name='QEMU_AUDIO_TIMER_PERIOD' value='99'/>
<qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>

我遇到的问题是,当我到达编辑虚拟机配置的部分时virsh编辑win10更改未保存,并出现以下错误:

Failed. Try again? [y,n,i,f,?]: 
error: XML document failed to validate against schema: Unable to 
validate doc against /usr/share/libvirt/schemas/domain.rng
Element domain has extra content: env

我尝试了 f 和 i 响应,但 xml 文件未保存,并且音频在虚拟机中仍然无法工作。

做了一些研究,我发现修改 xml 文件的第一行

<domain type='kvm'> to 
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

没有效果,因为该模式不再存在(404s)。将其替换为 .rng 替代品'https://libvirt.org/schemas/domain.rng'也不行。

我的问题是:如何将所需的命令行参数传递给已经存在并通过 virt-manager 配置的机器?

编辑:我决定再试一次,感谢迈克尔·汉普顿的回复,我终于找到了答案。检查下面的答案。

答案1

我决定再试一次,感谢迈克尔·汉普顿的回复,我终于弄清楚了。

事实证明,当您想将环境变量传递给我想要做的事情时,您还必须包括

<qemu:commandline>
...
</qemu:commandline>

环境变量之前和之后。我的 xml 文件的最后一部分如下所示:

<qemu:commandline>    
<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_PA_SAMPLES' value='8192'/>
<qemu:env name='QEMU_AUDIO_TIMER_PERIOD' value='99'/>
<qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
</qemu:commandline>

相关内容