Nvidia的双显卡切换技术叫Optimus(擎天柱),可惜只能在win7、vista下实现。Linux下没有对应的技术,当然苹果也没有。AMD早已经为ATI显卡开发出Linux下的催化剂,支持A卡与intel集显之间切换,N卡的用户只能嘴馋。Linux下的图形服务是X11 server,于是有人开发出bumblebee(大黄蜂)X server来替换原生的图形服务,以支持N卡与I卡切换,但是bumblebee的软件源已经失效了,取而代之是ironhide(铁皮)x server。奇怪的是,这些名字都是变形金刚,难道将来出一个Megatron不行?好了,废话不多说,介绍本人在ASUS UL30VT本本下实现双卡切换。
1、添加软件源安装ironhide,系统自动安装nvidia-current驱动和nvidia-settings控制面板。终端输入:
sudo apt-add-repository ppa:mj-casalogic/ironhide && sudo apt-get update && sudo apt-get install ironhide ironhide-ui
如何知道自己机器是否能切换呢?就是查看pci接口的设备,终端输入:lspci | grep -i vga
2、弹出界面,设置ironhide的参数,一路选 Yes,选default。如果安装出现问题,可尝试卸载重新安装ironhide
sudo apt-get purge ironhide
sudo apt-get install ironhide
Nvidia控制面板打开的方法,输入:nvidia-settings
重新设置ironhide的参数,输入:ironhide-configuration或者ironhide-settings
本人一般设置结果:xv、pbo、:8、节能模式、自动禁用独显yes、一直在禁用之前打开独显yes
3、修改ironhide的设置,针对UL30VT的配置,软件在/usr/share/ironhide/examples/给出了预设脚本,一个是启动独显的脚本ironhide-enablecard.asus.UL30Vt,另一个是禁用独显的脚本ironhide-disablecard.asus.UL30Vt。把/usr/local/bin/下两个默认的脚本改成对应的本本型号:
sudo rm /usr/local/bin/ironhide-enablecard
sudo rm /usr/local/bin/ironhide-disablecard
sudo cp /usr/share/ironhide/examples/ironhide-enablecard.asus.UL30Vt /usr/local/bin/ironhide-enablecard
sudo cp /usr/share/ironhide/examples/ironhide-disablecard.asus.UL30Vt /usr/local/bin/ironhide-disablecard
终端执行/usr/local/bin/ironhide-disablecard会发现终端提示/proc/module缺少模块,或者内核缺少acpi_call.ko模块,笔者以为要手动注入acpi_call.ko,其实不用,在当前内核的一个隐藏文件夹update里面,已经有了这个模块。重启即可。
4、安装glxgears测试软件:打开软件中心源,打入关键字“glxgears”,找到Miscellaneous Mesa utilities软件,安装。输入glxgears看到三个齿轮在加速,证明独显开启了,关闭窗口后独显关闭。重启进入桌面。有些网友反映,该技术会导致闪屏,但是本人没有发现。
5、关机数小时,等机器冷却后在进入桌面,测试本本的出风口是不是冰凉冰凉的?本人发现效果与win7下用集显的情况差不多,有时甚至更冰凉,win7占用至少700M内存,而ubuntu只占用不到300M。还有一点遗憾的是,ubuntu下硬盘位置的温度比win7下偏高,不知什么原因。
等了差不多2年的技术,终于出来了,还是本人折腾出来的……原本采用acpi_call.ko禁用独显的方法,10.10版下在进入桌面后就崩溃了,本人无奈改成进入桌面后再手动执行脚本禁用;11.04版即使进入桌面后执行脚本也崩溃;11.10时代终于有了铁皮技术,太好了,但是某些时候它又会失效,例如休眠后进入桌面,感觉比较热。Ubuntu 11.10 Oneiric Ocelot还是有不少bug,感觉一直像个半成品,还是期待12.04 Long Term Surpport诞生吧。