快轉到主要內容

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

分類   Linux系統 Linux好用軟體
標籤   GNOME KDE Plasma Nvidia Systemd Linux Kernel
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

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發行版應該都允許你更換核心,通常就是裝一個套件解決的事情。當然如果你嫌麻煩,那最快的方式就是重裝系統。

參考資料
#

相關文章

Linux觸控螢幕使用虛擬鍵盤打字 (X11 / Wayland)
分類   Linux系統 Linux好用軟體
標籤   Linux GNOME KDE Plasma
用UPower查看Linux筆電的電池健康度
分類   Linux系統 Linux好用軟體
標籤   Freedesktop Specifications GNOME KDE Plasma
Android手機傳檔案到Linux電腦,MTP與ADB使用教學
分類   Linux系統 Linux好用軟體
標籤   Android Linux Android Debug Bridge GNOME KDE Plasma

留言板

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

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

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