星期四, 十月 18, 2012

解决SMP平台程序GUI卡死问题,VirtualBox完美运行Mac OS X


VirtualBox提供Mac OS X比较完美的支持,选择单核时Lion安装上直接就能完美运行,速度相对来说还是比较快的。但是Mountain Lion在单核平台下却不能安装,安装进行到还剩4分钟时死机,双核安装没有问题。但是双核平台下不管是Lion还是Mountain Lion运行都不正常,程序GUI经常卡死,屏幕刷新不完全等错误,但是系统本身没有死机,强行退出程序后还能继续运行。原本以为是MAC的SMP调度算法和VirtualBox不兼容,但是根据这个帖子的说法,应该是很多Intel多核平台都存在的问题,而安装VoodooTSCSync这个插件可以解决此问题。
VoodooTSCSync可以在其官方主页下载,Multibeast没有提供(希望以后版本能集成),安装可以使用KextDrop(下载连接)。安装完后修改VoodooTSCSync的Info.php,找到IOCPUNumber字段,根据给虚拟机分配的核心数修改,双核如下:
<key>IOCPUNumber</key>
<integer>2</integer>
进入系统后可以用kextstat查看已经加载的kext列表,使用kextload -v [name.kext]可以手动加载内核模块,使用kextcache -system-prelinked-kernel和kextcache -system-caches可以重新生成kext cache,使用system_profiler|grep -i core可以看到核心数,Lion在/var/log/kernel.log中搜索tsc可以看到VoodooTSCSync模块加载输出的字符串,Mountain Lion在/var/log/system.log中
补充一点: 装了VoodooTSCSync后虽然卡死情况少了,但是并没有完全消失,所以对比下来还是单核平台下运行原生Lion稳定性最好。而且VoodooTSCSync好像只有当机器类型是Mac Pro的情况下才管用,机器类型在/Extra/smbios.plist内设置,相关内容如下
<key>SMfamily</key>
<string>Mac Pro</string>
<key>SMproductname</key>
<string>MacPro3,1</string>>

没有评论: