快轉到主要內容

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

分類   Linux系統 Linux使用技巧
標籤   Nvidia Linux OpenSUSE
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

EnvyControl是方便Linux筆電用戶切換內顯(integrated GPU)、獨顯(discrete GPU)的小工具。

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

EnvyControl做的事情跟 Optimus Manager一樣,都是方便使用者在內顯、混合、獨顯模式中切換。差別在於Optimus Manager只有Arch Linux有,而EnvyControl其他Linux發行版也能用,支援Ubuntu、Fedora、Arch Linux、openSUSE、Gentoo。

1. 背景
#

本段只是個人嘮叨,解釋為何要用EnvyControl。

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

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

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

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

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

問題是筆電還是很耗電啊?所以我將腦袋動到了Nvidia獨顯上。測試發現Nvidia專有驅動比開源驅動nouveau還耗電。即使獨顯沒有進行任何算繪,晾在那邊還是會耗電,可我需要專有驅動算繪啊。

那麼在我只是單純打打字的時候,應該直接將耗電獨顯關閉。在這麼一搞後,筆電的續航力從2小時回復到3小時以上。

2. 安裝EnvyControl
#

  1. 在電腦 安裝專有Nvidia驅動

  2. lscpi | grep NVIDIAnvidia-smi指令檢查,應會看到系統目前已載入Nvidia驅動。

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

sudo apt install ./python3-envycontrol_*.deb
  1. 另外,KDE桌面可以裝 Optimus GPU Switcher的圖形小工具;GNOME則是安裝 GPU profile selector方便切換GPU。

3. 用EnvyControl切換Nvidia獨顯
#

EnvyControl提供三種模式選擇:

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

一般情況下我不太用會到獨顯。此外RTD3的按需省電模式只有在GTX1650(Turing架構)後面的顯示卡才有。那麼就只能使用Integrated模式了。

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

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

sudo envycontrol --reset

4. 測試耗電量對比
#

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

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

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

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

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

相關文章

Windows系統如何掛載Linux的BTRFS硬碟:使用WinBTRFS
分類   Linux系統 Linux使用技巧
標籤   Linux Windows
查詢Linux系統是何時安裝、最初安裝日期的指令
分類   Linux系統 Linux使用技巧
標籤   Linux
Ubuntu如何安裝Wifi無線網路卡驅動程式,以Realtek RTL8822BU為例
分類   Linux系統 Linux使用技巧
標籤   Linux Ubuntu

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

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