随笔-167  评论-8  文章-0  trackbacks-0
转自:http://www.linuxsir.org/bbs/thread356811.html

VMware Workstation 6.5.3是最近才推出的工作站桌面领域的顶尖虚拟化工具,相比VirtualBox而言,更加稳定、支持客户操作系统种类更广泛,运行性能有了更进一步提高,支持多核CPU,是业界的龙头老大,自不必多言。不过如果你以Linux作为宿主操作系统安装VMware WS 6.5.3的话,可能会有些问题,主要是VMware WS在Linux宿主环境下对声音设备的支持仍然采用OSS标准,目前Linux系统早已采用ALSA声音架构,且绝大多数发行版已采用 PulseAudio作为声音服务器,底层基于ALSA,因此VMware WS在这种情况下默认是无法发出声音的。在Fedora 11下,最新的VMware WS 6.5.3居然在安装时还会发生长时间挂起现象,连安装都无法正常完成,究其原因,可能是新版在进行内核模块配置及编译时的出错处理以及后台进程控制上可能有点问题。因为最近正好要在Fedora 11开发环境下安装VMware WS,虚拟一个WinXP出来用于开发及网络测试,通过google和实践,总算摸索出一套行之有效的办法,解决了在Fedora 11下安装VMware WS 6.5.3以及让VMware完美利用PulseAudio使虚拟机发出声音,并且没有任何暴音、断续、泡泡音的问题,顺带还把Fedora 11下PulseAudio存在的一些问题也一并解决了。

1、在Fedora 11下安装VMware WS 6.5.3

下载VMware WorkStation 6.5.3安装包,不要用.rpm的版本,我们采用.bundle的版本。

在图形环境下打开两个命令终端窗口,其中一个切换成root,采用命令“su -”就可以切换为root,当然要输入root口令了。

在切换root的命令终端窗口,输入以下内容:

while true; do killall -9 vmware-modconfig-console; sleep 1; done

然后回车,不要理会提示的信息。这主要是为了等会儿在VMware WS安装的过程中发现内核编译安装开始就强行关闭编译安装过程,否则安装会一直挂起的!

在非root身份的另外一个命令终端窗口,进入到.bundle安装包文件所在目录,输入以下命令:

chmod a+x VMware-Workstation-6.5.3-185404.i386.bundle
sudo ./VMware-Workstation-6.5.3-185404.i386.bundle --ignore-errors

然后回车,会出现VMware WS 6.5.3的安装窗口,很简单,直接点下一步或者确定,直到顺利安装完成。

到此,VMware WS 6.5.3其实还没有真正安装完成,因为关键的内核模块其实还没有编译安装,这时,我们回到root的那个命令终端窗口,按Ctrl-C中断那个不断循环的脚本命令,然后输入以下命令:

vmware-modconfig --console --install-all

然后回车,这样就开始自动编译安装所有依赖的内核模块,全部完成后,VMware WS 6.5.3的安装才真正大功告成。

2、解决VMware WS 6.5.3在PulseAudio环境下无法发出声音的方法

VMware WS 6.5.3仍然采用OSS来支持声音设备,但现在Linux早已采用ALSA声音驱动架构了,OSS已经淘汰,并且几乎所有发行版都采用 PulseAudio作为声音服务器,所以要让VMware能够使用声音设备在虚拟机中发出声音,必须通过PulseAudio来模拟OSS让 VMware的声音功能正常。一般来讲,ALSA自己还有一个aoss插件,也可以模拟OSS,但是这会和PulseAudio产生一些问题,导致 VMware发出的声音暴音或者断续泡泡音,所以,首先要确保系统中没有安装aoss,如果有,一定要删除,删除的方法是用

sudo yum remove alsa-aoss*

命令即可。另一方面,为了让PulseAudio的OSS模拟以及多音频流能够正常工作,它和ALSA必须能够互通,这需要借助于ALSA的 PulseAudio插件,因此还必须安装ALSA的PulseAudio插件,你应该确认系统中有已安装有alsa-plugins- pulseaudio这个软件包,如果没有,用

sudo yum install alsa-plugins-pulseaudio

命令安装即可。接下来,我们需要对VMware WS 6.5.3的启动程序文件进行一些修改,请参照下面的命令:

$ cd /usr/lib/vmware/bin
$ sudo mv vmware-vmx vmware-vmx.real
$ sudo vi vmware-vmx
在vi中输入以下内容:
#!/bin/bash
padsp /usr/lib/vmware/bin/vmware-vmx.real "$@"
保存后退出。
$ sudo chmod a+x,u+s vmware-vmx
$ cd /usr/lib
$ sudo chmod u+s libpulsedsp.so
$ sudo vi /etc/pulse/daemon.conf
在vi中输入以下内容:
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 5
resample-method = speex-float-3
default-fragments = 4
default-fragment-size-msec = 4
保存后退出。
$ sudo vi /etc/security/limits.conf
确保在vi中有如下内容(如果没有则增加):
@pulse-rt - rtprio 99
@pulse-rt - nice -20
保存后退出。
$ sudo vi /etc/pulse/default.pa
在vi中找到load-module module-hal-detect这一行,改为
load-module module-hal-detect tsched=0
保存后退出。

然后将当前你登录的用户账号加入到pulse-rt、pulse-access组中,可以用GNOME提供的“用户和组群”图形化工具来添加。

以上这些都完成后,重新启动整个系统(而不是仅仅注销),然后运行VMware WorkStation,新建一个虚拟机,注意在声卡配置的时候,不要选择“Auto Detect”,一定要手工强制输入为/dev/dsp,保存配置,因为VMware的自动检测其实根本检测不到任何OSS声卡设备,我们因为是采用 PulseAudio来模拟OSS,必须强制输入/dev/dsp,这个仅仅在VMware运行的时候动态在内存在创建,硬盘上是找不到这个设备文件的。之后就可以安装虚拟机操作系统了,VMware WS的虚拟机系统将会由PulseAudio来模拟OSS正常发出声音,并且可以和Fedora 11宿主系统中的其他多媒体程序共同实现多音频流,互不影响,上述操作顺带还解决了Fedora 11下PulseAudio声音暴音、断续、CPU占用量高等问题,所有的暴音、断续、泡泡音、CPU高占用率等现象都不存在了,声音变得清澈连续,呵呵,太完美了。
posted on 2009-11-27 22:17 老马驿站 阅读(563) 评论(0)  编辑 收藏 引用 所属分类: linux