升级到 Ubuntu 21.04+ 后,TLP 未在系统启动时运行

升级到 Ubuntu 21.04+ 后,TLP 未在系统启动时运行

升级到 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.servicetlp.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

相关内容