升级到 Ubuntu 21.04 后,TLP 配置不会在系统启动时应用。重新安装软件包没有帮助。
检查 TLP systemd 单元tlp.service
确认了该问题。
$ systemctl status tlp.service
● tlp.service - TLP system startup/shutdown
Loaded: loaded (/lib/systemd/system/tlp.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Docs: https://linrunner.de/tlp
答案1
新的 power-profiles-daemon 包是问题所在(看TLP/问题/564)。此软件包默认安装在 Ubuntu 21.04+ 和其他几个发行版中。
解释
新的 power-profiles-daemon 软件包附带一个 systemd 单元。该单元声明与发生power-profiles-daemon.service
冲突,导致被有效禁用。tlp.service
tlp.service
/lib/systemd/system/power-profiles-daemon.service(注意Conflicts=
指令)
[Unit]
Description=Power Profiles daemon
Conflicts=tuned.service tlp.service auto-cpufreq.service
Before=multi-user.target display-manager.target
...
如果一个单元Conflicts=
对另一个单元有指令,则启动前者将停止后者,反之亦然。并且由于tlp.service
没有Conflicts=
在 上声明指令power-profiles-daemon.service
。无论单元的激活顺序如何,它始终是被禁用的那个。
解决方案
- 您可以使用以下方式禁用 power-profiles-daemon.service 单元
sudo systemctl disable power-profiles-daemon.service
;或者 - 使用 从系统中删除 power-profiles-daemon 包
sudo apt purge power-profiles-daemon
。 - 或者,您可以手动覆盖
tlp.service
配置sudo systemctl edit tlp.service
并设置Conflicts=
指令Before=
。
[Unit]
Conflicts=power-profiles-daemon.service
Before=power-profiles-daemon.service