Linux 笔电的所谓省电技巧

209 天前
 kkocdko

原文链接(本人博客)

最近忙,没空写。随便来点暴论。

在 Linux 上使用 TLP ,其本质和十多年前在 Android 智能手机上流行的 XX 省电大师 没有区别。

8169 次点击
所在节点    Linux
63 条回复
yulgang
208 天前
随她去吧
X21541
208 天前
楼主是工作不顺,还是女朋友惹你生气了? tlp 装上去就能用,又不用特别设置,碍啥事了?
zhuisui
208 天前
https://www.reddit.com/r/linux/comments/15p4bfs/amd_pstate_and_amd_pstate_epp_scaling_driver/
@nlzy 最新的驱动 amd-pstate-epp


其中提到的显卡控制、cpu 调度器、外设供电等,不就是 tlp 做的事嘛

我这里耗电有好大一部分是因为用了 wine 版的微信
xz410236056
208 天前
我刚刚就突然好奇,哪里的人说“笔电”。 好像从小到大没听过别人这么讲过,查了一下好像是台湾那边的叫法
dog82
208 天前
你是在用系统,不是被系统虐,不如直接换成 windows
kkocdko
208 天前
@X21541 来了来了,你你爱用就用,非要来刷存在感
kkocdko
208 天前
@dog82 不如换 mac
kkocdko
208 天前
@zhuisui EPP 某些时候比较激进,可调整的地方不多,不过也挺好的。https://kkocdko.site/post/202309180817
kuanat
208 天前
这个帖子竟然跑题了……我补充一点可能用得上的吧。

关于调度:

如果要详细说 CPU 调度,大约可以分三个部分:

- 系统层面最上层是一个“电源管理”机制,用途是让用户告诉操作系统,我的需求是性能全开,还是静音保证续航。多数实现就是性能/平衡/续航这样的选项。

- 第二层是 scaling driver ,这是系统内核向 CPU 发送调度指令的中介。用户层面的电源管理应用,将用户的意图转化为具体的调度参数。

在早期 Intel/AMD 都没有特别的调度机制的时候,这个调度参数其实是 ACPI 标准中的 P-State ,P 状态的定义就是多少电压对应多少运行频率。这个时代,调度还是软件占主导的。随着现代 CPU 越来越复杂,基于 ACPI P-state 调度不够用了。所以现在 intel_pstate/amd_pstate_epp 也变成了中介,不再直接控制频率,而是将意图给予 CPU 由 CPU 自身的硬件 HWP 来确定实际的调度。

- 第三层就是 CPU 和主板 BIOS 了。CPU 能否真正完成调度还要看 BIOS 限制,比如 PL1/PL2 这种长短功率限制、睿频开关等等。笔记本厂家通过 BIOS 完成所谓的“调教”。

部分开发能力较强的厂家,还会提供用户空间的控制程序,在 BIOS 之外完成相关参数设定。相当于手动覆盖第一层系统的电源管理机制,只是我没见哪家厂商给 Linux 做相关的适配,控制程序多数只能在 Windows 用。



综合上面所说的,对于用户来说,第二层是一定要用 Intel/AMD 自家驱动的。至于用户空间的第一层调度,我的建议是用系统自带的就好了,折腾不出什么花样来。我自己的话还是有能力利用一下第三层的,比如把 Windows 的控制程序移植到 Linux ,这个事可以有机会再说。


关于 TLP:

我的建议依旧是不要折腾,TLP 代码就在那里躺着,实现方式就是脚本。看过了之后再下判断也不迟。
Donduck
208 天前
@kkocdko #48 EPP 不是有 256 个挡位可以用吗
zuotun
208 天前
我游戏本在节能模式下用 btop 看了一下功率居然到了接近 40W ,在降低亮度之后也三十多,nvidia-smi 看显卡功率大约 10W ,别的地方是省不下来了,想问一下 Arch 怎么禁用独显?之前试过 optimus-manager 重启后桌面直接起不来。
Donduck
208 天前
@kuanat #49 锐龙这个东西会导致相同 EPP 下 AC/DC 出现明显的调度区别
https://github.com/FlyGoat/RyzenAdj/wiki/Options#ac-mode--dc-mode
zhuisui
208 天前
@kkocdko @Donduck 不能说激进,active 是让 cpu 自己主动管理,passive 是让 os 管理它(被动)。
tlp 最新版本的默认设置是 active ,大概这个是综合比较好的。
另外文章里附了一个性能评测,使用 active 的各个配置也是综合比较好的。其中使用 passive 的 power 是最省电的,但是频率直接被限制到了 400MHZ🌚
Donduck
208 天前
Maboroshii
208 天前
不可否认 linux 桌面一天比一天更好了
kuanat
208 天前
@Donduck #52

这个本来是想放到第三层里说的。有能力通过 ec/smu/acpi 方式去调节的话,确实比系统自带的方式好。因为是硬件平台相关的,所以没有什么通用性。(我感觉 6000 系之后离电性能限制就很小了,不清楚是不是个例)

追根溯源的话,Intel/AMD 的市场竞争导致双方都在比拼频率,毕竟评测的时候会好看一些。原本默频应该是芯片工艺的甜点,睿频功耗高但是能换来一定提升。现在标定的默频都已经是睿频水平了,睿频实际上在 HWP 调度下变成了出厂灰烬超频。结果就是续航不理想,然后 AMD 那边 BIOS 还有平台配套开发不太给力,所以简单一刀切限制了离电性能。

对于普通用户来说,在没有这样的应用的情况下,想要调节就很困难了。多数都是通过逆向厂家给的控制程序,判断是 WMI 还是 ACPI 方式,又或者是 EC/SMU 控制,然后在 Linux 写程序还原这个操作。
LJNlol
208 天前
emmm ,我倒是觉得题主说的都是实打实的东西,每一条很明显题主都是自己用过的才有这种感受

为什么我敢这样说?因为我在笔记本上(型号,2022 年幻 15 )日用了两年 Linux ,期间试过很多发行版,目前主力是 Fedora ,也尝试过题主提到的那些方法来“节约电量”,甚至题主提到的不少坑我都踩过。最后还是发现,买个轻薄本才是最佳续航延长方法。😂

或者这么说吧,在 windows 下能拿到长续航的电脑,在 linux 下也不会差太多(只要设置正确)。在 win 下本来就拉胯的电脑,别指望着换个系统就能神奇的提升许多续航。
MrKrabs
208 天前
/etc/systemd/logind.conf
HandleLidSwitch=ignore
懒得信 linux 和 intel
Donduck
208 天前
@kuanat #56 锐龙现在的基础频率是比较高的,个个都 3.xGHz ,英特尔这边低一些
其实还是 Windows 更方便控制,1511 开始支持调节 HWP ,1709 开始支持调节 QoS 的频率和 EPP ,19H1 开始支持游戏模式根据焦点窗口自动切换设置
kwater
207 天前
ubuntu 或 fedora 认证过的硬件
甚至针对具体版本 ,可以在官网搜到可靠的 HCL 。

照着型号买笔电,ubuntu 的话使用对应的 oem kernel 版本,就能实现与 OS 特性对齐,hw vendor 预期的续航。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1036149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX