最近忙,没空写。随便来点暴论。
在 Linux 上使用 TLP ,其本质和十多年前在 Android 智能手机上流行的 XX 省电大师 没有区别。
你的硬件,如果是游戏本,就别想着要什么续航了。请使用低压 CPU 。5800U ,7840U ,等等。虽然 7840U 似乎出货量不多,那 7845HS 也可以考虑。
如果你有独立显卡,禁用独立显卡,只使用核心显卡。
不干重活,远程开发,你整天编译 Chromium 还想要什么续航。
注意视频硬件解码,别傻傻地看 B 站软解 AV1 。
Stop 掉暂时不使用的进程,要用再 Resume 。比如看书的时候可以 Stop 掉 Chromium 什么的。
别开一堆重量级标签页,开一堆 YouTube 播放页谁都挽救不了。养成好习惯。
使用新内核,使用 现代的 CPU scale driver 。比如 amd-pstate 。新内核默认启用,如果你坚持用所谓的稳定的 Ubuntu 20.04 那你活该。
调整 CPU 调度器,比如可以考虑 conservative 什么的。如果你能接受性能损失。
外设没事干就拔下来,这也是很多 TLP 的用户的所谓感知来源,插在上面然后控制暂停有意思么,不如拔下来。
屏幕亮度。开那么高亮度谁都救不了你。一块屏幕高亮度都 3W 了,某些 OLED 还能更高,有条件可以自己拆开测一下。在极限状况下把 CPU 压那么 0.x W 远远不如降亮度方便。用高对比度主题,降低亮度。
如果你的主板 Suspend S3 会睡死,那就用关核心/降频率来替代待机场景。比如带去公司的途中。
https://v2ex.com/t/1035673 在这里看到一堆什么 Arch 比较省电,Ubuntu 比较费电,什么破玩意儿,搞笑。蓝色的瓶子装水比较好喝,红色的瓶子装水不好喝。
https://v2ex.com/t/1035673#r_14640404 57 楼有说了一些,徒劳的,来得太晚了,前排都是一些什么推荐换发行版的,装 TLP 的,说 Linux 和 WinXP 差不多占用的。
https://fly.meow-2.com/post/records/tlp-for-power-saving.html
1
lslqtz 243 天前 5
1. 即使硬件功耗高, 软件也是可以优化的;
2. 理论上, 良好的调度可以降低独立显卡的功耗, 且可以避免禁用; 3. 这是与硬件及性能 (时间) 强相关的无解问题: 如果限制性能, 那么就可以改善功耗, 无论是主动的 (-j1) 还是被动的 (Intel Atom Processor); 4. 印象中, 有脚本可以禁用软解, B 站的画质在各个编码有码率差异, 画质基本区别不大, 只能是对叔叔的 PCDN 形成了一定的成本影响; 5. 相比 Stop, 可能 Pause 能更好的形容. Edge 有暂停闲置标签页的功能, 不清楚 Chromium 有没有; 6. 理论上, 老版本的 OS 也可以使用新的内核, 但是比较折腾. 在我看来使用现代 CPU scale driver 更多的好处是, 改善功耗和性能的平衡, 确实, 这实际上是更切合实际的省电方法; 7. 拔插外设是比较繁琐的操作, 如果能给 USB 设备断电, 那么使用体验会更好, 这应该是有用户需求的, 即转化为相关软件的使用场景; 8. 屏幕亮度是非常耗电的, 无论是 LCD/OLED/Mini-LED. 在硬件上追求更好效果的方式是使用全贴合屏幕及降低屏幕反射率, 在软件或者 OS 上则也可以利用硬件特性降低功耗, 如利用 OLED/Mini-LED 的黑色区域关闭像素/背光的特性; 9. 老式机器 S3 睡死更大的可能性是 OS 与机器的互操作问题, 新式机器 S3 睡死或不支持有可能是因为 AOAC. 在盒盖状态关闭所有大核及闲置核心, 降低频率是很好的 workaround; |
2
lslqtz 243 天前 1
改善续航和功耗不一定是要以牺牲用户体验为代价, 不同的用户有不同的取舍. 但就 1 的提升是最大的, 一个更低闲置功耗的硬件往往才是最大改善点 (当然, 同样要配合节能的调度策略). 但并不是说其它策略是完全无用的.
|
3
kkocdko OP 旧系统上 xanmod 或者 backport 内核也可以,但是我不相信那帮用旧系统的人能意识到这一点
|
4
kkocdko OP 我个人认为与其使劲折腾使劲琢磨,不如选择走一条更多人走过的道路。越是折腾,修改越多,与默认配置的变更越多,那就几乎必然承受更多的痛苦。
当然,折腾成功自然是有成就感的,但这有什么用呢?能学到什么呢?只能学到一些只适用于你的电脑的,完全不普适的知识,换来一点点所谓的提升,但这所谓的提升,明明可以通过更好的选择来达成。 |
5
fugu37 243 天前
补充一点,拓展坞的功耗不容小视。一个 typec 转 3USB + RJ45 的简单拓展坞功耗就有 4W ,复杂的拓展坞功耗甚至高达 10W 。
|
6
zzzsy 243 天前
别用 DE ,还能省点
|
7
LK99 243 天前
听上去很累的样子,我想问 lz 如果按照你说的这样使用的话,普通的办公笔记本正常工作续航有多久?
|
8
badmotherfucker 243 天前
充...电宝?
|
10
kkocdko OP 反正很多桌面 Linux 用户就是存在这种过度折腾的问题,当然啦,不关我事。如果你觉得我说的内容也很折腾,那确实,用台式机最好。能加钱解决为什么要折腾
|
12
m4d3bug 243 天前 via Android
tuned-adm list
|
15
morgan1freeman 243 天前 6
@LK99 #11 别折腾了,这么多年了,linux desktop 依旧就是一坨屎,mac 要桌面有桌面,要 shell 有 shell ,unix 工具链齐全,实在不行 弄个 docker 里面跑 linux 独有的工具链,需要 nvidia 上虚拟机,纯桌面,真的不要折腾 linux 了,这玩意就是一个 text ui 的 os ,搞桌面 纯粹就是一坨翔
|
16
ityspace 243 天前 via Android 1
@morgan1freeman 说话能不能文明点。我可以说 Linux 桌面才是未来之光。友好一些的桌面比如 Gnome 我觉得比 MacOS 的桌面甚至还好看。
|
17
morgan1freeman 243 天前 1
除非 mac 桌面彻底嗝屁,这辈子 我再碰一次 linux 桌面 ,我剁手
|
18
ityspace 243 天前 via Android 1
我坚持用 Linux 有四年历史了。用 Linux 少不了折腾!就算是桌面,想要配的舒服,也有可能要花一个月的时间来摸索。但是当你了解了,并且能随心所欲的配置的时候,你就会发现这样的桌面它是独一无二的,而且是其它桌面无法比较的。我自己配置的平铺化桌面的颜值可以碾压 Windows 和 MacOS 上的桌面。而所有功能比如快捷键都是自己定义的,不用担心像这些闭源系统有一堆还得去适应的地方。但是折腾的道路最终肯定是躺平,我选择了用 Linux 的发行版之一 NixOS 。NixOS 入门是有难度的,但是它让操作变得可复现,我可以把一切配置记录起来随时用,入门之后整个系统的管理特别简单。我推荐尝试探索 Linux 系统的人试试 Arch Linux 或者 Gentoo Linux ,想要更加容易不用操心的系统的人试试 NixOS 。至于日常使用,我觉得十分舒服,续航也足够长(我没有独显)。我不在 Linux 上安装国产软件,几乎只在上面用闭源软件。如果有软件需求,大不了虚拟机。只要你喜欢 Linux ,喜欢开源社区,那么你就能从 Linux 上获得源源不断的动力。
|
19
morgan1freeman 243 天前 4
我从 08 年 自己去电脑城 刻光盘,安装 ubuntu ,中途搞来搞去,最后还是放弃,到今天,我依旧认为 linux desktop 从用户角度来讲就是一坨屎,linux 是 linux ,linux desktop 真的就是 一坨屎,而且这坨屎,还有很多分支,各自为战
爱折腾的人就去折腾吧,搞 linux 这些桌面配置 安装来 安装去,滚动来 滚动去,折腾来 折腾去,真的对个人技术提升无任何帮助,光是一个远程桌面就够人折腾,还有多个显示器 等一系列的各种问题, 搞了这么多年,像样的输入法没有一个,fcitx 还老出各种 bug ,这哥们还革命性的升级 4 跟 5 不兼容,各种发行版 也是各自为战,一套桌面软件 要适配无数个环境,触摸板支持跟狗屎一样,还要自己找各种驱动, 另外各种桌面也是破坏性升级 另外就是各种驱动也是老大难,稍微新一点的笔记本 ,问题得各种看 issue ,折腾到最后,用这玩意,我就问图个啥? 我很多年前就只把 linux 当一个 text ui 来用,linux 这玩意,本身就是一个极客工具,众所周知,程序员都不爱画 UI ,linus 本人就是如此,本身我作为一个程序猿又何苦为难自己,linux 就安静当个 server 以及需要的时候 用 vim 编辑一下 文本就够了,别的需要查看的数据,down 下来 看就玩了,别弄个 desktop 在 linux 上面折腾自己 |
20
ityspace 243 天前 via Android
@morgan1freeman 我的上一条评论打错了字,我想说我只在 Linux 系统用开源软件。
任何事情都有变化,MacOS 和 Windows 的桌面不可能一直领先。我觉得 MacOS 和 Windows 的桌面虽然不错,但都是各种设计观念的交集,并不是我个人主观上的完美。我在 Linux 系统上的桌面实现了我对美好设计的追求。我一直挺喜欢原生安卓的 Material You 设计,对于其它桌面设计并没有那么喜欢。电脑桌面上就算是 ChromeOS 的 Material 设计也没那么完美。然后我使用了 Linux 平铺化桌面 Sway/Hyprland 。这种桌面随你怎么定义,集中体现了个人喜好。不过这种桌面适合快捷键操作,但是熟悉了之后用起来十分方便。 我不推荐用集成各种东西的系统,比如 Ubuntu, Manjaro Linux 之类的系统。可以最小化安装的 Arch Linux 或者 NixOS 我觉得安装也不难(前提有点经验)。 至于有些问题,比如驱动,如果喜欢 Linux 应该知道买个能兼容的笔记本电脑。 Linux 也在日新月异般变化。也许十年前难用。但是现在的话,我想说它足够强大好用了。 |
22
james122333 243 天前 via Android
usb 很脆弱 经常插拔是不好的
arch 确实启动的东西少 说比 ubuntu 还省电的确有点道理 ubuntu 确实很喜欢预装启动一些乱七八糟的东西 我说的 ntpd 也都不是暴论 其实还有其它必需关掉它原因 驱动亦是 |
23
smallboy19991231 243 天前 via iPhone
这是折磨自己。还不如直接 Mac 笔记本
|
24
ityspace 243 天前 via Android
@ecloud 我不喜欢有人一概而论说 Linux 桌面是不好的。我不用 DE ,而用 WM 。WM 本身功能很简单,主要快捷键操作。这种桌面熟悉之后特别好用。现在 Linux 桌面挺不错的,比如说 Gnome 我觉得设计十分现代化了。
有些问题不是每个人都有。比如软件对桌面的适配,或者其它特殊需求。就论单纯使用,我觉得很不错! |
25
james122333 243 天前 via Android
|
26
james122333 243 天前 via Android
|
27
james122333 243 天前 via Android
|
28
ityspace 243 天前 via Android
@james122333 平铺化看着舒服。对我来说视觉元素越少越好。不过平铺化桌面也能临时堆叠...
|
29
james122333 243 天前 via Android
|
30
kkocdko OP 好,没事,你们继续
|
31
ecloud 243 天前
@ityspace 正常,我刚开始玩的那几年也跟你现在的状态一样,慢慢你就懂了。
说句别的,即便如今的,所有使用 X 系(含 Wayland ) UI 的的系统,不管是 linux ,bsd 还是其他 Unix ,在流畅性和操作性上都不如 20 年前的 BeOS |
32
james122333 243 天前 via Android
|
33
ityspace 243 天前 via Android
我对流畅性感知不强,哪个系统我都觉得很流畅。基本上不都是点哪开哪?现在 Hyprland 也有丝滑的动画,这个我觉得很不错。
@ecloud |
34
ityspace 243 天前 via Android
@james122333 你用的什么桌面?如果是 DE ,我还没找到像 WM 这样可以从 Minimal 的配置发展成自己喜欢的样子。
|
35
james122333 243 天前 via Android
|
36
lslqtz 243 天前 1
@kkocdko Source: https://support.microsoft.com/zh-cn/topic/%E4%BA%86%E8%A7%A3-microsoft-edge-%E4%B8%AD%E7%9A%84%E6%80%A7%E8%83%BD%E5%8A%9F%E8%83%BD-7b36f363-2119-448a-8de6-375cfd88ab25
什么是睡眠选项卡? 为了提高 Microsoft Edge 浏览器的内存和 CPU 利用率,我们开发了一项称为睡眠选项卡的功能。 睡眠选项卡使后台选项卡处于非活动状态两小时后进入睡眠状态,以释放设备上的活动选项卡、新选项卡和其他应用程序的资源。 可以通过转到 “edge://settings/system”来调整时间间隔。 睡眠选项卡将淡出,以指示它们已释放资源。 若要恢复睡眠选项卡,请像普通选项卡一样单击它。 选项卡将取消淡化,内容将立即可用。 睡眠选项卡技术的工作原理是什么? 睡眠选项卡建立在 Chromium 冷冻技术的核心之上。 冻结会暂停选项卡的脚本计时器,从而最大程度地减少 CPU 使用率,并释放操作系统以将内存重新用于其他打开的选项卡、新选项卡或系统应用程序。 睡眠选项卡和丢弃的选项卡之间有什么区别? 睡眠选项卡只是暂停页面,允许 Microsoft Edge 释放系统资源。 具体而言,睡眠会将 CPU 使用率降低到最低,这有助于降低电池消耗并释放一些内存。 睡眠选项卡的优点是,再次回到它是快速和无缝的。 放弃的选项卡会完全放弃内存中的页面内容,从而释放 (CPU 、内存) 的所有资源。 缺点是,当你返回到该选项卡时,需要完全重新加载页面内容。 另外还有一个功能: Microsoft Edge 中的效率模式是什么? 效率模式旨在帮助延长电池使用时间。 它通过修改后台选项卡活动和一些前台活动来减少资源使用量,以及在处于非活动状态 30 分钟或更短 ((如果“ 使用睡眠选项卡保存资源 ”处于) 状态时)将非活动后台选项卡置于睡眠状态,从而最大程度地减少电源使用。 权益可能因设备、应用程序和个人浏览器习惯而异。 率模式适用于哪些平台? Microsoft Edge 效率模式适用于 Windows 、macOS 和 Linux 设备。 模式变为活动状态时的默认值因每个系统而异: |
37
lslqtz 243 天前
看起来 SIGSTOP 实际上也是一种暂停, 不过它比较暴力. 其实这也是一些软件可以发挥作用的地方.
|
38
yanqiyu 243 天前
个人体验,现代的轻薄本(没有独立显卡)+足够新的内核和系统软件续航是完全不虚的。
至于为什么会出现 ubuntu 费电的印象了,大多数人装的老 LTS 可能内核就不够新,导致耗电增加。 |
39
nlzy 243 天前
基本同意楼主的看法。
我省电的方法基本也都是楼主提到的这些东西,买一台 AMD 7000 系列的核显本,启用 amd-pstate ,启用 conservative ,离电时限制 CPU 睿频峰值,关掉用不到的外设,关掉键盘背光。 我回复这条帖子的过程中电池放电功率基本维持在 5 ~ 6 W ,偶尔会短时跳到 7 W ,容量 71Wh 的电池用个 10 多小时完全不是问题。再加上 100W 功率的快充头,出差时的续航焦虑已经彻底治好了。 不过话又说回来,所有的省电手段都不如买一台搭载新款 AMD CPU 且电池容量在 70Wh 以上的核显本来得靠谱。 |
40
dnfQzjPBXtWmML 243 天前
即使是低压轻薄本,可能默认功耗 10+,设置一下降到 4~7w 多出来的续航也是很可观的
|
41
yulgang 243 天前
|
42
X21541 242 天前
楼主是工作不顺,还是女朋友惹你生气了? tlp 装上去就能用,又不用特别设置,碍啥事了?
|
43
zhuisui 242 天前
https://www.reddit.com/r/linux/comments/15p4bfs/amd_pstate_and_amd_pstate_epp_scaling_driver/
@nlzy 最新的驱动 amd-pstate-epp 其中提到的显卡控制、cpu 调度器、外设供电等,不就是 tlp 做的事嘛 我这里耗电有好大一部分是因为用了 wine 版的微信 |
44
xz410236056 242 天前
我刚刚就突然好奇,哪里的人说“笔电”。 好像从小到大没听过别人这么讲过,查了一下好像是台湾那边的叫法
|
45
dog82 242 天前
你是在用系统,不是被系统虐,不如直接换成 windows
|
48
kkocdko OP @zhuisui EPP 某些时候比较激进,可调整的地方不多,不过也挺好的。https://kkocdko.site/post/202309180817
|
49
kuanat 242 天前
这个帖子竟然跑题了……我补充一点可能用得上的吧。
关于调度: 如果要详细说 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 代码就在那里躺着,实现方式就是脚本。看过了之后再下判断也不迟。 |
51
zuotun 242 天前
我游戏本在节能模式下用 btop 看了一下功率居然到了接近 40W ,在降低亮度之后也三十多,nvidia-smi 看显卡功率大约 10W ,别的地方是省不下来了,想问一下 Arch 怎么禁用独显?之前试过 optimus-manager 重启后桌面直接起不来。
|
52
Donduck 242 天前
@kuanat #49 锐龙这个东西会导致相同 EPP 下 AC/DC 出现明显的调度区别
https://github.com/FlyGoat/RyzenAdj/wiki/Options#ac-mode--dc-mode |
53
zhuisui 242 天前
|
55
Maboroshii 242 天前 via Android
不可否认 linux 桌面一天比一天更好了
|
56
kuanat 242 天前
@Donduck #52
这个本来是想放到第三层里说的。有能力通过 ec/smu/acpi 方式去调节的话,确实比系统自带的方式好。因为是硬件平台相关的,所以没有什么通用性。(我感觉 6000 系之后离电性能限制就很小了,不清楚是不是个例) 追根溯源的话,Intel/AMD 的市场竞争导致双方都在比拼频率,毕竟评测的时候会好看一些。原本默频应该是芯片工艺的甜点,睿频功耗高但是能换来一定提升。现在标定的默频都已经是睿频水平了,睿频实际上在 HWP 调度下变成了出厂灰烬超频。结果就是续航不理想,然后 AMD 那边 BIOS 还有平台配套开发不太给力,所以简单一刀切限制了离电性能。 对于普通用户来说,在没有这样的应用的情况下,想要调节就很困难了。多数都是通过逆向厂家给的控制程序,判断是 WMI 还是 ACPI 方式,又或者是 EC/SMU 控制,然后在 Linux 写程序还原这个操作。 |
57
LJNlol 242 天前
emmm ,我倒是觉得题主说的都是实打实的东西,每一条很明显题主都是自己用过的才有这种感受
为什么我敢这样说?因为我在笔记本上(型号,2022 年幻 15 )日用了两年 Linux ,期间试过很多发行版,目前主力是 Fedora ,也尝试过题主提到的那些方法来“节约电量”,甚至题主提到的不少坑我都踩过。最后还是发现,买个轻薄本才是最佳续航延长方法。😂 或者这么说吧,在 windows 下能拿到长续航的电脑,在 linux 下也不会差太多(只要设置正确)。在 win 下本来就拉胯的电脑,别指望着换个系统就能神奇的提升许多续航。 |
58
MrKrabs 242 天前
/etc/systemd/logind.conf
HandleLidSwitch=ignore 懒得信 linux 和 intel |
59
Donduck 242 天前
@kuanat #56 锐龙现在的基础频率是比较高的,个个都 3.xGHz ,英特尔这边低一些
其实还是 Windows 更方便控制,1511 开始支持调节 HWP ,1709 开始支持调节 QoS 的频率和 EPP ,19H1 开始支持游戏模式根据焦点窗口自动切换设置 |
60
kwater 242 天前
ubuntu 或 fedora 认证过的硬件
甚至针对具体版本 ,可以在官网搜到可靠的 HCL 。 照着型号买笔电,ubuntu 的话使用对应的 oem kernel 版本,就能实现与 OS 特性对齐,hw vendor 预期的续航。 |
61
kwater 242 天前
和营销号翻来覆去炒的 tips 一样,
除非你时间太多,各种奇技淫巧都会变成压死耐心的最后一根稻草 不是为了修电脑去买它,电脑的价值是用出来的。 |
62
kuanat 241 天前
@Donduck #59
我用 Windows 很少,不确定是不是因为 AMD 给 Windows 的调度驱动更完善一些。论方便的话 Linux 发挥一下想象力,有各种实现方式。 基于焦点的切换(不仅仅是游戏模式)我之前在 Linux 尝试过,个人感觉不太好用,因为我一般是后台编译 rust 的时候就切走了。实现也比较简单,sway IPC 监控一下焦点切换消息就好了。 现在用得最多的是快捷键切换,然后状态栏上有个图标响应当前状态。 这个功能比较“标准”的做法是模仿 inhibitor 的模式,写个 loader 脚本,用 loader 启动想要高性能运行的应用,应用结束了 loader 退出也就结束高性能状态。 |
63
DefoliationM 241 天前 via Android
Ubuntu 确实费电,因为它会自带一些没用的后台服务
|