启动 KVM 时(在 ubuntu 19.04 中运行良好)出现以下错误:
Error starting domain: internal error: qemu unexpectedly closed the monitor: pulseaudio: pa_context_connect() failed pulseaudio: Reason: Connection refused pulseaudio: Failed to initialize PA contextaudio: warning: Using timer based audio emulation
Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 75, in cb_wrapper
callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 111, in tmpcb
callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 66, in newfn
ret = fn(self, *args, **kwargs) File "/usr/share/virt-manager/virtManager/object/domain.py", line 1279, in startup
self._backend.create() File "/usr/lib/python3/dist-packages/libvirt.py", line 1080, in create
if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self) libvirt.libvirtError: internal error: qemu unexpectedly closed the monitor: pulseaudio: pa_context_connect() failed pulseaudio: Reason: Connection refused pulseaudio: Failed to initialize PA contextaudio: warning: Using timer based audio emulation
我对配置文件进行了更改。我添加了以下几行以反映从 qemu 3.1 到 4.0 的变化
<qemu:commandline>
<qemu:env name="QEMU_AUDIO_DRV" value="pa"/>
<qemu:env name="QEMU_PA_SERVER" value="/run/user/1000/pulse/native"/>
</qemu:commandline>
如果我删除这些行,我就无法将声音传递到pulseaudio。
是的,kvm 音频用户就是我。
任何帮助都将不胜感激。这是一个错误还是设置问题。我的客户是 Windows 10 (1903)
答案1
这是因为自 qemu 4.0 以来音频配置发生了变化。您需要编辑 vm 配置:
sudo virsh edit <your_vm>
然后替换你的行:
<qemu:commandline>
<qemu:env name="QEMU_AUDIO_DRV" value="pa"/>
<qemu:env name="QEMU_PA_SERVER" value="/run/user/1000/pulse/native"/>
</qemu:commandline>
和:
<qemu:commandline>
<qemu:arg value='-audiodev'/>
<qemu:arg value='pa,id=pa1,server=/run/user/1000/pulse/native'/>
</qemu:commandline>
我在这里找到了这个:https://www.reddit.com/r/VFIO/comments/b1crpi/qemu_40_due_soon_might_bring_superb_audio_test_now/
答案2
它在 19.10 上运行良好,但我本机运行的是 Ubuntu。我还必须进行修复安装,这样我的配置文件就可以重新开始了。
我会尝试:删除旧版本和任何旧配置文件
sudo apt-get purge qemu
sudo apt-get purge pulseaudio
sudo bash -c 'for i in update {,dist-}upgrade auto{remove,clean}; do apt-get $i -y; done'
然后重新安装它们:
sudo apt install qemu
sudo apt install pulseaudio
这样,您便可拥有全新、完全更新的应用程序,而不会被旧配置所困扰。
我假设你的意思是你的主机操作系统是 Windows 10?并且你在 WSL2 上运行?
答案3
替代(简单)解决方案:(1 个命令)
sudo systemctl restart libvirtd.service
# 这可能只是暂时的解决办法,但对我来说很有效
希望对未来有用。