快轉到主要內容

Linux筆電很耗電?使用這些省電技巧提昇續航

· 民國113年甲辰年
·
切換繁體/簡體
分類 Linux系統 Linux使用技巧
標籤 GNOME KDE Plasma Nvidia Systemd Linux Kernel
目錄

Fix battery life and draining issue on Linux laptops or tablets.

這篇文章Ivon要來討論一個很複雜的問題:如何改善Linux筆電的耗電?

同樣的一台電腦,Linux比Windows耗電並不奇怪,因為製造商可能沒考慮給Linux提供驅動程式,導致使用者的使用體驗不佳,即使Linux的系統服務比Windows要少,也可能因為硬體驅動問題而導致系統浪費電力。而電腦型號太多了,Linux核心無法全部涵蓋驅動程式。所以在安裝Linux系統之後,使用者要針對手上電腦的型號做一些調整才能改善耗電問題。

之所以講複雜是因為電腦廠牌太多,而Linux發行版也增加了更多變數,這篇文章Ivon只是總括性的探討可能的解決方式,分享一些我實際操作下來得出的省電訣竅。

使用PowerTop查看Linux系統的耗電量大戶

如果要改善Linux筆電的耗電量,請嘗試以下步驟:

  1. 確認電池健康度
  2. 檢查暫停模式
  3. 檢查電腦風扇是否有正常運作
  4. 檢查獨立顯卡是否耗電
  5. 檢查電源管理程式
  6. 查看耗電的程式
  7. 選取特製的Linux核心或者發行版

以上的步驟在各大Linux發行版(Ubuntu、Arch Linux、Fedora、openSUSE、Gentoo)都能使用。

請注意,本文討論內容適用x86架構的Linux,即搭載Intel或AMD CPU的筆電。ARM架構的Linux筆電可能不適用。

1. 確認電池健康度
#

使用upower指令確認電池健康度,看看是不是電腦用太久了電池老化。

老了就該換電池了。

順帶一提,如果你想延長電池使用壽命,也可以透過upower設定最大充電上限(thresholds)。

2. 檢查暫停模式
#

確認暫停模式是否正常,避免電腦進入待機模式還在耗電。

目前Linux 6.0的核心有兩種待機模式:暫停(Suspend)和休眠(Hibernate),原理略有不同。若是用Systmed指令控制的話,則分為suspend、hibernate、hybrid-sleep三種。

在GNOME桌面的關機選單可以看到暫停模式,背後執行的就是Suspend,效果等同執行sudo systemctl suspend指令。當你關上筆電螢幕的時候也會進入暫停模式。

按下該按鈕之後,Linux應該會進入Suspend模式,這時網路會斷掉,電源鍵可能會一閃一閃的。之後可以用鍵盤喚醒。如果電腦無法從Suspend模式喚醒,出現黑螢幕情況,請嘗試按CTRL+ALT+F1,進入tty,再參考Linux Kernel Documentation了解怎麼debug。

最簡單的方式是換個Linux核心,或者切換到較為穩定的Linux發行版,例如Debian和Ubuntu。

3. 檢查風扇驅動
#

風扇會影響筆電散熱,散熱不佳會導致耗電。

試試跑壓力測試程式stress_ng,看看風扇有沒有轉起來。

安裝lm_sensors能夠看到硬體溫度和風扇轉速。

sudo apt install lm_sensors

sudo sensors

但lm_sensors並不適用於所有筆電,有些品牌需要特殊的驅動程式才能啟動風扇,很難一概而論,像MSI筆電的風扇就需要msi-ec核心模組;ASUS需要asus-nb-wmi等等。

遇到風扇無法驅動的問題,請用筆電品牌下去搜尋,看看Linux社群有沒有人維護驅動程式。

4. 檢查獨立顯卡耗電
#

如果筆電搭載Nvidia獨立顯示卡,會導致額外耗電。

Nvidia獨立顯示卡採用預設的nouvea開源驅動可能會有效能問題,得裝Nvidia閉源驅動。可有時候裝了Nvidia閉源驅動反而會更耗電,這時要使用Envy Control或者Optimus Manager,在不用獨顯的時候將其關閉,看是要讓它進入暫停模式,還是乾脆切斷電源。

5. 檢查電源管理程式
#

Linux通用的電源管理程式有「Power Profiles Daemon」、「TuneD」、「TLP」。有些廠商還會研發自家的電源管理程式,例如System76的System76 Power和Dell的Dell Power Manager。

電源管理程式之間會互相衝突,所以不要同時裝。通常Linux發行版的套件管理器會將各種電源管理程式標記為衝突,要使用這個就必須刪除另外一個。

Power Profiles Daemon,簡稱PPD,是GNOME和KDE用於調節耗電量的服務。只有三個檔位:省電、平衡、效能,除此之外沒有能夠調整的。

這個程式可以透過以下指令安裝:

sudo apt install power-profiles-daemon

sudo systemctl enable power-profiles-daemon

重開機,然後在桌面環境的電源選單,就會有電源模式選項。通常用「平衡」就夠了,「省電」模式會導致電腦變很卡。


另外,在部份較新的Linux發行版,Power Profiles Daemon已經換成了TuneD,安裝過程:

sudo apt install tuned
sudo systemctl enable tuned

TuneD效果類似Power Profiles Daemon,能夠在GNOME和KDE的電源界面調節耗電量。雖然表面上只有三個檔位,但實際上TuneD的設定檔有很多選項可以調整。


如果需要更細緻的選項與,請裝TLP,它可以依照使用情境自動調節,客製選項很多,你甚至可以去調Linux核心的cpu governor。需要圖形界面請裝TLP UI

但是我個人覺得TLP的設定有點太複雜了。

6. 查看耗電的程式
#

使用powertop看看哪些程式在耗電,比如瀏覽器播放影片要是沒有啟用硬體解碼,那就會額外耗電。

也可以搭配查看CPU使用量的htop和GPU使用量的nvtop使用,了解哪些程式在吃系統資源。

使用以下指令安裝:

sudo apt install powertop

查看目前正在耗電的程式:

sudo powertop

輸出HTML格式的報表:

sudo powertop --html=powerreport.html

你可以啟動PowerTop服務,按照該工具給出的建議,透過powertop2tuned傳給tuned自動調整耗電量。

sudo systemctl enable powertop

7. 選取特製的Linux核心或者發行版
#

我這裡沒有叫你換系統,只是換核心罷了。

雖然x86的相容性很廣,但有些硬體就是需要特製核心才能真正達到省電效果。

比如Surface Go系列,直接裝Ubuntu使用最新版Linux核心可能會導致驅動出問題,改裝專門的linux-surface核心,那才能確實利用所有的硬體資源。

大部分Linux發行版應該都允許你更換核心,通常就是裝一個套件解決的事情。當然如果你嫌麻煩,那最快的方式就是重裝系統。

參考資料
#

相關文章


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

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

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