本帖最后由 郭鹏飞 于 2020-3-16 22:25 编辑
第一次发帖,如有描述不确切之处,还请各路大神指正。
特别提醒:对BIOS进行修改属于高风险操作,可能会造成变砖、不开机等现象,请三思而后行,本教程恕不承担相关责任!!!
特别提醒:对BIOS进行修改属于高风险操作,可能会造成变砖、不开机等现象,请三思而后行,本教程恕不承担相关责任!!!
特别提醒:对BIOS进行修改属于高风险操作,可能会造成变砖、不开机等现象,请三思而后行,本教程恕不承担相关责任!!!
一、前言
笔者有一台美帝良心想YOGA 4 PRO(YOGA-900),3K屏,核显为HD520,可以通过修改DVMT Pre-Allocated为96M实现免驱启动,奈何BIOS中相关设置被隐藏,且无法通过grub命令行中setup_var方法进行修改(有写保护)。爬帖无数,综合了贴吧和国外论坛的方法,终于找到一种通过纯软件修改BIOS中相关参数的方法,相对于硬刷,操作简单且风险相对较小。以此类推还可以实现其他参数修改,如解锁CFG Lock、SATA模式改AHCI等。
本教程理论上InsydeH2O系列BIOS均可参考,但目前仅在联想YOGA3PRO,YOGA4PRO机型上进行过测试,若是其他厂商BIOS可借鉴本文思路,自行查找类似工具
在此,感谢两位原贴主的辛勤奉献,链接如下
Insyde BIOS 提取修改刷入全
How to Unlock the NVMe Performance on the Lenovo Y700
话不多说,下面直接开整
二、实现方法(以联想YOGA 4 Pro为例,WIN10x64/WIN10x64PE环境均可)
1、通过官网下载BIOS升级文件后解压或使用Flash Programming Tool直接提取等方法获取本机BIOS镜像文件
(1)官网下载后解压(推荐)
使用压缩软件将下载的exe文件解压,可得到下图所示的BIOS镜像文件
(2)若第一种方法无法实现,可采用以下方法,打开合适版本的Flash Programming Tool文件夹,右键以管理员身份运行“读取BIOS镜像.bat”,读取当前BIOS芯片内容,读取成功将生成backup.fd文件,若运行失败出现error.log文件,可查看具体错误信息并更换Flash Programming Tool版本后再试,路径为Intel CSME System Tools\Flash Programming Tool\WIN64,将bat文件拷入即可使用。
下图为正在读取BIOS芯片内容
2、利用H2OEZE工具打开获取到的.fd镜像文件,按图示方法提取出其中的SetupUtility模块,并使用Universal IFR Extractor进行翻译
如下图,我们将SetupUtility模块保存为su.ffs文件
如下图,使用Universal IFR Extractor对su.ffs进行翻译,得到一个su IFR.txt文件
3、打开上面得到的su IFR.txt文件,搜索要修改的参数值,并记录下要修改的地址和要修改的值(以修改DVMT为96M为例)
搜索到相关内容如下:
- 0x78DB8 Setting: DVMT Pre-Allocated, Variable: 0x180 {05 91 33 0D 57 0D 00 0A 34 12 80 01 10 10 00 FE 00}0x78DC9 Option: 0M, Value: 0x0 {09 07 34 0D 00 00 00}0x78DD0 Option: 32M, Value: 0x1 {09 07 35 0D 30 00 01}0x78DD7 Option: 64M, Value: 0x2 {09 07 36 0D 00 00 02}0x78DDE Option: 96M, Value: 0x3 {09 07 37 0D 00 00 03}0x78DE5 Option: 128M, Value: 0x4 {09 07 38 0D 00 00 04}0x78DEC Option: 160M, Value: 0x5 {09 07 39 0D 00 00 05}0x78DF3 Option: 192M, Value: 0x6 {09 07 3A 0D 00 00 06}
复制代码 Variable: 0x180表示该参数存储地址为180(16进制)
Option: 96M, Value: 0x3 表示96M DVMT显存对应参数值为3(16进制)
4.打开H2OUVE文件夹,右键以管理员身份运行“读取参数表.bat”,提取当前BIOS的参数表,保存为vars.txt
6.用文本编辑器打开vars.txt,搜索Setup区,注意,该区名称只含Setup,如下面所示
- [054] Setup
- GUID: A04A27F4-DF00-4D42-B552-39511302113D
- Attributes: 0x7
- DataSize: 0xFA0
- Data:
- 00000000: 00 00 00 00 00 00 00 00 01 00 00 03 04 00 00 00
- ......
复制代码
找到刚刚记录的DVMT设置的地址(本例为180),可以看到,读取的值为01——对应32M,然后将该地址的值改为96M对应的Value值(本例应改为03),如需修改其他参数,以此类推,修改完成后,保存
7.右键以管理员身份运行“写入参数表.bat”,把参数表写回BIOS芯片
因为BIOS中部分区域是不可写,所以会出现一些错误提示,直接忽略就好
写完后可以再读取出来看看是否成功修改
至此,修改已经完成了,下面是需要用到的文件:
本教程使用的相关软件:
如果Flash Programming Tool、IFR Extractor需要更换其他版本的,可从以下链接获取:
其他版本工具 https://pan.baidu.com/s/1lIAAN_hGVytgRTovgx8fDQ提取码 t6fk
|