星期三, 6月 01, 2011

[link] Nvidia Optimus on linux 的解決方案 : bumblebee 大黃蜂

https://github.com/MrMEEE/bumblebee

四月份的時候買了一台DELL i5二代的筆電,
用起來還算滿意,
但是就是在linux下居然無法使用Nvidia的顯示卡這點讓我不是很滿意。

當初在買筆電的時候,為了相容Linux還特地挑了一個Nvidia的獨顯,
想說一直以來Nvidia的顯示卡在Linux下都支援良好,
所以也沒特別注意相關的消息,
這次買了才發現,,
只要是使用了Nvidia動態切換內顯和獨顯的Optimus技術的筆電,
在Linux下通通沒辦法驅動Nvidia獨顯,
而只能用Intel的內建顯示,
並且Nvidia的顯卡雖然無法運作,
但還是會在背景吃掉相當多的電力,
一個原本是設計來省電的技術反而耗了更多的電,
實在是非常的諷刺。

原本想說應該BIOS就可以直接切換成Nvidia獨顯,
結果研究了一下才知道Nvidia的輸出會經過Intel顯卡,
所以如果沒有內建硬體的Multiplexer,
想關掉Intel顯卡直接使用Nvidia顯卡是不可能的,
當時只好在網路上找了一個acpi的方法把Nvidia的顯卡先關掉,
但是反過來如果只是要把Nvidia的顯示卡打開卻似乎是辦不到,
實在是萬分苦惱。

然後剛剛發現了這個bumblebee(大黃蜂)專案,
提供了ㄧ個簡單的script就讓Linux支援了Nvidia顯示卡且使用官方的3D驅動,
雖然還沒辦法動態切換, 但是可以手動切換也算是不錯了。

安裝的方法真的是很簡單:
先git clone https://github.com/MrMEEE/bumblebee.git
然後執行其中的install.sh 回答幾個只要選default就可以的問題 之後就安裝完成囉!

平常的時候,預設還是會用Intel的顯卡來執行,
要用Nvidia執行的時候, 則要透過optirun來執行該程式~~

#glxgears

304 frames in 5.0 seconds = 60.604 FPS
301 frames in 5.0 seconds = 60.137 FPS
301 frames in 5.0 seconds = 60.136 FPS
301 frames in 5.0 seconds = 60.137 FPS
301 frames in 5.0 seconds = 60.137 FPS

#optirun glxgears
* Starting Bumblebee X server bumblebee Enabling nVidia Card failed (Error: AE_BAD_PARAMETER).
[ OK ]
3015 frames in 5.0 seconds = 602.973 FPS
3312 frames in 5.0 seconds = 662.366 FPS
2908 frames in 5.0 seconds = 581.591 FPS
2798 frames in 5.0 seconds = 559.551 FPS
3409 frames in 5.0 seconds = 681.679 FPS

雖然是有些錯誤訊息不過還是有成功的跑起來了,
另外再跑了lgfxgears也是由2fps到100fps,果然是快了不少.