升级到 ubuntu 19.10 后由于pulseaudio 无法启动 kvm (qemu 4.0)

use*_*726 3 sound pulseaudio qemu 19.10

启动 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
Run Code Online (Sandbox Code Playgroud)

我已经对配置文件进行了更改。我添加了以下几行来反映从 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>
Run Code Online (Sandbox Code Playgroud)

如果我删除这些线,我将无法将声音传递到pulseaudio。

是的,kvm 音频用户就是我。

任何帮助将不胜感激。这是错误还是设置问题。我的客人是 Windows 10 (1903)

小智 6

这是因为自 qemu 4.0 以来音频配置发生了变化。您需要编辑虚拟机配置:

sudo virsh edit <your_vm>
Run Code Online (Sandbox Code Playgroud)

然后替换你的行:

   <qemu:commandline>
    <qemu:env name="QEMU_AUDIO_DRV" value="pa"/>
    <qemu:env name="QEMU_PA_SERVER" value="/run/user/1000/pulse/native"/>
  </qemu:commandline>
Run Code Online (Sandbox Code Playgroud)

和:

<qemu:commandline>
  <qemu:arg value='-audiodev'/>
  <qemu:arg value='pa,id=pa1,server=/run/user/1000/pulse/native'/>
</qemu:commandline>
Run Code Online (Sandbox Code Playgroud)

我在这里找到了这个: https: //www.reddit.com/r/VFIO/comments/b1crpi/qemu_40_due_soon_might_bring_superb_audio_test_now/