首页 > 技术文章 > linux省电三步骤

ManWingloeng 2020-02-27 19:19 原文

前言

我的是deepin系统,因为新买了magicbook pro笔记本(i5版),在windows下续航能够有10小时,但是在linux下耗电迅速只能三四小时,所以我对系统进行了省电优化,能够日常使用可以续航7小时以上。

步骤一

安装tlp

sudo apt-get install tlp tlp-rdw
systemctl enable tlp
systemctl enable tlp-sleep

步骤二

安装powertop

sudo apt-get install powertop
vim /etc/systemd/system/powertop.service

写一个powertop的服务
其实就是写powertop --auto-tune自动优化

[Unit]
Description=Powertop tunings

[Service]
ExecStart=/usr/bin/powertop --auto-tune
RemainAfterExit=true

[Install]
WantedBy=multi-user.target

同样也是enable该服务

systemctl enable powertop

步骤三

powersave写入cpu管理

vim /etc/rc.local

好像默认是balance的,我设置省电模式,但是我没做cpu降频了,因为本身就是轻薄本我还得跑跑代码,降频怕带不动了。

#!/bin/bash
# save power
echo 'powersave' > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu4/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu5/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu6/cpufreq/scaling_governor
echo 'powersave' > /sys/devices/system/cpu/cpu7/cpufreq/scaling_governor
# powertop --auto-tune
exit 0

其实无论是添加service还是写入rc.local都是为了能够开机自启动而已。

选做

intel_pstate

参考linux下使用笔记本的相关设置
只针对intel处理器中SandyBridge(含IvyBridge)及更新的构架的CPU。intel构架列表:List of Intel CPU microarchitectures。援引:

Linux内核对CPU的工作频率管理,已经跟不上现代的CPU的需求,无法在效能与省电取得平衡,所以intel自己写了一段内核代 码,Intel_pstate……内核3.13中,已经放入这段代码,但没有默认启用。
启用方法:

编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT一行添加intel_pstate=enable,例如该行原有内容是:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet”

添加添加intel_pstate=enable后即是:

GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_pstate=enable”

然后执行sudo grub-mkconfig -o /boot/grub/grub.cfg ,重启生效。

检查:执行cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver,如果显示intel_pstate则表示启用成功,否则是未启用成功或不支持该功能。
实际上这个intel_pstate我这里是默认开启了,我发现开启了之后其实会更费电,所以我们改为

GRUB_CMDLINE_LINUX="splash quiet"
GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable"

之后更新grub

sudo update-grub

这样我们可以完全使用cpufreq管理我们的cpu频率,
另外我还设置了四个快捷键方便升降频:

#启动powersave模式(默认开机不插电是powersave):
for i in {0..7};do sudo cpufreq-set -g powersave -c $i;done
#启动performance模式
for i in {0..7};do sudo cpufreq-set -g performance -c $i;done
#主动降频,设置频率上限为0.8GHz即800MHz(我这里默认下限是400MHz)
for i in {0..7};do sudo cpufreq-set -u 0.8GHz -c $i;done;cpufreq-info
#主动升频,设置频率上限为1.8GHz即1800MHz(我这里默认下限是400MHz)
for i in {0..7};do sudo cpufreq-set -u 1.8GHz -c $i;done;cpufreq-info

我的笔记本配置:

如果是插电情况下performance模式设置上限为1.8GHz的话,其实可以达到3.4GHz的频率,主要是跑程序的时候用的,我是八代i5在800MHz的情况下基本轻办公开10多个网页也没有卡顿感,笔记本的cpu是i5-8250U,4核8线,可以看到官方说的主频在1.6GHz,最大3.4GHz,未调教之前是可以看到的插电就可以升到3.4GHz了,开了intel_pstate不插电在powersave模式确实也是1.6GHz

在i7z工具的检测下,我开了15个网页,2个vscode窗口,一个微信,一个文件管理器,目前主频基本在0.8GHz左右,维持6.67W的水平,电池是56Wh的,满电的情况下估计可以用8小时左右。其实我不是很满意,期待deepinV20能够在省电上做优化。
目前电量为58%,可用5小时左右。

屏蔽触控板

deepin很简单就可以控制插入鼠标屏蔽触控板

推荐阅读