感謝腳本之家網友 鸢一雨音 的投稿
眾所周知,自從高性能獨立圖形處理器出現之後,很多便攜式計算機就會采取一種雙顯卡的設計:節能的核心圖形處理器用於渲染常規的桌面環境,而高性能的獨立圖形處理器則負責渲染高需求的應用程序。這種技術被稱作Optimus智能顯卡切換。但是英偉達經常被Linux用戶诟病的原因之一,便是一直不對Linux平台上心,不僅沒有Linux下的Optimus支持,驅動程序更新也慢半拍。
這意味著,Linux用戶必須在一次會話中一直使用核心顯卡或者一直使用獨立顯卡;一直使用核心顯卡會很節能,但是Hold不住某些應用程序(比如現在很多巨型的3D游戲已經通過Steam登陸了Linux平台),而一直使用獨立顯卡將會非常耗電,即使你在做很簡單的工作。
所幸的是,Linux平台上有一個有名的第三方項目,名叫Bumblebee(大黃蜂)。這個項目目的就是給Linux提供類似Optimus技術的支持。這個項目以前並不出名,但是它某個版本的安裝腳本install.sh多敲了一個空格,從而錯誤地刪掉了所有用戶的整個/usr,這個事件使它迅速出名並獲得了大量的技術支持。這麼想也是因禍得福吧。
一、配置bumblebee
筆者所有指令對應於Arch Linux 64位版。
閒話收住,現在開始正式配置我們的雙顯卡。首先,安裝英偉達官方的顯卡驅動程序:
sudo pacman -S nvidia
選擇和你目前的操作系統相匹配的驅動程序,比如筆者的是Linux 4.9內核,我就應該選帶有linux49字樣的包。等待安裝完成,期間你應該會看到類似的輸出:
然後安裝bumblebee軟件包:
sudo pacman -S bumblebee
安裝完成之後,記得檢查當前用戶是否在用戶組“bumblebee”內。如果不是,請手動添加。重啟計算機,以使英偉達驅動被正確加載,並使bumblebee守護進程啟動。
二、測試bumblebee
Bumblebee提供了指令optirun,以使用戶在會話仍然以集成顯卡渲染的情況下,使用獨立顯卡渲染指定的應用。我們使用加了光影和視差貼圖材質包的MC(Minecraft,我的世界)來檢查獨立顯卡的運行狀態。
首先我們采用常規的方式啟動MC,我用的是HMCL啟動器:
下面是比較吃配置的資源包和光影:
從第二張截圖還能看出,MC識別出了我們的顯卡型號:Intel HD Graphics 5500,也就是我的集成顯卡。
我們新建一個世界,進去看看:
這根本就不能正確渲染。下面我們使用optirun指令來執行MC:
進入到光影選項,發現MC已經正確識別了我們的顯卡:
我們進入一個世界:
嗯。光影正常工作了,幀率也很高,這意味著這個程序一定是高性能獨立顯卡在渲染了。
如果你能正常使用optirun指令,那麼你的配置就完成了。
三、注意
如果你遇到了使用optirun指令會讓整個會話崩潰的情況,那麼有兩個地方你需要檢查:
第一,你是否安裝了正確的nvidia包;
第二,嘗試使用最新的bumblebee倉庫裡的代碼自行編譯,不要使用發行版倉庫提供的版本。
Bumblebee項目不兼容Vulkan(新的圖形接口),這意味著如果你想體驗Vulkan就必須讓整個會話使用獨立顯卡渲染。
在Steam下,可以通過修改游戲的高級啟動選項為:optirun %command% 來指定該游戲運行在獨立顯卡上。
雖然Bumblebee有很多缺陷,包括不能支持Vulkan,但是對於Linux用戶來說,它是在Linux上實現Optimus技術的唯一途徑。希望本教程能對部分Linux用戶有所幫助。