和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就爆炸了,到时候再说吧。

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

相关链接

Sort:  

补充一个修改组策略的,没试过是否有用
感觉可能组策略这个只能解决是否出现对应选项的问题

https://docs.microsoft.com/en-us/answers/questions/357764/no-sleep-option-standby-s3-the-current-device-guar.html

欧哥如果是我的邻居就好,我肯定抱着两机箱上门,求欧哥帮忙安装一下😂😂

拿来吧

高手,这么高端的操作都得心应手。
只能仰望,无法触及。
神一样的o哥

高手👍👍