TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工具

多年来,Linux 在电池优化方面取得了很大进步,但我们仍然需要做一些必要的事情来改善 Linux 中笔记本电脑的电池寿命。

TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工具

笔记本电池是针对 Windows 操作系统进行了高度优化的,当我在笔记本电脑中使用 Windows 操作系统时,我已经意识到这一点,但对于 Linux 来说却不一样。

多年来,Linux 在电池优化方面取得了很大进步,但我们仍然需要做一些必要的事情来改善 Linux 中笔记本电脑的电池寿命。

当我考虑延长电池寿命时,我没有多少选择,但我觉得 TLP 对我来说是一个更好的解决方案,所以我会继续使用它。

在本教程中,我们将详细讨论 TLP 以延长电池寿命。

我们之前在我们的网站上写过三篇关于 Linux 笔记本电池节电工具 的文章:PowerTOP电池充电状态

TLP

TLP 是一款自由开源的高级电源管理工具,可在不进行任何配置更改的情况下延长电池寿命。

由于它的默认配置已针对电池寿命进行了优化,因此你可能只需要安装,然后就忘记它吧。

此外,它可以高度定制化,以满足你的特定要求。TLP 是一个具有自动后台任务的纯命令行工具。它不包含GUI。

TLP 适用于各种品牌的笔记本电脑。设置电池充电阈值仅适用于 IBM/Lenovo ThinkPad。

所有 TLP 设置都存储在 /etc/default/tlp 中。其默认配置提供了开箱即用的优化的节能设置。

以下 TLP 设置可用于自定义,如果需要,你可以相应地进行必要的更改。

TLP 功能

  • 内核笔记本电脑模式和脏缓冲区超时
  • 处理器频率调整,包括 “turbo boost”/“turbo core”
  • 限制最大/最小的 P 状态以控制 CPU 的功耗
  • HWP 能源性能提示
  • 用于多核/超线程的功率感知进程调度程序
  • 处理器性能与节能策略(x86_energy_perf_policy
  • 硬盘高级电源管理级别(APM)和降速超时(按磁盘)
  • AHCI 链路电源管理(ALPM)与设备黑名单
  • PCIe 活动状态电源管理(PCIe ASPM)
  • PCI(e) 总线设备的运行时电源管理
  • Radeon 图形电源管理(KMS 和 DPM)
  • Wifi 省电模式
  • 关闭驱动器托架中的光盘驱动器
  • 音频省电模式
  • I/O 调度程序(按磁盘)
  • USB 自动暂停,支持设备黑名单/白名单(输入设备自动排除)
  • 在系统启动和关闭时启用或禁用集成的 wifi、蓝牙或 wwan 设备
  • 在系统启动时恢复无线电设备状态(从之前的关机时的状态)
  • 无线电设备向导:在网络连接/断开和停靠/取消停靠时切换无线电
  • 禁用 LAN 唤醒
  • 挂起/休眠后恢复集成的 WWAN 和蓝牙状态
  • 英特尔处理器的动态电源降低 —— 需要内核和 PHC-Patch 支持
  • 电池充电阈值 —— 仅限 ThinkPad
  • 重新校准电池 —— 仅限 ThinkPad

如何在 Linux 上安装 TLP

TLP 包在大多数发行版官方存储库中都可用,因此,使用发行版的 包管理器 来安装它。

对于 Fedora 系统,使用 DNF 命令 安装 TLP。


$ sudo dnf install tlp tlp-rdw

ThinkPad 需要一些附加软件包。


$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
$ sudo dnf install http://repo.linrunner.de/fedora/tlp/repos/releases/tlp-release.fc$(rpm -E %fedora).noarch.rpm
$ sudo dnf install akmod-tp_smapi akmod-acpi_call kernel-devel

安装 smartmontool 以显示 tlp-stat 中 S.M.A.R.T. 数据。


$ sudo dnf install smartmontools

对于 Debian/Ubuntu 系统,使用 APT-GET 命令APT 命令 安装 TLP。


$ sudo apt install tlp tlp-rdw

ThinkPad 需要一些附加软件包。


$ sudo apt-get install tp-smapi-dkms acpi-call-dkms

安装 smartmontool 以显示 tlp-stat 中 S.M.A.R.T. 数据。


$ sudo apt-get install smartmontools

当基于 Ubuntu 的系统的官方软件包过时时,请使用以下 PPA 存储库,该存储库提供最新版本。运行以下命令以使用 PPA 安装 TLP。


$ sudo add-apt-repository ppa:linrunner/tlp
$ sudo apt-get update
$ sudo apt-get install tlp

对于基于 Arch Linux 的系统,使用 Pacman 命令 安装 TLP。


$ sudo pacman -S tlp tlp-rdw

ThinkPad 需要一些附加软件包。


$ pacman -S tp_smapi acpi_call

安装 smartmontool 以显示 tlp-stat 中 S.M.A.R.T. 数据。


$ sudo pacman -S smartmontools

对于基于 Arch Linux 的系统,在启动时启用 TLP 和 TLP-Sleep 服务。


$ sudo systemctl enable tlp.service
$ sudo systemctl enable tlp-sleep.service

对于基于 Arch Linux 的系统,你还应该屏蔽以下服务以避免冲突,并确保 TLP 的无线电设备切换选项的正确操作。


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

对于 RHEL/CentOS 系统,使用 YUM 命令 安装 TLP。


$ sudo yum install tlp tlp-rdw

安装 smartmontool 以显示 tlp-stat 中 S.M.A.R.T. 数据。


$ sudo yum install smartmontools

对于 openSUSE Leap 系统,使用 Zypper 命令 安装 TLP。


$ sudo zypper install TLP

安装 smartmontool 以显示 tlp-stat 中 S.M.A.R.T. 数据。


$ sudo zypper install smartmontools

成功安装 TLP 后,使用以下命令启动服务。


$ systemctl start tlp.service

使用方法

显示电池信息


$ sudo tlp-stat -b

$ sudo tlp-stat --battery

“`
TLP 1.1 —

+++ Storage Devices
/dev/sda:
Model = WDC WD10SPCX-24HWST1
Firmware = 02.01A02
APM Level = 128
Status = active/idle
Scheduler = mq-deadline

Runtime PM: control = on, autosuspend_delay = (not available)

SMART info:
4 StartStopCount = 18787
5 ReallocatedSectorCt = 0
9 PowerOnHours = 606 [h]
12 PowerCycleCount = 1792
193 LoadCycleCount = 25775
194 Temperature_Celsius = 31 [°C]

+++ AHCI Link Power Management (ALPM)
/sys/class/scsihost/host0/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsi
host/host1/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsihost/host2/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsi
host/host3/linkpowermanagementpolicy = medpowerwithdipm

+++ AHCI Host Controller Runtime Power Management
/sys/bus/pci/devices/0000:00:17.0/ata1/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata2/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata3/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata4/power/control = on
“`

显示 PCI 设备信息


$ sudo tlp-stat -e

$ sudo tlp-stat --pcie

“`
$ sudo tlp-stat -e
or
$ sudo tlp-stat –pcie

TLP 1.1 —

+++ Intel Graphics
/sys/module/i915/parameters/enabledc = -1 (use per-chip default)
/sys/module/i915/parameters/enable
fbc = 1 (enabled)
/sys/module/i915/parameters/enable_psr = 0 (disabled)
/sys/module/i915/parameters/modeset = -1 (use per-chip default)
“`

显示处理器信息


$ sudo tlp-stat -p

$ sudo tlp-stat --processor

“`
TLP 1.1 —

+++ System Info
System = LENOVO Lenovo ideapad Y700-15ISK 80NV
BIOS = CDCN35WW
Release = “Manjaro Linux”
Kernel = 4.19.6-1-MANJARO #1 SMP PREEMPT Sat Dec 1 12:21:26 UTC 2018 x8664
/proc/cmdline = BOOT
IMAGE=/boot/vmlinuz-4.19-x86_64 root=UUID=69d9dd18-36be-4631-9ebb-78f05fe3217f rw quiet resume=UUID=a2092b92-af29-4760-8e68-7a201922573b
Init system = systemd
Boot mode = BIOS (CSM, Legacy)

+++ TLP Status
State = enabled
Last run = 11:04:00 IST, 596 sec(s) ago
Mode = battery
Power source = battery
“`

显示温度和风扇速度信息


$ sudo tlp-stat -t

$ sudo tlp-stat --temp

“`
TLP 1.1 —

+++ USB
Autosuspend = disabled
Device whitelist = (not configured)
Device blacklist = (not configured)
Bluetooth blacklist = disabled
Phone blacklist = disabled
WWAN blacklist = enabled

Bus 002 Device 001 ID 1d6b:0003 control = auto, autosuspenddelayms = 0 — Linux Foundation 3.0 root hub (hub)
Bus 001 Device 003 ID 174f:14e8 control = auto, autosuspenddelayms = 2000 — Syntek (uvcvideo)

……
“`

显示警告信息


$ sudo tlp-stat -w

$ sudo tlp-stat --warn

“`
TLP 1.1 —

+++ Configured Settings: /etc/default/tlp
TLPENABLE=1
TLP
DEFAULTMODE=AC
TLP
PERSISTENTDEFAULT=0
DISK
IDLESECSONAC=0
DISK
IDLESECSONBAT=2
MAX
LOSTWORKSECSONAC=15
MAXLOSTWORKSECSON_BAT=60

……

+++ System Info
System = LENOVO Lenovo ideapad Y700-15ISK 80NV
BIOS = CDCN35WW
Release = “Manjaro Linux”
Kernel = 4.19.6-1-MANJARO #1 SMP PREEMPT Sat Dec 1 12:21:26 UTC 2018 x8664
/proc/cmdline = BOOT
IMAGE=/boot/vmlinuz-4.19-x86_64 root=UUID=69d9dd18-36be-4631-9ebb-78f05fe3217f rw quiet resume=UUID=a2092b92-af29-4760-8e68-7a201922573b
Init system = systemd
Boot mode = BIOS (CSM, Legacy)

+++ TLP Status
State = enabled
Last run = 11:04:00 IST, 684 sec(s) ago
Mode = battery
Power source = battery

+++ Processor
CPU model = Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz

/sys/devices/system/cpu/cpu0/cpufreq/scalingdriver = intelpstate
/sys/devices/system/cpu/cpu0/cpufreq/scalinggovernor = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling
available_governors = performance powersave

……

/sys/devices/system/cpu/intelpstate/minperfpct = 22 [%]
/sys/devices/system/cpu/intel
pstate/maxperfpct = 100 [%]
/sys/devices/system/cpu/intelpstate/noturbo = 0
/sys/devices/system/cpu/intelpstate/turbopct = 33 [%]
/sys/devices/system/cpu/intelpstate/numpstates = 28

x86energyperf_policy: program not installed.

/sys/module/workqueue/parameters/powerefficient = Y
/proc/sys/kernel/nmi
watchdog = 0

+++ Undervolting
PHC kernel not available.

+++ Temperatures
CPU temp = 42 [°C]
Fan speed = (not available)

+++ File System
/proc/sys/vm/laptopmode = 2
/proc/sys/vm/dirty
writebackcentisecs = 6000
/proc/sys/vm/dirty
expirecentisecs = 6000
/proc/sys/vm/dirty
ratio = 20
/proc/sys/vm/dirtybackgroundratio = 10

+++ Storage Devices
/dev/sda:
Model = WDC WD10SPCX-24HWST1
Firmware = 02.01A02
APM Level = 128
Status = active/idle
Scheduler = mq-deadline

Runtime PM: control = on, autosuspend_delay = (not available)

SMART info:
4 StartStopCount = 18787
5 ReallocatedSectorCt = 0
9 PowerOnHours = 606 [h]
12 PowerCycleCount = 1792
193 LoadCycleCount = 25777
194 Temperature_Celsius = 31 [°C]

+++ AHCI Link Power Management (ALPM)
/sys/class/scsihost/host0/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsi
host/host1/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsihost/host2/linkpowermanagementpolicy = medpowerwithdipm
/sys/class/scsi
host/host3/linkpowermanagementpolicy = medpowerwithdipm

+++ AHCI Host Controller Runtime Power Management
/sys/bus/pci/devices/0000:00:17.0/ata1/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata2/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata3/power/control = on
/sys/bus/pci/devices/0000:00:17.0/ata4/power/control = on

+++ PCIe Active State Power Management
/sys/module/pcie_aspm/parameters/policy = powersave

+++ Intel Graphics
/sys/module/i915/parameters/enabledc = -1 (use per-chip default)
/sys/module/i915/parameters/enable
fbc = 1 (enabled)
/sys/module/i915/parameters/enable_psr = 0 (disabled)
/sys/module/i915/parameters/modeset = -1 (use per-chip default)

+++ Wireless
bluetooth = on
wifi = on
wwan = none (no device)

hci0(btusb) : bluetooth, not connected
wlp8s0(iwlwifi) : wifi, connected, power management = on

+++ Audio
/sys/module/sndhdaintel/parameters/powersave = 1
/sys/module/snd
hdaintel/parameters/powersave_controller = Y

+++ Runtime Power Management
Device blacklist = (not configured)
Driver blacklist = amdgpu nouveau nvidia radeon pcieport

/sys/bus/pci/devices/0000:00:00.0/power/control = auto (0x060000, Host bridge, skl_uncore)
/sys/bus/pci/devices/0000:00:01.0/power/control = auto (0x060400, PCI bridge, pcieport)
/sys/bus/pci/devices/0000:00:02.0/power/control = auto (0x030000, VGA compatible controller, i915)

……

+++ USB
Autosuspend = disabled
Device whitelist = (not configured)
Device blacklist = (not configured)
Bluetooth blacklist = disabled
Phone blacklist = disabled
WWAN blacklist = enabled

Bus 002 Device 001 ID 1d6b:0003 control = auto, autosuspenddelayms = 0 — Linux Foundation 3.0 root hub (hub)
Bus 001 Device 003 ID 174f:14e8 control = auto, autosuspenddelayms = 2000 — Syntek (uvcvideo)
Bus 001 Device 002 ID 17ef:6053 control = on, autosuspenddelayms = 2000 — Lenovo (usbhid)
Bus 001 Device 004 ID 8087:0a2b control = auto, autosuspenddelayms = 2000 — Intel Corp. (btusb)
Bus 001 Device 001 ID 1d6b:0002 control = auto, autosuspenddelayms = 0 — Linux Foundation 2.0 root hub (hub)

+++ Battery Status
/sys/class/powersupply/BAT0/manufacturer = SMP
/sys/class/power
supply/BAT0/modelname = L14M4P23
/sys/class/power
supply/BAT0/cyclecount = (not supported)
/sys/class/power
supply/BAT0/energyfulldesign = 60000 [mWh]
/sys/class/powersupply/BAT0/energyfull = 51690 [mWh]
/sys/class/powersupply/BAT0/energynow = 50140 [mWh]
/sys/class/powersupply/BAT0/powernow = 12185 [mW]
/sys/class/power_supply/BAT0/status = Discharging

Charge = 97.0 [%]
Capacity = 86.2 [%]
“`


via: https://www.2daygeek.com/tlp-increase-optimize-linux-laptop-battery-life/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2019/05/13/tlp%ef%bc%9a%e4%b8%80%e4%b8%aa%e5%8f%af%e4%bb%a5%e5%bb%b6%e9%95%bf-linux-%e7%ac%94%e8%ae%b0%e6%9c%ac%e7%94%b5%e6%b1%a0%e5%af%bf%e5%91%bd%e7%9a%84%e9%ab%98%e7%ba%a7%e7%94%b5%e6%ba%90%e7%ae%a1%e7%90%86/

Like (0)
eason的头像eason
Previous 2019年5月13日
Next 2019年5月13日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信