oflyhigh avatar

和Intel NUC较劲的第N天:现代待机(Modern Standby S0) vs S3

oflyhigh

Published: 24 May 2022 › Updated: 24 May 2022和Intel NUC较劲的第N天:现代待机(Modern Standby S0) vs S3

和Intel NUC较劲的第N天:现代待机(Modern Standby S0) vs S3

之前的帖子中提到我买了一个INTEL NUC 11代迷你主机,然后发现一堆一堆的问题,比如说会频繁出现无法关机、无法从待机状态恢复;又比如说风扇和拖拉机一样巨响无比;又比如说偶尔出现过热关机等问题。

image.png
(图源 :pixabay)

就说这个无法关机、无法从待机状态恢复吧,折腾了我好长时间,最终我刷了N次BIOS,又换了一台显示器(以及对应的HDMI线缆),它属实康复了一段时间。但是不幸被我朋友说中了,过了几天它又犯病了。

一怒之下,我去商家那提交了售后申请,决定要么商家给我换一台不出BUG的机器,要么给我退货。不过商家的技术支持给我发来一堆技术文档,并和我说自己最近才入职,从来没有遇到过我这样的问题,然后说退换货都要走检测流程。

想想可能极其漫长的检测流程以及如果退货,可能我的64G金士顿内存,以及1T的三星980 PRO都会变得无处安置。另外我几乎可以确定是BIOS BUG,或者说BIOS和Windows 10最新补丁不兼容,或者说显卡驱动BUG的问题,这些大概都可以算作软件(以及固件)范畴,机器大概是没毛病的。

于是最终我又选择了忍耐,继续和NUC较劲,比如说无法关机的问题,最终我采取的方式是使用DP线连接显示器,既然是显卡驱动中HDMI BUG导致的问题,那咱就不用HDMI了呗。

又比如风扇巨响,最终我选择的监测PCH而不是监测CPU温度——据说(INTEL 官方技术文档上说的,但是后来我找不到了)监控CPU温度时,自定义风扇策略会失效。修改完成后,目前风扇运行良好。

不过关于风扇问题,我打算过一段时间拆机,把导热硅脂换一下,如果可以的话,再给风扇添加点润滑剂(我现在不确定NUC11的风扇能不能拆开),想必N管齐下,风扇也不是问题。

我甚至考虑在淘宝买个NUC主机的机箱,不用NUC自带的外壳了,淘宝全铝的机箱,加上巨大的静音风扇,想必能彻底解决风扇噪音问题,不过全套下来要千八百大洋,想想还是忍了。

image.png
(图源 :pixabay)

除了上述问题,我最近还注意到一个很严重的问题,就是睡眠模式(待机)后,机器似乎还在运转,尤其是风扇还在呜呜呜地转,这又是咋回事呢?这NUC也太不靠谱了吧?

然后查了一下,貌似这回这事还真不赖NUC11,原来是Windows默认选择了S0待机而不是S3待机,这两者又有什么区别呢?详情可以参考这篇文章:System Sleeping States

image.png
(图源:https://docs.microsoft.com)

用Microsoft的说法是,S3是比较老旧的,而S0待机才是先进的,有N多好处,详情可以参考:What is Modern Standby 以及Modern Standby vs S3

我简单的理解就是S0待机类似于手机的关闭,后台连接还在保持,有电话或者微信视频啥的还能进来还会响铃,然后一按电源键迅速恢复。而S3呢,就是除了内存不断电,其它都断电,这样就省电,而且也可以迅速恢复到工作状态。(不一定准确)。

所以S0时,风扇还在工作(因为其它部件也还在工作,尽管可能是低电模式工作),所以就会听到呼呼呼的风扇声,如果后台有程序使劲干活(比如Windows update),那么风扇就会嗷嗷叫,就有可能出现超温死机的状况。

既然如此,那么把S0改成S3就可以了呗,结果一看Microsoft的文档:Modern Standby FAQs,里边有这样的问答:

Q: Can I switch between S3 and Modern Standby by changing a setting in the BIOS?
A: No, switching the power model is not supported in Windows without a complete OS re-install.

就是说,微软官方说,除非重装系统,否则无法从S0模式(Modern Standby)切换回 S3模式,这不是要了老命了吗?

查了一下,切换回S3模式,还要自己修改Windows安装镜像,详情请参考:Enable S mode,先不说这个操作有多难,就是重装这事,我也受不了呀!

好在,网络上不乏探索者,我找啊找啊,发现只要操作注册表就可以实现启用S3模式。大致步骤如下:

  • 删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\ModernSleep下的EnableAction KEY
  • Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power添加PlatformAoAcOverride(DWORD 32-bit)并使用默认值0
  • 重启后如果还无效,则在上述路径中添加 CsEnabled(DWORD 32-bit)并使用默认值0 (据说新版本的Windows这个设置无效)

我操作前两步后,发现可以进入S3待机了,风扇也不响了。或许直接用第二步就可以,不过我没去尝试(参考:Disabling modern standby

除了直接操作注册表以外,我们还可以使用命令行方式操作注册表(需要使用管理员权限)来关闭或打开Modern Standby:

关闭:

reg add HKLM\System\CurrentControlSet\Control\Power /v PlatformAoAcOverride /t REG_DWORD /d 0

恢复:

reg delete "HKLM\System\CurrentControlSet\Control\Power" /v PlatformAoAcOverride

现在明显的一个后遗症就是BIOS中不支持设置S3待机的指示灯状态,所以我之前设置的待机时黄灯闪烁以及无效了,又变成默认的蓝灯闪烁,不过这些无所谓了,比后台活着,风扇嗷嗷响强100倍!

image.png
(图源 :pixabay)

当然了,也不知道这样改有没有啥后遗症,也许哪天NUC就爆炸了,到时候再说吧。

如果有同样问题,想做相同修改的,一定要慎之又慎,爆炸了可别怪我哦。

相关链接

Leave 和Intel NUC较劲的第N天:现代待机(Modern Standby S0) vs S3 to:

Written by

Programmer, Maker, Freelancer, Witness. Make friends, Make money, Make life better!

Read more #cn posts


Best Posts From oflyhigh

We have not curated any of oflyhigh's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.

More Posts From oflyhigh