如何在 Linux 中使用 TLP 优化笔记本电脑的电池寿命

有很多工具可以在笔记本电脑中省电和延长电池寿命。 我们已经看过两个工具,即 笔记本电脑模式工具动力顶 这提高了 Linux 笔记本电脑的电池性能。 今天我们将讨论另一个名为的笔记本电脑电源管理实用程序 TLP. TLP 是一个功能丰富的命令行工具,用于优化 Linux 中的笔记本电脑电池寿命。

TLP 需要零配置。 TLP 的默认设置已针对节省 Linux 笔记本电脑的电池电量进行了优化。 它开箱即用地实施了 Powertop 的建议。 所以你只需在你的 Linux 笔记本电脑上安装 TLP 就可以了。 TLP 负责一切。 尽管 TLP 的默认设置足以提供最佳电池寿命,但它可以高度定制以满足特定要求。

在 Linux 中安装 TLP

TLP 被打包用于许多 Linux 发行版,包括 Arch Linux、Debian、 Fedora、Gentoo、openSUSE 和 Ubuntu。

将 TLP 安装在 Arch Linux 及其变体,运行:

$ sudo pacman -S tlp tlp-rdw

如果您使用的是 Thinkpad,您将安装以下任一软件包。 如果您不确切知道要安装哪个软件包,请运行 tlp-stat -b 命令为 sudo 或者 root 用户。 它将指导您安装哪个软件包。

  • acpi_call – 外部内核模块为较新的 ThinkPad(X220/T420 及更高版本)提供电池重新校准。
  • tp_smapi – 提供电池充电阈值、重新校准和特定的外部内核模块 tlp-stat -b 旧 ThinkPad 的输出。
  • tp_smapi-lts – 安装 LTS 内核时使用而不是 tp_smapi。

在 Debian 上:

$ sudo apt install tlp tlp-rdw

如果您使用的是任何 Thinkpad 型号的笔记本电脑,您可能需要安装以下任一软件包。 的输出 tlp-stat -b 将指导您安装哪个软件包。

  • acpi-call-dkms – 外部内核模块为较新的 ThinkPad(X220/T420 及更高版本)提供电池重新校准
  • tp-smapi-dkms – 提供电池充电阈值、重新校准和特定的外部内核模块 tlp-stat -b 旧 ThinkPad 的输出

在 Fedora:

$ sudo dnf install tlp tlp-rdw

如果您使用任何 Thinkpad 型号的笔记本电脑,请安装以下任一软件包。 以下包的依赖项在默认存储库中不可用。 因此,首先启用 RPM Fusion 存储库 Fedora 然后安装相应的软件包。 如果您不知道要安装哪个软件包,请运行 tlp-stat -b 命令为 sudo 或者 root 用户。

  • kernel-devel – 下面的 akmod 包需要
  • akmod-acpi_call – 外部内核模块为较新的 ThinkPad(X220/T420 及更高版本)提供电池重新校准
  • akmod-tp_smapi – 提供电池充电阈值、重新校准和特定的外部内核模块 tlp-stat -b 旧 ThinkPad 的输出

在 openSUSE 上:

$ sudo zypper install tlp tlp-rdw

对于 Thinkpad,安装相应的软件包。

  • acpi_call – 为较新的 ThinkPad(X220/T420 及更高版本)提供电池重新校准的外部内核模块 – 下载 acpi_call
  • tp_smapi_kmp – 提供电池充电阈值、重新校准和特定的外部内核模块 tlp-stat -b 旧 ThinkPad 的输出 – 下载 tp-smapi

在 Ubuntu 上:

要在 Ubuntu 及其衍生产品中安装 TLP,请添加 TLP 官方 PPA:

$ sudo add-apt-repository ppa:linrunner/tlp

并使用命令安装 TLP:

$ sudo apt install tlp tlp-rdw

对于 Thinkpad 笔记本电脑,安装相应的软件包:

  • acpi-call-dkms – 外部内核模块为较新的 ThinkPad(X220/T420 及更高版本)提供电池重新校准
  • tp-smapi-dkms – 提供电池充电阈值、重新校准和特定的外部内核模块 tlp-stat -b 旧 ThinkPad 的输出

同样,如果您不知道要安装哪个软件包,请运行 tlp-stat -b 命令为 sudo 或者 root.

启用并启动 TLP 服务

在 Linux 机器上安装 TLP 后,确保在启动时启用它并使用以下命令启动服务:

$ sudo systemctl enable tlp.service
$ sudo systemctl start tlp.service

您还应该屏蔽以下服务以避免冲突并确保 TLP 的无线电设备切换选项的正确操作:

$ sudo systemctl mask systemd-rfkill.service
$ sudo systemctl mask systemd-rfkill.socket

在 Linux 中使用 TLP 优化笔记本电脑的电池寿命

就像我已经提到的,TLP 不需要配置。 它开箱即用! 默认设置经过优化,可以延长笔记本电脑的电池寿命。 您可以在位于 TLP 默认配置文件中查看默认设置 /etc/tlp.conf.

要查看当前 TLP 配置、系统信息、活动节能设置和电池数据,请运行:

$ sudo tlp-stat

样本输出:

--- TLP 1.3.1 --------------------------------------------
 +++ Configured Settings:
 defaults.conf L0004: TLP_ENABLE="1"
 defaults.conf L0005: TLP_PERSISTENT_DEFAULT="0"
 defaults.conf L0006: DISK_IDLE_SECS_ON_AC="0"
 defaults.conf L0007: DISK_IDLE_SECS_ON_BAT="2"
 defaults.conf L0008: MAX_LOST_WORK_SECS_ON_AC="15"
 defaults.conf L0009: MAX_LOST_WORK_SECS_ON_BAT="60"
 defaults.conf L0010: CPU_ENERGY_PERF_POLICY_ON_AC="balance_performance"
 defaults.conf L0011: CPU_ENERGY_PERF_POLICY_ON_BAT="balance_power"
 defaults.conf L0012: SCHED_POWERSAVE_ON_AC="0"
 defaults.conf L0013: SCHED_POWERSAVE_ON_BAT="1"
 defaults.conf L0014: NMI_WATCHDOG="0"
 defaults.conf L0015: DISK_DEVICES="nvme0n1 sda"
 defaults.conf L0016: DISK_APM_LEVEL_ON_AC="254 254"
 defaults.conf L0017: DISK_APM_LEVEL_ON_BAT="128 128"
 defaults.conf L0018: DISK_IOSCHED="keep keep"
 defaults.conf L0019: SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
 defaults.conf L0020: SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"
 defaults.conf L0021: AHCI_RUNTIME_PM_TIMEOUT="15"
 defaults.conf L0022: PCIE_ASPM_ON_AC="default"
 defaults.conf L0023: PCIE_ASPM_ON_BAT="default"
 defaults.conf L0024: RADEON_POWER_PROFILE_ON_AC="default"
 defaults.conf L0025: RADEON_POWER_PROFILE_ON_BAT="default"
 defaults.conf L0026: RADEON_DPM_PERF_LEVEL_ON_AC="auto"
 defaults.conf L0027: RADEON_DPM_PERF_LEVEL_ON_BAT="auto"
 defaults.conf L0028: WIFI_PWR_ON_AC="off"
 defaults.conf L0029: WIFI_PWR_ON_BAT="on"
 defaults.conf L0030: WOL_DISABLE="Y"
 defaults.conf L0031: SOUND_POWER_SAVE_ON_AC="0"
 defaults.conf L0032: SOUND_POWER_SAVE_ON_BAT="1"
 defaults.conf L0033: SOUND_POWER_SAVE_CONTROLLER="Y"
 defaults.conf L0034: BAY_POWEROFF_ON_AC="0"
 defaults.conf L0035: BAY_POWEROFF_ON_BAT="0"
 defaults.conf L0036: BAY_DEVICE="sr0"
 defaults.conf L0037: RUNTIME_PM_ON_AC="on"
 defaults.conf L0038: RUNTIME_PM_ON_BAT="auto"
 defaults.conf L0039: RUNTIME_PM_DRIVER_BLACKLIST="amdgpu mei_me nouveau nvidia pcieport radeon"
/etc/tlp.conf L0323: USB_AUTOSUSPEND="0"
 defaults.conf L0041: USB_BLACKLIST_BTUSB="0"
 defaults.conf L0042: USB_BLACKLIST_PHONE="0"
 defaults.conf L0043: USB_BLACKLIST_PRINTER="1"
 defaults.conf L0044: USB_BLACKLIST_WWAN="0"
 defaults.conf L0045: USB_AUTOSUSPEND_DISABLE_ON_SHUTDOWN="0"
 defaults.conf L0046: RESTORE_DEVICE_STATE_ON_STARTUP="0"
 defaults.conf L0047: RESTORE_THRESHOLDS_ON_BAT="0"
 defaults.conf L0048: NATACPI_ENABLE="1"
 defaults.conf L0049: TPACPI_ENABLE="1"
 defaults.conf L0050: TPSMAPI_ENABLE="1"
 +++ System Info
 System         = Dell Inc. Not Specified Inspiron N5050
 BIOS           = A05
 Release        = "Fedora release 34 (Thirty Four)"
 Kernel         = 5.11.17-300.fc34.x86_64 #1 SMP Wed Apr 28 14:21:28 UTC 2021 x86_64
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-5.11.17-300.fc34.x86_64 root=UUID=2dbf3f8b-de51-413e-8872-5fb61c06cb8f ro rootflags=subvol=root rhgb quiet
 Init system    = systemd 
 Boot mode      = BIOS (CSM, Legacy)
 SELinux status = enabled (enforcing)
 +++ TLP Status
 State          = enabled
 RDW state      = enabled
 Last run       = 02:46:11 PM IST,     53 sec(s) ago
 Mode           = battery
 Power source   = battery
[...]
查看当前 TLP 配置设置、省电设置和电池数据

禁用 USB 自动挂起

当 TLP 以默认配置启动时,当您的笔记本电脑使用电池运行时,一些 USB 设备将自动挂起以节省电量。 要禁用 USB 自动挂起,请编辑 /etc/tlp.conf 文件:

$ sudo nano /etc/tlp.conf

找到以下行并将其值设置为 0.

USB_AUTOSUSPEND=0

您还可以从 USB 自动挂起中排除特定设备(用空格分隔)。 首先,使用 lsusb 获取ID的命令。 然后,使用空格分隔的设备 ID 如下所示

USB_BLACKLIST="8078:0014 065d:8023"

Save 和 close 通过按下文件 CTRL+O 其次是 CTRL+X.

强制电池 (BAT) 配置

当无法检测到电源时,AC 的设置将用于台式机和嵌入式硬件等设备。 如果您想在这些设备上使用 TLP 时强制使用电池 (BAT) 设置以启用更多省电功能,请编辑 /etc/tlp.conf 文件:

$ sudo nano /etc/tlp.conf

找到以下行并设置它们的值,如下所示:

# Operation mode when no power supply can be detected: AC, BAT.
TLP_DEFAULT_MODE=BAT

# Operation mode select: 0=depend on power source, 1=always use TLP_DEFAULT_MODE
TLP_PERSISTENT_DEFAULT=1

有关更多详细信息,请查看 TLP 网站及其最后给出的 GitHub 页面。

TLP 是您应该在 Linux 笔记本电脑上安装的推荐应用程序之一。 还值得一提的是,您不应同时使用多个省电实用程序。 TLP 的设置会被其他工具设置覆盖,反之亦然,因此您可能无法获得最佳结果。 始终建议仅使用 TLP 并删除其他类似工具。

资源:

相关阅读:

  • 在 Linux 中使用 Auto-cpufreq 自动优化 CPU 速度和功率
  • CPU 电源管理器 – 在 Linux 中控制和管理 CPU 频率
  • 如何在 Linux 的终端中检查笔记本电脑的电池状态和电量

穆罕默德哈桑的特色图片来自 关注.