在提升权限的终端中执行以下命令即可禁用现代待机 (Modern Standby)
reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0
禁用 Modern Standby 后能让系统在睡眠后进入 S3 睡眠状态。相比默认的 S0 (又称 Connected Standby 和 Modern Standby ),S3 睡眠因为只需要给主存供电,省电效果仅次于休眠(耗电等同于关机),此外,由于芯片组基本不工作,S3 可以避免由于程序异常唤醒系统导致睡眠时耗电和发热的问题。S3 相比于 S0 的缺点有无法在睡眠时进行接收邮件、播放音乐、保持闹铃等工作,同时从睡眠中唤醒会需要更长时间(在我的笔记本上大约需要多 0.5-1.0 秒左右),如果没有以上需求,建议禁用 Modern Standby,这样能让电脑“即开即用”,不必担心睡眠时电量被异常消耗。
还有一个推荐的设置,让电脑睡眠超过一定时间后进入休眠状态,我个人设置了 3 小时,可以在高级电源计划中更改。进入休眠状态后不会耗电且能够快速恢复(看硬盘速度)。
1
generic 2021-07-10 23:04:36 +08:00
这什么原理... 我在 Linux 下 ACPI 只报告 S0,根本不支持 S3 。Windows 有什么后门可以让 ACPI 报告 S3,还是说别管它报告什么强行进 S3 就行了...
|
2
Jat001 2021-07-10 23:08:38 +08:00
休眠是什么?显示器都不关的
|
3
shoaly 2021-07-11 00:18:23 +08:00
换过无数个笔记本, win 都经常莫名其妙的被唤醒... 从书包里面拿出来的时候, 电脑烫手不说, 电池已经没电了....
刚刚搜了一下 s3 知识, 猛然惊醒, 可能是我自己的锅, 因为盖上笔记本之后, 我会把鼠标一起丢书包里面 , 但是鼠标并没有关掉, 所以这么多年 win 都是被我自己带的鼠标唤醒的么??? |
5
billgong 2021-07-11 01:14:27 +08:00
@generic 那就没辙了,很多 PC 是系统支持 S0 的情况下强制使用 S0 的,但 ACPI 仍然报 S3 。你 BIOS 都不报 S3,这个除非像当初 XPS 15 那种用 rEFInd 加料,否则无解的。
|
6
billgong 2021-07-11 01:17:53 +08:00
@shoaly 如果你系统支持 S3,那么设备管理器的键盘鼠标类应该可以设置是否 USB 唤醒。不过 S0 就比较尴尬了,要么整机不支持 USB 唤醒,要么就关不掉。比如我的 XPS9300,如果留着 Modern Standby,USB 设备就永远可以唤醒(不过反正机器也不算真正待机,说它被唤醒好像牵强了点儿😓)
|
7
verrickt 2021-07-11 11:23:13 +08:00 via Android
这个对 20H2 不管用吧
|
8
shinko 2021-07-11 11:59:53 +08:00 via iPhone
Evo 认证的笔记本都不支持 s3 了
|
9
autoxbc 2021-07-11 12:09:01 +08:00
为了 PC 向平板过渡,Intel 搞了个 S0ix,微软搞了个 Metro Design,最终都成笑柄
|
12
jim9606 2021-07-12 11:40:59 +08:00
楼主验证过这个选项是重新启用 S3 ( Suspend to RAM )吗?还是只是禁用 S0ix 让系统不睡眠而已?看一下 powercfg -a 提示支持啥状态。
通常 S0ix 改 S3 是要 BIOS 支持更改的,而且按微软文档得重装系统。 @shoaly 用 S3 的建议电源选项禁用唤醒定时器和在设备管理器禁用键鼠唤醒,另外就是先拔电源后合盖。像我设置了接电源不睡眠的不这样做就不会进 S3 。 @billgong 个人感觉如果用无线键鼠的放进包前把开关关掉就好了。我现在搞不懂的是微软是怎么处理 S0ix 状态的非 UWP 应用的,是个别应用滥用了阻止待机的功能,还是 S0ix 就是强行压低功耗频率而已? |
13
dingwen07 OP @jim9606 #12 我不清楚 S0ix 是什么状态,但是原来显示支持 S0 、因为 S0 而禁用 S3 的系统,设置了这个之后目前是 S3
|
14
ysc3839 2021-07-12 13:36:30 +08:00 via Android
@jim9606 印象中非 UWP 应用会暂停运行。可以打开任务管理器后睡眠,等一段时间唤醒,看看任务管理器性能图如何变化。
|
15
generic 2021-07-12 14:41:31 +08:00
@billgong 嗯我修改了 ACPI SSDT 强制让它报告支持 S3 (看起来是需要打开 NVRAM 里的某个开关,但 BIOS 设置里没有对应选项。我把判断开关的 if 语句删除了)。不过进了 S3 之后无法唤醒。可能 BIOS 的 S3 支持确实是有 bug 所以不给选项。
|
17
jim9606 2021-07-12 15:54:02 +08:00
@dingwen07 S0ix 在 powercfg -a 中显示为”待机(S0 低电量待机)“也就是你说的现代待机。这篇专栏详细介绍了这些电源状态( https://zhuanlan.zhihu.com/p/114448236 )你那个看上去应该是真改了 S3 的。
@generic 待机和唤醒需要笔记本的 EC 配合控制,可能不是改个 ACPI 表那么简单。 另外微软将现代待机列为启用设备加密的必要条件,是因为 S3 有什么安全问题吗? |
18
generic 2021-07-12 17:05:54 +08:00
@jim9606 之前有些型号,包括小米的,确实是强制打开 S3 就可以。但是显然这个因机而异,这次运气没这么好。而且以后新机器对 S3 的支持怕是越来越不能指望。
S3 确实有一些安全漏洞,主要是 BIOS 在启动时做的一些检查,在唤醒时没做,使得有可能在挂起时物理替换掉 BIOS 固件,而不经过 BIOS 的签名验证。https://trmm.net/Sleep_attack/ |
19
dingwen07 OP @generic #18 我的 yoga14s 锐龙版,似乎是直接不支持 S0,联想挺给力的
我看了下你说的这个 S3 漏洞,如果我把电脑设置为睡眠一段时间后休眠,这样子和电脑离开我超过这段时间应该就能避免这个漏洞被利用。 |
20
shoaly 2021-07-14 01:51:13 +08:00
@jim9606 所以很傻屌的设计, 笔记本盖子都合上了, 鼠标还能唤醒...... 这在我这个外行看来 就是一行 if 的事情...
|
21
kenvix 2022-07-15 22:53:03 +08:00
妈的,BIOS 没做 S3 睡眠的支持,强行进 S3 再唤醒直接死机了
|