当我们在KVM/qemu/libvirt下的虚拟机中使用Spice时,QEMU_AUDIO_DRV默认设置为spice。
我的主机(debian-Stretch)使用良好的声卡(Xonar DX)和更好的声音驱动程序(pulseaudio,alsa)。
如何在虚拟机中使用spice来处理图形方面,使用pulseaudio或alsa来处理声音方面(无论客户操作系统是什么)?
注1:在domain.xml中,我添加了:
<qemu:commandline>
<qemu:env name='QEMU_AUDIO_DRV' value='pa'/>
<qemu:env name='QEMU_PA_SERVER' value='/run/user/1000/pulse/native'/>
</qemu:commandline>
现在,在domain.log 中,我看到:
QEMU_AUDIO_DRV=pa QEMU_PA_SERVER=/run/user/1000/pulse/native
好吧,但我不知道我的客人是否使用pulseaudio,因为domain.xml 有以下部分:
<sound model='ich6'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
笔记2: 其他尝试:
<qemu:commandline>
<qemu:env name='QEMU_AUDIO_DRV' value='alsa'/>
</qemu:commandline>
没有声音。
答案1
答案2
你的第一个qemu:commandline
片段没问题,我用它很好地将客人的声音引导到主机上的特定 PA 声卡。这是主机上的音量控制对话框条目:
要连接到当前用户 PA,只需在 下创建域qemu:///session
,这意味着 VM 进程默认在当前用户 ID 下运行。无需更改全局 QEMU 或 PA 配置。要调试无头,您可以使用以下命令查看 PA 是否从 virt-manager 获得连接pacmd list-clients
:
index: 137
driver: <protocol-native.c>
owner module: 11
properties:
application.name = "virt-manager"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "34"
application.process.id = "97515"
application.process.user = "xyz"
application.process.host = "xyz"
application.process.binary = "python3.9"
application.icon_name = "virt-manager"
application.language = "en_US.UTF-8"
window.x11.display = ":0.0"
application.process.machine_id = "68058b3d029948a1ae03d28f827a6f53"
application.process.session_id = "c2"