翻倍我吹的,可能翻不了倍(逃

作为一个简洁的系统,ArchLinux的许多体验都需要用户来手动优化,其中不乏电源管理。
刚开始装上ArchLinux的时候,耗电量可是相当惊人(大概是因为标压i7),以至于那一段时间内我去上课时都只敢用Windows。一个合理的电源管理成为了你能把你心爱系统带出门装逼使用的关键。

1 安装

tlp已经被Arch官方源收录,执行以下命令安装

$ sudo pacman -S tlp

启用tlp服务

$ sudo systemctl enable tlp tlp-sleep

屏蔽冲突的服务

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

使用以下命令手动启动tlp服务,或者直接重启你的电脑

$ sudo systemctl start tlp tlp-sleep

检查一下tlp的运行状态

$ sudo systemctl status tlp.service
● tlp.service - TLP system startup/shutdown
   Loaded: loaded (/usr/lib/systemd/system/tlp.service; enabled; vendor preset: disabled)
   Active: active (exited) since Tue 2018-12-18 08:59:46 CST; 1h 49min ago
     Docs: http://linrunner.de/tlp
 Main PID: 1509 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   Memory: 0B
   CGroup: /system.slice/tlp.service

显示active (exited)说明tlp正常运行。

2 配置

要修改的项目记得去掉注释!

编辑tlp的配置文件/etc/default/tlp

2.1 硬盘

首先配置DISK_DEVICES,指定要生效的硬盘。
一般是针对作为仓库盘的机械硬盘。如果你的系统安装在SSD上,也可以对其启用tlp。如果你的系统安装在机械硬盘上(都8102年了还有人在机械硬盘上装系统?!,那么请不要将其启用。
你可以使用fdisk -l来查看你的硬盘设备。
假设你把系统安装在了SSD /dev/sda上,并且有一块机械硬盘/dev/sdb作为仓库盘。 找到DISK_DEVICES, 修改为

DISK_DEVICES="sda sdb"

找到DISK_SPINDOWN_TIMEOUT,修改为

DISK_SPINDOWN_TIMEOUT_ON_AC="0 0"
DISK_SPINDOWN_TIMEOUT_ON_BAT="0 1"

如果你在DISK_DEVICES只指定了一块硬盘,那么你只需要指定一个参数,后面的操作也一样


DISK_APM_LEVEL

DISK_APM_LEVEL_ON_AC="254 254"
DISK_APM_LEVEL_ON_BAT="127 100"

SATA_LINKPWR

SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"

2.2 显卡

如果你使用的是具有NVIDIA和Intel双显卡的笔记本,那么你应该用Bumblebee 对你的显卡进行配置并且使用bbswitch进行针对显卡的电源管理。将你的显卡排除在tlp之外。
查看你的显卡设备地址

$ lspci | grep NVIDIA
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

01:00.0就应该是你的显卡设备地址。
在tlp的配置文件中找到RUNTIME_PM_BLACKLIST,填入参数

RUNTIME_PM_BLACKLIST="01:00.0"

tlp针对显卡的电源管理只对AMD显卡有效,如果你使用的是AMD显卡,可以阅读tlp官方文档 ,此处略过。

2.3 CPU

稍微折腾过Android的同学都应该知道选择一个合适的CPU governor可以很大程度上提升续航。一般来说最佳的governor的是ondemand,然而现在的Intel CPU只支持powersafe和performance两种governor。所以平时使用powersafe即可。
CPU_SCALING_GOVERNOR

CPU_SCALING_GOVERNOR_ON_AC=performance
CPU_SCALING_GOVERNOR_ON_BAT=powersave

CPU_BOOST,配置TurboBoost,仅对Intel Core i系CPU有效。

CPU_BOOST_ON_AC=1
CPU_BOOST_ON_BAT=0

NMI_WATCHDOG,禁用看门狗。

NMI_WATCHDOG=0

3 后记

AUR软件仓库中也提供了具有图形界面的工具tlpgui ,让用户更加方便地配置TLP,但对于需要填入多个参数的选项,你还是得手动修改配置文件。
如果你想要获得更加详细的配置指南,请阅读官方文档

illust: しらび