在reddit中,看评论区出现这个软件,于是打算尝试一下,应该能对不使用电源时笔记本的省电起到一定的作用。
https://github.com/AdnanHodzic/auto-cpufreq?tab=readme-ov-file#why-do-i-need-auto-cpufreq
作用
One of the problems with Linux today on laptops is that the CPU will run in an unoptimized manner which will negatively impact battery life. For example, the CPU may run using the “performance” governor with turbo boost enabled regardless of whether it’s plugged into a power outlet or not.
These issues can be mitigated by using tools like indicator-cpufreq or cpufreq, but those still require manual action from your side which can be daunting and cumbersome.
Tools like TLP (which I used for numerous years) can help extend battery life, but may also create their own set of problems, such as losing turbo boost.
Given all of the above, I needed a simple tool that would automatically make CPU frequency-related changes and save battery life, but let the Linux kernel do most of the heavy lifting. That’s how auto-cpufreq was born.
Please note: auto-cpufreq aims to replace TLP in terms of functionality, so after you install auto-cpufreq it’s recommended to remove TLP. Using both for the same functionality (i.e., to set CPU frequencies) will lead to unwanted results like overheating. Hence, only use both tools in tandem if you know what you’re doing.
One tool/daemon that does not conflict with auto-cpufreq in any way, and is even recommended to have running alongside, is thermald.
Supported architectures and devices
Only devices with an Intel, AMD, or ARM CPU are supported. This tool was developed to improve performance and battery life on laptops, but running it on desktops/servers (to lower power consumption) should also be possible.
AI提炼
该软件 auto-cpufreq 的作用主要有以下几点:
- 自动进行与 CPU 频率相关的更改,优化 CPU 运行方式,避免其以未优化的方式运行,从而延长电池寿命。 让 Linux
- 内核承担大部分繁重工作,在不依赖过多手动操作(如使用 indicator-cpufreq 或 cpufreq 工具那样)的情况下,实现对
- CPU 频率的优化调整。 在功能上可替代 TLP,避免因同时使用 TLP 和 auto-cpufreq 设置 CPU频率而导致如过热等不良结果。
- 除了适用于笔记本电脑提升性能和延长电池寿命外,也可运行在台式机或服务器上,达到降低功耗的目的。
大概就是通过调节CPU的频率达到省电的作用,不过电脑的功耗大头不仅仅只有CPU,提升有但有限吧
过程解读
systemctl status power-profiles-daemon
与gnome下的power-profiles-daemon.service产生了冲突,也不奇怪,因为这个就是用来调节cpu的运行状态的。
长这样:
下面是警告(也就是说不是报错),意思是说两者不能共存,在安装auto-cpufreq为daemon service时会将power-profiles-daemon禁用,卸载时重新启用power-profiles-daemon服务。
ying@192 ~/p/auto-cpufreq (master)> sudo auto-cpufreq --monitor----------------------------------- Warning -----------------------------------Detected running GNOME Power Profiles daemon service!This daemon might interfere with auto-cpufreq and will be automatically
disabled when auto-cpufreq daemon is installed and
it will be re-enabled after auto-cpufreq is removed.Only necessary to be manually done on Snap package installs!
Steps to perform this action using auto-cpufreq: power_helper script:
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
python3 -m auto_cpufreq.power_helper --gnome_power_disableReference: https://github.com/AdnanHodzic/auto-cpufreq#configuring-auto-cpufreq
press Enter to continue or Ctrl + c to exit...^C⏎
回车查看详情信息
这个命令应该是临时启用 auto-cpufreq,如何看情况在安装为daemon service,重启配置就失效。
sudo auto-cpufreq --live
ok,给哥们主频最大频率砍了一般,稍微动动cpu占用就上去了。和轻薄本没两样了吧!
我尝试一下,可不可以退出这个监视界面,一直开着也较为碍事。
sudo auto-cpufreq --monitor
监控发现,配置基本没变。
谨慎起见,再查看
systemctl status power-profiles-daemon
可以看到这个服务还是在跑,不过尝试更改,会发现主频最高仍然是2300,所以也算是禁用了。
不过目测续航也并没有多少提高。
安装
git clone https://github.com/AdnanHodzic/auto-cpufreq.git
cd auto-cpufreq && sudo ./auto-cpufreq-installer
sudo auto-cpufreq --install
其他
它是有一个GUI程序可以图形化的管理操作,但是好像我安装过程中出了些问题,这个程序无法打开,但是命令行仍然可用。
安装之后
auto-cpufreq --stats
//To disable and remove auto-cpufreq daemon, run:
sudo auto-cpufreq --remove
内存占用不大,大概25M
systemctl status auto-cpufreq
其他
在插入电源后打开virtualbox测试,发现最大频率会波动,虚拟机也卡卡的感觉,也不知道是不是错觉。
You can configure separate profiles for the battery and power supply. These profiles will let you pick which governor to use, as well as how and when turbo boost is enabled. The possible values for turbo boost behavior are always, auto, and never. The default behavior is auto, which only activates turbo during high load.
这里有个问题,只有在高负载下会启用,那也就是说如果环境在高低负载交替的场景,可能会有明显卡顿。
作者也给出了配置的方法,可以通过配置文件来控制使用电源和电源适配器时不同的睿频调节方案。
配置文件并没有默认创建,可能需要手动创建。
在sudo auto-cpufreq --monitor的显示中可以看到电源适配器的插入状态,还有电池充电开始和停止的阈值,但是作者明确指出只适配联想设备,因为我是华硕所有我也就不尝试配置了,github中还有一些电源管理方案可以供选择,还有gnome插件的方案,不过需要指出,gnome插件需要在开机后登录进入桌面才会启用,也就是说这段时间内,电池会持续充电。
在安装为daemon后会关闭gnome的性能调节service
ying@192 ~> systemctl status power-profiles-daemon
○ power-profiles-daemon.serviceLoaded: masked (Reason: Unit power-profiles-daemon.service is masked.)Active: inactive (dead)
附一个我的配置文件
sudo vim /etc/auto-cpufreq.conf
在插入电源时一直启用turbo,在使用电池时auto,电池充电阈值那里还没开始搞,现在使用的gnome插件,虽然有点缺陷但可以使用,不过作者的reference我没有删除,感兴趣的可以去摸索一下,另外这个配置文件修改完保存就会生效。
# settings for when connected to a power source
[charger]
governor = performance
energy_performance_preference = performance
turbo = always# settings for when using battery power
[battery]
governor = powersave
energy_performance_preference = power# turbo boost setting (always, auto, or never)
turbo = auto# battery charging threshold
# reference: https://github.com/AdnanHodzic/auto-cpufreq/#battery-charging-thresholds
#enable_thresholds = true
#start_threshold = 20
#stop_threshold = 80
本篇内容有点乱