我正在尝试按照本指南在 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>