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誕生吧。
原文:http://mtoou.info/ubuntu-11-10-optimus/