Linux筆電省電技巧:用EnvyControl關閉Nvidia獨顯

EnvyControl是方便Linux筆電用戶切換內顯(integrated GPU)、獨顯(discrete GPU)的小工具。它除了能夠讓程式全部以獨顯來算繪之外,也可以將獨顯完全關閉以節省電量。

測試系統:openSUSE Tumbleweed,Linux核心版本6.2.4,桌面環境KDE 5.27.2 (X11通訊協定)。

1. 背景

MSI Modern 15 A10,配備Intel i5-10210u (UHD620) + Nvidia MX350獨顯。這台筆電已經用了3年,電池健康度下降到69%,但是根據筆電續航為官方宣稱的減半定律,至少應還有3小時的續航力吧,可顯然不是這樣。最近distro hopping回到了openSUSE Tumbleweed,發現續航力大約只剩2小時,這是為什麼?筆電上課做筆記,僅單純打打字、用於寫筆記的用途。之前用過最不耗電的發行版一是Gentoo,二是Ubuntu,用三小時還能有40%;換成Arch和openSUSE後就逃不過耗電的命運,撐不到二個半小時就只剩10%。

作筆記開的大概就這些程式,除了我上課不會聽Youtube外
作筆記開的大概就這些程式,除了我上課不會聽Youtube外

桌面環境和瀏覽器不應該是問題來源。對,我當然可以用i3wm+Surf 上網,但我境界沒那麼高。因此使用瀏覽器這種必要的耗電東西,我是可以忍的。

研究耗電的問題後得到些啟發,非原裝Linux的筆電要省電雖不可能像Windows一樣有先天驅動優化,可還是有好用的工具能使用,最著名的就是"TLP",安裝後可有效省電,又不會讓電腦卡的要死。然而GNOME和KDE主流桌面環境都已內建Power Profile Daemon來調節耗電量,大部份發行版還會將TLP與PPD列為衝突套件。再根據Reddit的討論認為二者無明顯差距,我便沒有再刻意安裝TLP。

問題是筆電還是很耗電啊?所以我將腦袋動到了Nvidia獨顯上。測試發現,即使獨顯沒有進行任何算繪,晾在那邊還是會耗電,加上我只是單純打打字。所以應該直接將耗電獨顯關閉。在這麼一搞後,筆電的續航力從2小時回復到3小時以上。

2. 安裝EnvyControl

請先確保電腦已安裝Nvidia驅動,並用lscpi | grep NVIDIAnvidia-smi指令檢查,應會看到系統目前已載入Nvidia驅動。

EnvyControl這個Python純文字程式做的事情跟Optimus Manager一樣,都是方便使用者在內顯、混合、獨顯模式中切換。差別在於Optimius Manager只有Arch Linux有,而EnvyControl其他Linux發行版也能用。

EnvyControl可以用Pip安裝:

1
2
3
git clone https://github.com/bayasdev/envycontrol.git
cd envycontrol
sudo pip install .

EnvyControl提供三種模式選擇:

  1. Integrated:只使用內顯,完全關閉獨顯,筆電HDMI輸出孔失效。
  2. Hybrid:預設使用內顯,並啟用Nvidia PRIME,需要的時候可以用獨顯算繪。較新的Nvidia顯示卡還支援RTD3自動省按需電。此模式下HDMI輸出孔雖能運作但會導致效率低下。
  3. Nvidia:全部使用獨顯算繪,增加耗電量。建議需要HDMI輸出孔外接螢幕工作的時候使用此模式。

正常情況下,上課寫筆記用不到獨顯。此外,RTD3的按需省電模式只有在GTX1650 (Turing架構)後面的顯示卡才有。那麼就只能使用Integrated模式了。

使用以下指令啟用Integrated模式,重開機

1
sudo envycontrol -s integrated

重開機後,執行lscpi | grep NVIDIAnvidia-smi指令會看到Nvidia獨顯從PCI列表消失了。

欲重新啟用Nvidia獨顯,執行以下指令重開機。

1
sudo envycontrol --reset

3. 測試對比

測試有開獨顯 vs 關掉獨顯的對比。開機後使用圖中這些應用程式一小時,再對比耗電量。

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

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

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

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

如果本網站文章對您有幫助,歡迎贊助我。