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通訊協定)。
桌面環境和瀏覽器不應該是問題來源。對,我當然可以用i3wm+Surf 上網,但我境界沒那麼高。因此使用瀏覽器這種必要的耗電東西,我是可以忍的。
研究耗電的問題後得到些啟發,非原裝Linux的筆電要省電雖不可能像Windows一樣有先天驅動優化,可還是有好用的工具能使用,最著名的就是"TLP",安裝後可有效省電,又不會讓電腦卡的要死。然而GNOME和KDE主流桌面環境都已內建Power Profile Daemon來調節耗電量,大部份發行版還會將TLP與PPD列為衝突套件。再根據Reddit的討論認為二者無明顯差距,我便沒有再刻意安裝TLP。
問題是筆電還是很耗電啊?所以我將腦袋動到了Nvidia獨顯上。測試發現Nvidia專有驅動比開源驅動nouveau還耗電。即使獨顯沒有進行任何算繪,晾在那邊還是會耗電,可我需要專有驅動算繪啊。
那麼在我只是單純打打字的時候,應該直接將耗電獨顯關閉。在這麼一搞後,筆電的續航力從2小時回復到3小時以上。
2. 安裝EnvyControl#
在電腦 安裝專有Nvidia驅動
用
lscpi | grep NVIDIA
和nvidia-smi
指令檢查,應會看到系統目前已載入Nvidia驅動。參考 Github說明安裝EnvyControl,比如Ubuntu就下載deb檔,再用APT安裝
sudo apt install ./python3-envycontrol_*.deb
- 另外,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
模式了。
- 使用指令啟用Integrated模式,重開機
sudo envycontrol -s integrated
重開機後,執行
lscpi | grep NVIDIA
和nvidia-smi
指令會看到Nvidia獨顯從PCI列表消失了。欲重新啟用Nvidia獨顯,執行以下指令重開機。
sudo envycontrol --reset
4. 測試耗電量對比#
測試有開獨顯 vs 關掉獨顯的對比。開機後使用圖中這些應用程式一小時,再對比耗電量。
開著獨顯,使用1小時,電量下降至65%。
關掉獨顯,使用1小時,電量下降至73%。
對比可以發現儘管差距不大,耗電量還是有差的,包含KDE預估的電池可用時間。儘管KDE預估的電池可用時間會依照目前CPU耗電量而浮動(例如有時會突增至20W又降下來),但是關掉獨顯的電量預估時間就是比開著獨顯多出一小時。
上圖也可以看到Power Profile Daemon其實還有「省電」模式的電源設定檔可選,這樣續航力搞不好就半天了。但是你知道的,選這個強行降頻就是卡爆,所以我大部分只使用「平衡」模式。