Virtual-Machine

不接受 lib-virt 的 QEMU 命令行參數 - 無法保存 xml 文件

  • February 6, 2020

我正在嘗試按照本指南https://blog.zerosector.io/2018/07/28/kvm-qemu-windows-10-gpu-passthrough/在 Ubuntu 主機上執行的 Win10 客戶機上執行音頻。

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 edit win10編輯 VM 配置的部分時,未保存更改並發生以下錯誤:

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 文件沒有保存並且音頻在 VM 中仍然不起作用。

做一些研究我發現修改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 配置的機器?

**編輯:**由於邁克爾漢普頓的回复,我決定再試一次,我設法弄明白了。檢查下面的答案。

由於邁克爾漢普頓的回复,我決定再試一次,我設法弄明白了。

事實證明,當您想將環境變數傳遞給我嘗試做的事情時,您還必須包括

<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>

引用自:https://unix.stackexchange.com/questions/495703