功耗控制

⚡️ 千山鸟飞绝,万径人踪灭

针对散热不好的设备或者续航能力不佳的笔记本,功耗控制显得非常必要

🔖 这一节将会讨论:

目录

使用 TLP 延长电池寿命及续航

🔗 相关链接:

如有需要可参阅 TLP 官方文档open in new windowarchwiki 相关内容open in new window

多年来,Linux 在电池优化方面取得了很大进步,但仍然有一些可选步骤改善笔记本电脑的电池寿命并且延长续航。

TLP 作为一款自由开源的高级电源管理工具提供开箱即用的默认配置。同时也可以高度定制化,以满足特定需求。

安装与配置

  1. 安装 TLPopen in new windowcommunity / aurtlp-rdwopen in new windowcommunity / aur 以及可选安装图形界面 TLPUIopen in new windowaur

    sudo pacman -S tlp tlp-rdw
    
    yay -S tlp-git tlp-rdw-git
    
    yay -S tlpui
    
    yay -S tlpui-git
    

    ℹ️ 提示

    另外请参阅 Smartmontools 安装 Smartmontools 以显示 tlp-stat 中的 S.M.A.R.T. 数据。

    ℹ️ 提示

    若是 ThinkPad 机型请查阅 TLP 官方安装说明open in new window

  2. 为了防止 Btrfs 文件系统损坏,需要修改 /etc/tlp.conf 配置文件:

    sudo vim /etc/tlp.conf
    

    将对应行改为如下内容:

    SATA_LINKPWR_ON_BAT=max_performance
    

    tlp-1

    ☢️ 警告

    若使用 Btrfs 文件系统请务必进行配置,否则可能造成数据丢失。

    🔗 相关链接

    如有需要可参阅 archwiki 相关内容open in new window

  3. 相关服务设置:

    sudo systemctl enable tlp.service
    sudo systemctl enable NetworkManager-dispatcher.service
    sudo systemctl mask systemd-rfkill.service # 屏蔽以下服务以避免冲突,确保 TLP 无线设备的开关选项可以正确运行
    sudo systemctl mask systemd-rfkill.socket
    
  4. 安装后,TLP 将在开机时自动启动。为了避免第一次重启系统,可以使用以下命令手动启动:

    sudo tlp start
    

    ℹ️ 提示

    还可以使用此命令在编辑配置后应用更改。

    所有 TLP 设置都存储在 /etc/tlp.conf 中。一般情况下默认配置即可满足需求。

ℹ️ 提示

若安装了 TLPUI 可在图形界面进行相关配置。语言可在菜单栏 Language 处更改:

tlpui

使用 TLP 显示相关系统信息

通过 TLP 相关命令也可查看系统信息:

sudo tlp-stat -b # 显示电池信息
sudo tlp-stat -d # 显示磁盘信息
sudo tlp-stat -e # 显示 PCI 设备信息
sudo tlp-stat -g # 显示 GPU 信息
sudo tlp-stat -p # 显示 CPU 信息
tlp-stat -s # 显示系统数据信息 / 验证 TLP 服务运行状况

tlp-2

电压下探

🔗 相关链接:

如有需要可参阅 archWiki 相关内容open in new window

对处理器的电压进行最大限度的下探,在挖掘 CPU 体质的极限的同时,起到既能降低发热,又能最大限度保持性能的效果。

如果正常操作,降低电压一般不会损害 CPU,一般建议从 50 毫伏进行尝试,每次降压尝试多增加 10 毫伏。只要确保在降低电压前,系统中任务均被正确保存即可。

ℹ️ 提示

以下方法仅适用于 Intel 四代酷睿 ™ Haswell 及更新 CPU。有关 AMD CPU 和 Intel 四代酷睿 ™ Haswell 之前的 CPU 请参考 archWiki 相关内容open in new window

使用 intel-undervoltopen in new windowcommunity / aur 即可降压。

☢️ 警告

intel-undervolt 可能会损坏您的硬件,因为它使用了一些逆向工程得到的方法。

使用它的风险自负。

  1. 安装 intel-undervolt

    sudo pacman -S intel-undervolt
    
    yay -S intel-undervolt-git
    

    intel-undervolt-1

  2. 编辑 intel-undervolt.conf 配置文件:

    sudo vim /etc/intel-undervolt.conf
    

    对于其配置文件中降压部分的五个参数含义如下:

    • 0 —— CPU 核心电压
    • 1 —— CPU 核芯显卡电压
    • 2 —— CPU 缓存电压
    • 3 —— 系统周边电压,与内存等设备相关
    • 4 —— 模拟 I/O 电压

    intel-undervolt-2

    一般来说只调整 0(CPU 核心电压)和 2(CPU 缓存电压)两项电压即可。

  3. 保存并退出 vim,使用以下命令应用配置:

    sudo intel-undervolt apply # 应用配置
    sudo intel-undervolt read # 复查是否成功降压
    
  4. 可以尝试使用 s-tuiopen in new window 这个工具进行烤机测试,同时观察温度、频率、TDP 的数据。

  5. 在调整到一个合适的降压配置后,开启 intel-undervolt.service 服务即可:

    sudo systemctl enable --now intel-undervolt
    

降低功率墙

除了电压的下探,同时也可以尝试对处理器的功率墙(TDP)做出降低的限制。比如考虑这种情况 —— 在 CPU 满睿频时,其实不需要默认的那么多功耗来维持,也许在默认功耗的基础上减几瓦,也能维持满睿频,这样就又可以进一步降低温度。对功率墙进行限制不同于对电压进行下探,若限制功率墙的参数较低,这会不可避免的损失较多的性能,但是在散热过差的设备上这也是一个好办法。

对于功率墙的调整,有些主板在 BIOS 中提供了设置项可以直接调整。对于没有设置项的主板,有的主板是锁定了瞬时和长时功率墙,这种情况就无法调整功率墙了。有的主板 BIOS 随没有提供功率墙调整项,但依旧可以通过命令行设置。

通过以下的命令可以查看主板是否可以调整功率墙:

grep . /sys/class/powercap/intel-rapl/intel-rapl:0/* 2> /dev/null

如果在输出中看到了如下的 enable 值为 1,即可以调整。第一行的数字代表现有的功率墙限制:

/sys/class/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw:100000000
/sys/class/powercap/intel-rapl/intel-rapl:0/enabled:1

 

具体的调整步骤参考 askubuntuopen in new window

ℹ️ 提示

此外,intel-undervolt 也可直接进行功率墙限制。

如看到 package power limit is locked,则说明这台电脑不可更改功率墙。