快轉到主要內容

雙顯卡Linux筆電很耗電?用EnvyControl切換Nvidia獨顯,還可以省電

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux使用技巧
標籤   Nvidia Linux GNOME KDE Plasma
目錄

你有搭載Intel + Nvidia雙顯卡的Linux筆電嗎?那麼你可能會碰到以下問題:

  1. 開機預設都是用Intel內顯渲染,Nvidia獨顯不工作,得用Nvidia PRIME手動切換
  2. Nvidia獨顯很耗電,開下去續航砍半。

以上問題可以用「EnvyControl」解決,這是一款方便Linux筆電用戶切換內顯(integrated GPU)與獨顯(discrete GPU)的小工具。

它除了能夠讓Linux桌面程式全部以Nvidia獨顯來渲染之外,也可以將Nvidia獨顯完全關閉以節省電量。適合Intel + Nvidia或AMD + Nvidia筆電的用戶使用。

EnvyControl適用於各大Linux發行版,支援Ubuntu、Debian、Fedora、Arch Linux、openSUSE、Gentoo、Void Linux。

1. 為什麼要用EnvyControl
#

第一個理由是方便切換獨顯。以我這台MSI Modern 15 A10筆電來說,搭載Intel i5-10210u (UHD 620) 內顯 + Nvidia MX350獨顯,筆電HDMI孔跟Nvidia顯示卡連在一起。預設情況下,開機都是使用Intel內顯當作主顯示卡渲染的,需要進行圖形吃重的渲染工作的時候得透過Nvidia Optimus PRIME指令切換,但是這樣很不方便。EnvyControl的功能可以將Linux開機後的渲染全部交由Nvidia顯示卡執行。

如果不確定Linux電腦是用哪一個當主顯示卡渲染,可以使用指令vulkaninfo --summary或是glxinfo | grep OpenGL確認。

第二個理由是解決Nvidia獨顯的耗電問題。Linux筆電耗電的因素很多,除了軟體因素外,還有硬體因素。通常,Linux會透過Power Profiles Daemon服務來控制耗電量,但是這個只對CPU有效,如果電腦有Nvidia獨顯依然會吃電。Linux在安裝Nvidia專有驅動後,它不會自己調節,放著不管會很耗電。而我外出文書處理的時候用不到Nvidia獨顯渲染,空放著耗電的話不如將它關掉,這就是EnvyControl能作到的功能,如此一來能稍微延長些續航力。

部份廠牌的筆電能在UEFI界面關掉Nvidia獨顯,但很可惜的是我這台不支援。

第三個理由,解決Linux發行版之間的差異。部份發行版有自家切換Nvidia獨顯的工具,例如Ubuntu有prime-select,Arch Linux則是Optimus Manager。那麼其他發行版該怎麼辦呢?EnvyControl能解決這個問題。

2. 安裝EnvyControl
#

  1. 首先要在電腦安裝專有Nvidia驅動,例如Ubuntu參考這篇

  2. lspci | grep NVIDIAnvidia-smi指令檢查,應會看到系統目前已載入Nvidia驅動的核心模組

  3. 參考Github說明安裝EnvyControl,比如Ubuntu就下載deb檔,再用APT安裝:

sudo apt install ./python3-envycontrol_*.deb
  1. 建議安裝圖形控制面板。

GNOME桌面安裝擴充套件管理員,再安裝GPU profile selector擴充套件,切換按鈕會顯示在系統匣。

KDE Plasma在桌面右鍵 → 進入編輯模式 → 新增元件,下載Optimus GPU Switcher元件,裝好後會顯示在系統匣。

其他桌面請裝EnvyControl-PyQt

3. EnvyControl提供的模式
#

EnvyControl提供三種模式選擇:

  1. Integrated:只使用Intel內顯,將Nvidia驅動的核心模組加入黑名單,完全關閉Nvidia獨顯。此模式筆電的HDMI孔會無法輸出畫面。

  2. Hybrid:將內顯作為主顯示卡,僅特定程式用Nvidia PRIME指令渲染。較新的Nvidia顯示卡尚支援RTD3功能,會在閒置的時候自動關閉Nvidia顯示卡省電。此模式筆電的HDMI孔能正常運作。

  3. Nvidia:建立自訂X.org設定檔,將Nvidia獨顯作為主顯示卡,讓系統全部使用Nvidia獨顯渲染,擺脫Nvidia PRIME指令。這個模式會顯著增加耗電量。此模式筆電的HDMI孔能正常運作。因為技術問題,目前只支援Intel + Nvidia的筆電。還有這個模式只能登入X11工作階段,對Wayland無效。

下面我用指令示範。你有裝EnvyControl圖形控制面板就用按鈕切換即可。

4. 只啟用內顯,關閉Nvidia獨顯省電
#

Integrated模式。我個人會選取此模式用以省電。因為RTD3的按需省電模式在Nvidia GTX1650 (Turing架構) 或更新的顯示卡才有,而我的MX350太舊了。

  1. 使用指令啟用Integrated模式,會花一點時間切換。
sudo envycontrol -s integrated
  1. 重開機,執行lscpi | grep NVIDIAnvidia-smi指令,會看到Nvidia獨顯從PCI列表消失了。

  2. 用這個指令檢視目前電腦使用的主顯示卡為何:

vulkaninfo --summary

5. 將內顯和Nvidia獨顯都開啟
#

這是Hybrid模式。Intel內顯作為主顯示卡,需要Nvidia渲染的時候再使用Nvidia PRIME指令切換。如果Nvidia顯示卡支援RTD3,那麼它會在沒事幹的時候自動關閉省電。

  1. 切換為Hybrid模式
sudo envycontrol -s hybrid
  1. 如果你的顯示卡支援RTD3省電模式,那麼便將之開啟:
sudo envycontrol -s hybrid --rtd3
  1. 重開機。檢視目前電腦使用的主顯示卡為何:
vulkaninfo --summary

6. 將主顯示卡切換成Nvidia獨顯
#

Nvidia模式,強制將Nvidia獨顯作為主顯示卡,所有程式都用Nvidia獨顯渲染。

  1. 此模式僅限X11工作階段使用,Wayland無效。先檢查目前工作階段是否為X11:
echo $XDG_SESSION_TYPE
  1. 切換為Nvidia模式
sudo envycontrol -s nvidia
  1. 重開機,檢視目前電腦使用的主顯示卡為何:
vulkaninfo --summary

7. 測試耗電量對比
#

測試有開獨顯 vs 關掉獨顯的對比。

開機後使用圖中這些應用程式一小時,再對比耗電量。

Hybrid模式,開著獨顯,使用1小時,電量下降至65%。

Integrated模式,關掉獨顯,使用1小時,電量下降至73%。

對比可以發現儘管差距不大,耗電量還是有差的,包含KDE Plasma預估的電池可用時間。儘管KDE Plasma預估的電池可用時間會依照目前CPU耗電量而浮動(例如有時會突增至20W又降下來),但是關掉獨顯的電量預估時間就是比開著獨顯多出一小時。

上圖也可以看到Power Profile Daemon其實還有「省電」模式的電源設定檔可選,這樣續航力搞不好就半天了。但是你知道的,選這個強行降頻就是卡爆,所以我大部分只使用「平衡」模式。

相關文章

Linux Wayland桌面的縮放,放大字型、改善HiDPI支援、解決字型模糊
分類   Linux系統 Linux使用技巧
標籤   Linux GNOME KDE Plasma Wayland
Linux X11桌面的螢幕縮放比例 & 個別程式縮放(scale)的方法
分類   Linux系統 Linux使用技巧
標籤   Linux GNOME KDE Plasma X Window
Linux筆電很耗電?使用這些省電技巧提昇續航
分類   Linux系統 Linux使用技巧
標籤   GNOME KDE Plasma Nvidia Systemd Linux Kernel

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。