联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC 您所在的位置:网站首页 19是偶数吗 联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC

联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC

2023-03-10 05:47| 来源: 网络整理| 查看: 265

联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC 联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC

文章目录 联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC说明一、我的电脑二、详细过程1.BIOS选项2.查阅改BIOS的资料3.修改BIOS失败4.换个思路:不修改BIOS%2f5.Wake on Lan原理6.尝试Wake on Lan失败7.修改BIOS成功8.查找唤醒相关的BIOS参数9.Wake on AC 总结State After G3Wake on Lan

说明

我本身对硬件和系统底层一窍不通,这个本来很简单的功能折腾了整整两天。所以想到要写日志记下来。日志写的比较杂,但是我发现B站的拯救者官方账号有150w的粉丝,所以挂在博客上,希望对大家有帮助。

本文涉及到对BIOS的修改,由于硬件环境不同,可能会导致无法开机,并且无法保修。注意:At Your Own Risk

一、我的电脑

拯救者R720-15ikbn,6-7年前的电脑了。618打算购置显示器,所以笔记本打算盖上,然后用一个立式支架撑起来。但是屏幕盖上后,电源开关就被遮住了,这个时候就需要通过外部的手段开机。可以是Wake on AC或者Wake on Lan。我刚好有一个天猫精灵的公牛插座。所以一开始打算用通电开机的办法,但是由于BIOS上一直找不到相关的参数,无奈这两天都在研究Wake on Lan了。结果很郁闷,研究的时候无意中发现了通电自启的选项,Wake on Lan反而搞不定…

二、详细过程 1.BIOS选项

首先不管是Wake on AC还是Wake on Lan,都要开启对应的BIOS参数。查了资料,一般和电源相关的设置,按理说应该放在Power相关的项目里。联想的拯救者,还有神州、雷神的一部分型号使用的BIOS是InsydeH20 Setup Utility。按F2进入BIOS只会显示Information、Configuration、Security、Boot、Exit几个选项卡。当我发现别人的BIOS有非常多多参数,自己的只有这么一点,我意识到这些参数应该被隐藏了。然后就要解锁这些隐藏的菜单,进入对BIOS的修改过程

2.查阅改BIOS的资料

刚开始我在B站找到了两个视频(感谢万能的B站): BIOS高级菜单解锁(雷神zero) 神舟 华硕 联想各个品牌bios通用解锁教程 解锁功耗墙 延长鸡血时间 内存超频 解放电脑性能

在Windows上直接修改BIOS,要安装一个叫做Intel® Management Engine Interface的驱动,这个在联想官方的驱动页面上可以下载到。有了这个接口,我们根据这个接口的版本,可以在第三方找到对应版本的修改工具,下面是B站UP提供的网盘地址: 第3方汇集 Intel CSME System Tools

下载了压缩包以后,只需要解压Flash Programming Tool/WIN64下的FPTW64和两个dll文件。FPTW64可以在命令行下用于备份BIOS镜像和刷写BIOS镜像。备份了BIOS镜像后,我们要使用从镜像中提取和菜单相关的SetupUtility文件,对其反编译。反编译的文件中,会有Grayoutif和Suppressif这样的关键字,参考Step to UEFI (146)Grayoutif ,Suppressif和Setup联动的探索

Grayoutif和Suppressif是比较常用的控制命令。Grayoutif的作用是设定某一个 item 跟随另一个 item 的变化而被设置为灰色无法修改【参考1】。Suppressif的作用是设定某一个 item 跟随另一个 item 的变化而被自动隐藏【参考2】。

B站的UP通过简单调整和这两个关键字相关的布尔值实现对BIOS的解锁。

大家感兴趣可以看下上面两个视频,顺便把评论区翻一翻

3.修改BIOS失败

因为只是简单地调整逻辑表达式,而没有对变量做实际的修改,所以视频介绍的方法不太可能对BIOS功能本身造成影响。 照着视频操作了一波,重启按F2,没效果。 考虑到可能是BIOS的版本太旧。我的版本是4KCN23WW,所以到官网上找最新的驱动。无奈我的电脑好像已经被联想淘汰掉了,找不到我的R720的驱动页面,只能下载Y520的4KCN45WW安装。安装完重新照着视频的方法进行操作,可是在对提取出的SetupUtility进行反编译时,直接死循环了。。。无奈只能通过上面提到的FPTW64工具把我刚开始备份的4KCN23WW驱动刷回去,结果刷的时候提示Writing Protection,大概是这个版本的BIOS有特殊的保护机制 然后我又去驱动页面找了历史的BIOS驱动版本4KCN28WW回来重新安装,安装前在BIOS上打开了一个叫做BIOS BACK FLASH的参数,好像是版本回退相关的参数,不懂但是打开以防万一 然后,只能再想其它办法了。。。

4.换个思路:不修改BIOS%2f

在上面反编译出的SetupUtility文件中,可以直接搜索BIOS的菜单条目。所以重点关注下Power选项卡下的条目。无奈我在这个文件中没有发现和AC还有Power关键字相关的任何和通电自启的条目。但是在Power下有一个Wake on PME和Wake on Modem Ring,Modem Ring好像和电话线相关的,应该是通过打电话开启电脑%2f另外的一个PME Event Wake Up:Short for Power Management Event(电源管理事件),就是通过操作鼠标、键盘等设备进行开机,而Wake on Lan也是其中一种。 结合文章Step to UEFI (146)Grayoutif ,Suppressif和Setup联动的探索中提到的:

这两个选项都不会影响被设置的Item的设定值,比如,选项隐藏之前是 Enabled 的,那么虽然隐藏掉了, 实际取值还是 Enabled。上面的结论可以通过设置之后进入 Shell 使用 dmpstore 命令查看对应的变量来验证。

虽然BIOS条目被隐藏了,但是实际上变量都是有值的。而在反编译出的文件中,刚好Wake on PME条目的默认值是Enabled。

0xB7854 Setting: Wake on PME, Variable: 0x86 {05 91 16 15 17 15 02 04 34 12 86 00 04 10 00 01 00}0xB7865 Option: Disabled, Value: 0x0 {09 07 0B 03 00 00 00}0xB786C Option: Enabled, Value: 0x1 (default) {09 07 0C 03 10 00 01}0xB7873 End of Options {29 02}

没有Wake on AC,而Wake on PME。所以我的解决方案就变成了,不修改BIOS,通过天猫精灵这样的智能家居平台联动Wake on Lan开机。我找到了下面两篇文章: 使用天猫精灵实现计算机WOL网络唤醒 小爱同学网络唤醒(Wake on Lan,WOL)启动电脑

借用第一篇文章里的方案图: 在这里插入图片描述 这里需要家里要有一个软路由或者小型服务器,而我平常没有玩软路由。但是在第二篇文章,提到了他的网件路由器里面刷了梅林%2f我刚好有一个很垃圾网件路由器躺着吃灰。所以我才发现网件是可以刷软路由的。。。而且在Openwrt官网上找到了对应型号的固件。那就开始着手Wake on Lan

5.Wake on Lan原理

关于Wake on Lan,这里有篇文章写得很全面(有个要点:睡眠模式下的网络唤醒是操作系统负责处理的,而关机后,系统没有运行了嘛,所以网络唤醒交由主板处理): WOL 网络唤醒避坑指南:常见问题的分析与内容补充 Wake on Lan缩写WOL,大概是关机后,主板仍对网卡保持微弱的供电,在外面看的时候就是关机后网卡灯还亮着,网卡会监听4343。然后我们可以发送一个特定格式的UDP包,一般叫做魔术包,包的格式是用6个FF开头(6个字节),后面跟上网卡的MAC地址重复16遍。网卡的Mac地址也是6个字节。所以加起来就是6+16*6=102个字节。当对应网卡收到这个包的时候,就会开机。 上面提到的智能家居的联动,需要一个家庭路由器/服务器,就是需要我们在上面跑一个API,当智能家居平台调用这个API时,就会触发向内网中发送一个魔术包。具体实现的话,这个API其实就是跑一个服务器,然后暴露一个接口,接口的具体功能就是发送魔术包。上面的文章用的是python脚本写,然而用java、python都是可以写的,很简单。 这里需要注意的一点是,平常我们的路由器使用DHCP服务器,所以网卡的IP地址可能会变。导致我们的魔术包发送不到准确的ip上。有些教程提到可以在路由上绑定网卡的ip和mac地址。以前我有这么试过,但可能是交换机的问题,直接把包发送给对应的ip,有时候不生效。 所以还有另外一个办法,就是向局域网中发送广播包。例如要给192.168.1.1发送魔术包,但是我们不指定这个ip地址,而是发给192.168.1.255,这样在这个局域网192.168.1.0/24内所有的在线的ip都会收到这个包,当然只有mac地址匹配了,对应的机器才会开机。至于局域网内有哪些设备是在线的%2f直接登录路由器后台就可以看到了

6.尝试Wake on Lan失败

Wake on Lan在Windows下的配置,就是在设备管理器下,选择有线网卡,编辑里面和WOL相关的几个参数,并且勾选Allow this device to wake the computer。我有一个小工具叫做WakeOnLanMonitor,可以监听4343的UDP端口。可以打开这个小工具,然后在安卓端下载WakeOnLan的App,向局域网广播魔术包。这时WakeOnLanMonitor就可以收到魔术包并显示出来。这个工具可以用来检查我们发送的魔术包是否正确。 当设置好网卡后,可以让系统进入Sleep(睡眠),然后测试在Windows系统睡眠的情况下是否能通过网络唤醒。这一步我可以成功。系统进入睡眠后,发送魔术包,键盘灯马上就能亮起。但是关机后,则无法唤醒。这个时候通过登录路由器后台,可以发现,当电脑完成关机后,会马上从路由器后台的在线设备上下掉。说明关机后,主板并没有向网卡供电。 查阅资料后,尝试了以下的办法:

在电源管理中,将"快速启动"取消勾选在电源管理中,修改高级电源设置,将Link State Power Management的Setting从Off修改为Moderate power saving 在这里插入图片描述网卡的属性>高级选项卡中,Green Ethernet、Energy-Efficient Ethernet、Power Saving Mode这些关于节能的选项统统设为Disabled 无奈尝试了诸多方法,反复开关机后,都无法解决关机后网卡断电的问题,无奈只能回到BIOS的思路上来。因为问题最有可能出在BIOS上 7.修改BIOS成功

我在B站又找到了这个视频: 联想拯救者R9000P 解锁BIOS高级选项 升级内存 视频下方提供了一个国外大神只做的工具: [TOOL] Lenovo (H20) Bios Unlocker and Locker 视频里和帖子里的拯救者都是最近的较新的型号,用的是最新的图形化BIOS。但是我在帖子里看到,有位老铁的Y700 15-ISK用这个工具解锁成功。这个型号和我的电脑差不多是同一个时间点推出的。抱着试一试的心态,不行的话要么买编程器回来,要么RNM618直接换新了。。。 下载了exe工具下来,以管理员身份运行,运行完后提示The system could not find the environment option that was entere。但是帖子里有提到这一点。所以直接重启按F2,欧了

8.查找唤醒相关的BIOS参数

解锁菜单后,由于BIOS中的条目是在纷繁复杂,由于在SetupUtility的反编译文件同样为我们提供了关于菜单相关的条目,所以从这个文件中找线索。 在这里插入图片描述 搜索Power,最后是直接搜索Wake,发现了这堆内容,厚礼蟹~

0x9FB88 Suppress If: {0A 82}0x9FB8A Variable 0xAD8 equals 0x20 {12 06 D8 0A 20 00}0x9FB90 Setting: DeepSx Power Policies, Variable: 0x4 {05 91 72 0A 73 0A F6 02 05 00 04 00 10 10 00 06 00}0x9FBA1 Option: Disabled, Value: 0x0 {09 07 04 00 30 00 00}0x9FBA8 Suppress If: {0A 82}0x9FBAA Variable 0xAE3 equals 0x2 {12 86 E3 0A 02 00}0x9FBB0 Variable 0xAE3 equals 0x4 {12 06 E3 0A 04 00}0x9FBB6 Or {16 02}0x9FBB8 Variable 0xAE3 equals 0x3 {12 06 E3 0A 03 00}0x9FBBE Or {16 02}0x9FBC0 End {29 02}0x9FBC2 Option: Enabled in S4-S5/Battery, Value: 0x3 {09 07 74 0A 00 00 03}0x9FBC9 Option: Enabled in S3-S4-S5/Battery, Value: 0x5 {09 07 76 0A 00 00 05}0x9FBD0 Option: Enabled in S3-S4-S5, Value: 0x6 {09 07 77 0A 00 00 06}0x9FBD7 End If {29 02}0x9FBD9 Option: Enabled in S4-S5, Value: 0x4 {09 07 75 0A 00 00 04}0x9FBE0 End of Options {29 02}0x9FBE2 End If {29 02}0x9FBE4 Setting: LAN Wake From DeepSx, Variable: 0x5 {05 91 78 0A 79 0A F7 02 05 00 05 00 10 10 00 01 00}0x9FBF5 Option: Enabled, Value: 0x1 {09 07 03 00 00 00 01}0x9FBFC Option: Disabled, Value: 0x0 {09 07 04 00 30 00 00}0x9FC03 End of Options {29 02}0x9FC05 Suppress If: {0A 82}0x9FC07 Variable 0x2F4 equals 0x0 {12 06 F4 02 00 00}0x9FC0D Setting: Wake on LAN Enable, Variable: 0xC {05 91 E9 04 EA 04 F8 02 05 00 0C 00 10 10 00 01 00}0x9FC1E Option: Enabled, Value: 0x1 {09 07 03 00 30 00 01}0x9FC25 Option: Disabled, Value: 0x0 {09 07 04 00 00 00 00}0x9FC2C End of Options {29 02}0x9FC2E Setting: SLP_LAN# Low on DC Power, Variable: 0xD {05 91 ED 04 EE 04 F9 02 05 00 0D 00 10 10 00 01 00}0x9FC3F Option: Enabled, Value: 0x1 {09 07 03 00 30 00 01}0x9FC46 Option: Disabled, Value: 0x0 {09 07 04 00 00 00 00}0x9FC4D End of Options {29 02}0x9FC4F Setting: K1 off, Variable: 0xE {05 91 EB 04 EC 04 FA 02 05 00 0E 00 10 10 00 01 00}0x9FC60 Default: Other {5B 85 00 00 08}0x9FC65 Value {5A 82}0x9FC67 Variable 0xAD8 equals value in list (0x73, 0x74) {14 8A D8 0A 02 00 73 00 74 00}0x9FC71 64 Bit Unsigned Int: 0x1 {45 0A 01 00 00 00 00 00 00 00}0x9FC7B 64 Bit Unsigned Int: 0x0 {45 0A 00 00 00 00 00 00 00 00}0x9FC85 Conditional {50 02}0x9FC87 End {29 02}0x9FC89 End {29 02}0x9FC8B End {29 02}0x9FC8D Option: Enabled, Value: 0x1 {09 07 03 00 30 00 01}0x9FC94 Option: Disabled, Value: 0x0 {09 07 04 00 00 00 00}0x9FC9B End of Options {29 02}0x9FC9D Setting: EFI Network, Variable: 0x210 {05 91 F9 04 FA 04 FB 02 34 12 10 02 10 10 00 01 00}0x9FCAE Option: Enabled, Value: 0x1 {09 07 03 00 00 00 01}0x9FCB5 Option: Disabled, Value: 0x0 {09 07 04 00 30 00 00}0x9FCBC End of Options {29 02}0x9FCBE End If {29 02}0x9FCC0 Setting: Wake on WLAN and BT Enable, Variable: 0xF {05 91 EF 04 F0 04 FC 02 05 00 0F 00 10 10 00 01 00}0x9FCD1 Option: Enabled, Value: 0x1 {09 07 03 00 00 00 01}0x9FCD8 Option: Disabled, Value: 0x0 {09 07 04 00 30 00 00}0x9FCDF End of Options {29 02}0x9FCE1 Suppress If: {0A 82}0x9FCE3 Variable 0x2FC equals 0x0 {12 06 FC 02 00 00}0x9FCE9 Setting: DeepSx Wake on WLAN and BT Enable, Variable: 0x10 {05 91 F1 04 F2 04 FD 02 05 00 10 00 10 10 00 01 00}0x9FCFA Option: Enabled, Value: 0x1 {09 07 03 00 00 00 01}0x9FD01 Option: Disabled, Value: 0x0 {09 07 04 00 30 00 00}0x9FD08 End of Options {29 02}0x9FD0A End If {29 02}

在BIOS下找到对应的条目,藏在Advanced>PCH-IO Configuration下。百度了下,pch全称为Platform Controller Hub,是intel公司的集成南桥。我没搞懂为什么会藏在这里%2f 在这里插入图片描述

挨个解释下这三条内容

DeepSx Power Policies: 网上搜到的文件:ipc_bios_user_manual_en-US.pdf 里面提到了:If enabled (Enabled), the devices switches itself to idle state, a mode with the lowest power consumption.如果启用 (Enabled),设备会将自身切换到空闲状态,这是一种功耗最低的模式。 这个条目一共有如下的选项 在这里插入图片描述LAN Wake From DeepSx: DeepSx的意思是Deep Sleep State,直译过来就是深度睡眠状态,所以LAN Wake From DeepSx整句话翻译过来就是深度睡眠状态下的局域网唤醒Wake on WLAN and BT Enable: WLAN:就是无线拉,BT就是Bluetooth蓝牙

找到这里,基本上可以认为离成功只差一步之遥了。首先DeepSx Power Policies肯定要开的,看字面意思,直接S4-S5就可以,S4是休眠状态,S5是关机状态。关于这部分内容,上面这篇文章有提到:WOL 网络唤醒避坑指南:常见问题的分析与内容补充。然后就是LAN Wake From DeepSx要Enabled,这就解决了嘛~

结果却出乎意料:在漫长的开机关机过程中,尝试了这三个条目的所有选项,都没能搞定关机后网卡断电的问题。怀疑是在Power的选项上出了问题:主板是硬件,而BIOS是软件,当修改了具体的BIOS参数后,硬件肯定无法主动识别到相关的修改,肯定是由BIOS去触发相应的电路开关进行修改。而曾经的Power选项是隐藏的,是否BIOS从未触发修改过这些隐藏的数值%2f所以尝试,将Wake on PME的Enabled设置为Disabled,开关机后,重新设置为Enabled,仍然无效

9.Wake on AC

折腾到这里已经晚上11点了,累的一笔。打算放弃,洗澡上床睡觉。结果洗澡的时候灵光闪现,恍恍惚惚中想到了偶然看到的State After G3这个参数。 这里头点进去,有两个选项,S0和S5,分别对应开机和关机

在这里插入图片描述 State After G3:G3这个状态好像是系统异常关机,例如停电之类的偶然事件导致的关机。所以为啥里头有一个S0呢%2f试试看%2f把这个值设置为S0,行不行就看G3这个状态如何定义了。如果关机后关闭插座电源也属于G3状态,那就妥了。但是又觉得不太合理%2f洗完澡,抱着试一试的心态,已经不抱什么希望了。关机,关电源插座,开插座,键盘灯亮了,它居然亮了%2f

最后就是在天猫精灵中设置每天晚上0点关闭插座,这样第二天只要唤醒插座,电脑就会自动开机了

总结 State After G3

虽然成功实现了通电自启,但是这个开关State After G3看名字好像不是给通电开机用的。不知道打开这个东西会不会对硬件造成损坏(电压不稳之类的),然而我对硬件也不太懂,有机会再做进一步研究把,但愿我的拯救者还能再活五百年

Wake on Lan

折腾Wake on Lan花了很长时间,最后没有效果很郁闷,想了下大概有几个原因把,等有机会再来更新:

我用FPTW64刷BIOS刷出问题了大神的Unlock执行文件把BIOS改出问题了要实现WOL,还有其它BIOS开关要打开(感觉是这个)这个BIOS对WOL的适配有问题


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有