编译 kvm 时选择需要编译的音频驱动

microjo

使用 kvm 作为虚拟机安装 windows 系统,速度感觉很快,但是音频老是有问题:在进入虚拟机使用声卡后,外面的 ubuntu 不能够播放音乐。使用参数 -audio-help 查询支持的音频输出有哪些,发现有 alsa、oss、wav 等。依次 alsa、oss 作为输出使用都是类似的问题,差点就放弃使用声卡。由于 ubuntu 8.10 使用 PulseAudio 作为系统的声音服务,能够支持多个应用程序播放音频,就想 kvm 是否支持 PulseAudio 输出呢?Google 之后发现从 kvm 71 开始支持,参考官方 wiki 中的编译方法:

tar xzf kvm-release.tar.gz
cd kvm-release
./configure --prefix=/usr/local/kvm
make
sudo make install
sudo /sbin/modprobe kvm-intel
# or: sudo /sbin/modprobe kvm-amd

编译安装之后,查询还是没有支持 PulseAudio 输出。于是,用 ./configure --help 查询编译参数,里面没有提及声音驱动的设置。进一步查看 configure 的源代码,发现里面还设置了 qemu 目录下文件编译的参数,所以在 qemu 目录下面,执行 ./configure --help 发现有了声音驱动的参数设置:

--audio-drv-list=LIST set audio drivers list:
Available drivers: oss alsa sdl esd pa fmod

编译使用参数 --audio-drv-list="alsa oss pa",其中 pa 表示 PulseAudio。编译安装后,配置参数 export QEMU_AUDIO_DRV=pa 使用 PulseAudio 输出成功解决问题,但是好像稳定性有问题,在虚拟机下面播放音频关闭后,会莫名奇妙的跳出。

发布: