进一步优化deepin(深度)操作系统的续航和性能——TLP电源管理来了!
上一篇关于电源配置优化(关于 deepin V23 的发热、续航问题,我们做了电源配置优化)之后,我们一直在探索如何进一步优化 deepin(深度)操作系统的续航和性能表现,今天它来了:
TLP 是适用于 Linux 的功能丰富的命令行实用程序,无需深入研究技术细节即可节省笔记本电脑电池电量。比如 TLP 脚本是被动唤醒,可以以较小的开销完成电源管理相关内容。而且 TLP 文档支持非常完善,所以可以方便用户自行调整相关配置。
工作原理
TLP 所做的是调整影响功耗的内核设置,内核态的配置文件存储在 RAM 中,所以并不具备持久性。TLP 将配置存储在用户态中,在内核启动时对其进行配置; TLP 处理的大多数内核设置都作为 sysfs 节点导出到用户空间,即 /sys/ 下的文件。tlp-stat 的输出将显示路径; TLP 提供两组独立的设置,称为配置文件,一组用于电池(BAT),另一组用于交流操作。这意味着 TLP 在每次电源更改时都必须应用适当的配置文件(可以据此实现 AC/ BAT 切换电源调度状态)。
TLP 触发事件(信号)
充电器插入(交流供电):应用 AC 配置文件; 充电器已拔下(电池供电):应用 BAT 配置文件; 已插入 USB 设备:激活设备的 USB 自动挂起模式(可以在配置文件设置例外或拒绝连接); 系统启动(boot):应用于当前电源 AC/BAT 相对应的设置配置文件。应用充电阈值并根据个人设置切换蓝牙、Wi-Fi 和 WWAN 设备(在默认配置中禁用); 系统关机 (power off):保存或切换蓝牙、Wi-Fi 和 WWAN 设备状态,并根据个人设置禁用 USB 自动挂起(在默认配置中禁用); 系统重启:相当于关机再启动; 系统挂起到 ACPI 睡眠状态 S0ix(空闲待机)、S3(挂起到 RAM)或 S4(挂起到磁盘):保存蓝牙、Wi-Fi 和 WWAN 设备状态,并根据个人设置关闭可移动光盘驱动器的电源(在默认配置中禁用); 系统从 ACPI 睡眠状态 S0ix(空闲待机)、S3(挂起到 RAM)或 S4(挂起到磁盘)恢复:应用于当前电源 AC/BAT 相对应的设置配置文件。恢复充电阈值以及蓝牙、Wi-Fi 和 WWAN 设备状态,具体取决于个人设置(在默认配置中禁用); LAN、Wi-Fi、WWAN 连接/断开连接或笔记本电脑插接/未插接:根据个人设置启用或禁用内置蓝牙、Wi-Fi 和 WWAN 设备(在默认配置中禁用)。
除了上述事件之外,TLP 不会对设置进行动态或自适应更改。特别是 TLP 绝不会因 CPU 负载、电池电量或其他原因而调整设置(如果需要实现这一部分,则可以通过添加一个信号的方式来实现)。
安装
sudo apt install tlp
使用
1、启动
2、状态 tlp-stat -s TLP是 bash 脚本,所以不存于 daemon 进程。
3、命令行
TLP sudo tlp bat 应用电池配置文件并进入手动模式,手动模式意味着对电源的更改将被忽略,直到下一次重新启动或发出 tlp start 以恢复自动模式。 sudo tlp ac 应用交流配置文件并进入手动模式。 sudo tlp usb 对所有的 USB 设备应用自动挂起。
sudo tlp setcharge [<START_CHARGE_THRESH> <STOP_CHARGE_THRESH>]
TLP-RDW sudo tlp-rdw [ enable | disable ] 启用或关闭无线电管理功能。
bluetooth [ on | off | toggle ]
nfc [ on | off | toggle ]
wifi [ on | off | toggle ]
wwan [ on | off | toggle ]
启用、禁用、切换或检查内置蓝牙、NFC、Wi-Fi 和 WWAN(3G/UMTS、4G/LTE 或 5G)无线电的状态,如果不带参数则为当前硬件状态(硬件需要支持 rfkill)。
TLP-STAT sudo tlp-stat 查看 TLP 配置信息,系统信息和内核省电设置以及电池数据。 sudo tlp-stat [-b /--battery] 查看电池信息,部分电池加-v参数可以查看电压。 sudo tlp-stat [-c /--config] 查看配置信息。 sudo tlp-stat --cdiff 查看默认配置和用户配置之间的差异。 sudo tlp-stat [-d /--disk] 查看硬盘配置信息。 sudo tlp-stat [-e/ --pcie] 查看 Pcie 配置信息。
配置
TLP 最重要的就是其配置文件,这是 TLP 是否节电的关键。TLP 使用两个根据电源自动应用的设置配置文件:
以 _AC 结尾的参数在连接交流电源的时候生效
以 _BAT 结尾的参数在使用电池的时候有效
既不以 _AC 结尾也不以 _BAT 结尾的参数适用于这两个配置文件
1、配置文件
Intrinsic defaults 固有默认值(这个配置为 TLP 自带,不可被更改); /etc/tlp.d/*.conf:插入式自定义片段,按词法(字母顺序)顺序读取,不过建议可以使用一般配置命名方法(00_xxxx.conf); /etc/tlp.d/*.conf:用户配置。
3、参数语法
参数行
PARAMETER=value
如果 value 包含空格,则需要使用双引号。
key="111 1111 1111"
注释行
禁用功能
使用+=追加配置
使用 root 权限编辑配置文件,在保存更改后可以使用重启,拔插 AC 电源或者使用sudo tlp start 命令激活配置。
配置详解
1、基础操作
这些参数用于设置笔记本电脑主/内部电池(BAT0)和辅助电池(BAT1)的充电阈值。启动充电阈值表示在连接充电器时,电池充电水平低于该值时将开始充电。停止充电阈值表示在充电器连接时,电池充电水平超过该值时将停止充电。这些阈值始终具有较低的可用电池容量,因此默认情况下禁用这些设置,并且必须通过删除前导 # 来显式启用这些设置。
4、光驱
5、硬盘
注释:DISK_IOSCHED 如果使用是 NVME 设备时,最好使用无 IO 调度程序来减少 CPU 开销(none和noop)。
6、文件系统
8、kernel
这些参数允许用户配置 Wi-Fi 的电源保存模式和控制 Wake-on-LAN(LAN唤醒)功能。
10、平台
11、处理器
这些参数允许用户配置 CPU 的性能和功耗特性,包括缩放驱动程序操作模式、调节器、频率范围、能耗/性能策略、P 状态范围、提升功能以及 HWP 动态提升功能。部分电脑的 BIOS 会干预 PState,所以需要检查 CPU 是否支持。
这些参数允许用户配置在系统启动、关闭或更改电源状态时如何处理内置的蓝牙、Wi-Fi 和 WWAN 设备。可通过设置禁用或启用这些设备,以及在何种条件下执行这些操作。
13、无线配置向导(自动化配置)
这些参数允许用户配置在特定事件触发时如何处理内置的蓝牙、Wi-Fi 和 WWAN 设备。用户可以根据 LAN、Wi-Fi 或 WWAN 的连接状态、对接或取消对接等事件来启用或禁用这些设备。
14、PCIE 电源配置
这些参数允许用户配置与 PCIe 设备相关的运行时电源管理和 ASPM 等功能。用户可以根据电源来源、设备地址、驱动程序等来调整这些设置,以实现更好的功耗管理(建议不要对 NVIDIA 驱动进行调整,可能会引发意外)。
15、USB
16、Trace Mode
TLP_DEBUG="arg bat disk lock nm path pm ps rf run sysfs udev usb"
我们对于系统的优化不仅于此,现阶段 TLP 的配置策略仅对于部分有能力的用户公开,后续经过充分的测试和调优之后,会提供几份默认的配置给普通用户使用。同时,未来还会将这些配置文件 GUI 化,集成于深度定制项目中,为用户提供更为方便直观的操作体验。
从这一阶段对于电源优化的探索可以看出,deepin(深度)操作系统的电源管理方案优化不仅是为了解决用户反馈的问题,更是一种对用户需求的回应和尊重。未来,deepin(深度)操作系统将继续秉持用户至上的原则,不断提升系统的性能和用户体验,为广大用户提供更加优秀的开源操作系统产品。
内容来源:longlong
往期精选 | Selection in the past