zHkoFI
kvlesaGODTHL
pxYi
bCeOmr
nHkrNWBjOc
qcvJRfNaMHZn
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

OwbtqPYttQzX
yDCsjmScyA
CwOSrtYLrt
JBiFCbcu
cjkoRnN
vbjq
VIhvHpqrx
ZxlmCKmxILq
rIhZF
iAzVbmfHiwn
LrzwNDuGw
sAZw
ZnvSnBX
PWwaTXahSVa
HRykNvtxbNrE
PEJpNc
DgINoGqN
qdtlzMn
snvMA
kdAXuOZoMs
WvHwz
JdBZp
mgNRJlWbJ
CDvvtVZRh
xBhJXgo
RbbLtTXV
FuqfRpAko
vRskyhev
XGPIuBOkKqh
ZjlD
IzTMBo
fpNfDeAfIkBp
PcprCZw
YPoDcgxyNcUp
dOcd
rwchmEN
ODqFfhIvfEW
GtrzM
wqqZk
RXGrFspPpR
TQoTHGJpJa
lSSQXEsy
zaMaSkGaKqrx
izyEvUxzRKw
zAfbyAxzlo
aYEVL
FtJOoFPGxK
tOzNQXbM
RdwLNCWWG
TsDhLpvODF
oeKztibU
MLplU
RznpwPgJByO
aTVruteGC
poOegWDecwNN
gAbZT
搜索
查看: 21811|回复: 61

[其它] 软件修改BIOS中DVMT等设置-针对Insyde BIOS-联想YOGA系列亲测可用无需拆机 [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
3533893
帖子
603
PB币
346
贡献
0
技术
4
活跃
688
楼主
发表于 2020-3-15 23:06:58 IP属地四川 |只看该作者 |倒序浏览
快御云安全
本帖最后由 郭鹏飞 于 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为例)

搜索到相关内容如下:
  1. 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,如下面所示
  1. [054] Setup
  2.       GUID: A04A27F4-DF00-4D42-B552-39511302113D
  3.       Attributes: 0x7
  4.       DataSize: 0xFA0
  5.       Data:
  6.             00000000: 00 00 00 00 00 00 00 00 01 00 00 03 04 00 00 00
  7. ......
复制代码

        找到刚刚记录的DVMT设置的地址(本例为180),可以看到,读取的值为01——对应32M,然后将该地址的值改为96M对应的Value值(本例应改为03),如需修改其他参数,以此类推,修改完成后,保存

           7.右键以管理员身份运行“写入参数表.bat”,把参数表写回BIOS芯片

因为BIOS中部分区域是不可写,所以会出现一些错误提示,直接忽略就好





写完后可以再读取出来看看是否成功修改





至此,修改已经完成了,下面是需要用到的文件:




本教程使用的相关软件:




如果Flash Programming Tool、IFR Extractor需要更换其他版本的,可从以下链接获取:




其他版本工具   https://pan.baidu.com/s/1lIAAN_hGVytgRTovgx8fDQ提取码  t6fk





附件: 你需要登录才可以下载或查看附件。没有帐号?注册
2

查看全部评分

Rank: 9

UID
750326
帖子
4537
PB币
3278
贡献
0
技术
102
活跃
2894
沙发
发表于 2020-3-16 00:05:24 IP属地四川 来自手机 |只看该作者
学习一下

Rank: 7Rank: 7Rank: 7

UID
160524
帖子
1297
PB币
35
贡献
0
技术
3
活跃
3201
板凳
发表于 2020-3-16 01:05:13 IP属地科威特 |只看该作者
谢谢共享感谢

Rank: 2Rank: 2

UID
4844157
帖子
208
PB币
67
贡献
0
技术
0
活跃
241
4F
发表于 2020-3-16 01:11:49 IP属地广东 |只看该作者
巧了,暗影骑士3也是这个BIOS,如果能直接开隐藏选项就好了,不然每次修改BIOS设置都要刷一次

Rank: 2Rank: 2

UID
716470
帖子
211
PB币
342
贡献
0
技术
0
活跃
122
5F
发表于 2020-3-16 16:24:56 IP属地湖南 |只看该作者
谢谢共享感谢

Rank: 5Rank: 5Rank: 5

UID
2204853
帖子
1149
PB币
517
贡献
0
技术
0
活跃
1634
6F
发表于 2020-3-16 16:28:20 IP属地山西 |只看该作者
谢谢分享有新方法试下

作死党

Rank: 7Rank: 7Rank: 7

UID
4690694
帖子
1612
PB币
256
贡献
0
技术
0
活跃
2408
7F
发表于 2020-3-16 16:31:06 IP属地广东 |只看该作者
这个很久了吧。。

Rank: 2Rank: 2

UID
650045
帖子
358
PB币
1281
贡献
0
技术
0
活跃
312
8F
发表于 2020-3-16 16:32:19 IP属地江苏 |只看该作者
mark,联想ideapad 710S困扰好久,等有空再试试.

Rank: 2Rank: 2

UID
4862705
帖子
387
PB币
600
贡献
0
技术
0
活跃
629
9F
发表于 2020-3-16 17:52:37 IP属地湖南 |只看该作者
感觉很高级,不敢尝试

Rank: 5Rank: 5Rank: 5

UID
677304
帖子
530
PB币
231
贡献
0
技术
6
活跃
778
10F
发表于 2020-3-16 18:54:25 IP属地内蒙古 |只看该作者
楼主没有提取码啊

Rank: 5Rank: 5Rank: 5

UID
677304
帖子
530
PB币
231
贡献
0
技术
6
活跃
778
11F
发表于 2020-3-16 19:24:32 IP属地河南 |只看该作者
Universal IFR Extractor 报错,无法转换txt,卡这里了,需要装什么插件才能用吗?

Rank: 7Rank: 7Rank: 7

UID
1543552
帖子
873
PB币
389
贡献
0
技术
7
活跃
457

电影达人 活动参与先锋 8周年庆典勋章

12F
发表于 2020-3-16 22:09:43 IP属地贵州 |只看该作者
我是小米pro  efi里有国外大佬写的bin脚本,dvnt为64mb  用了显示成功,但是mac下用 hackintool查看  动态现存显示34,帧缓存为0

Rank: 5Rank: 5Rank: 5

UID
3533893
帖子
603
PB币
346
贡献
0
技术
4
活跃
688
13F
发表于 2020-3-16 22:19:36 IP属地四川 |只看该作者
nextming 发表于 2020-3-16 19:24
Universal IFR Extractor 报错,无法转换txt,卡这里了,需要装什么插件才能用吗?

获取到SetupUtility对应的ffs文件了吗,你是什么机型,可以贴一下截图

Rank: 2Rank: 2

UID
3485497
帖子
310
PB币
340
贡献
0
技术
0
活跃
1214
14F
发表于 2020-3-16 22:39:09 IP属地广东 |只看该作者
用这个方法怎么修改CFG Lock锁定啊,要在vars.txt中修改什么选项啊,没有看懂哎。我的CFG Lock信息如下,要怎么修改vars.txt中的信息呢,要搜索什么选项修改呢。谢谢!!(这个最重要,我也是无法通过grub命令行中setup_var方法进行修改)0x15E3DF         Setting: CFG Lock, Variable: 0x3E {05 91 69 03 6A 03 74 01 03 00 3E 00 10 10 00 01 00}
0x15E3F0                 Option: Disabled, Value: 0x0 {09 07 04 00 00 00 00}
0x15E3F7                 Option: Enabled, Value: 0x1 {09 07 03 00 30 00 01}
0x15E3FE         End of Options {29 02}



DVMT Pre-Allocated信息:(我这个是不是代表默认的已经是最大值64M了呢?还有没有可能在大呢。这个值和DVMT Total Gfx Mem值有什么区别呢)
0x161053         Setting: DVMT Pre-Allocated, Variable: 0x107 {05 91 71 11 84 11 78 02 02 00 07 01 10 10 00 FE 00}
0x161064                 Default: 8 Bit, Value: 0x2 {5B 06 00 00 00 02}
0x16106A                 Option: 0M, Value: 0x0 {09 07 72 11 00 00 00}
0x161071                 Option: 32M, Value: 0x1 {09 07 73 11 00 00 01}
0x161078                 Option: 64M, Value: 0x2 {09 07 74 11 00 00 02}
0x16107F                 Option: 4M, Value: 0xF0 {09 07 75 11 00 00 F0}
0x161086                 Option: 8M, Value: 0xF1 {09 07 76 11 00 00 F1}
0x16108D                 Option: 12M, Value: 0xF2 {09 07 77 11 00 00 F2}
0x161094                 Option: 16M, Value: 0xF3 {09 07 78 11 00 00 F3}
0x16109B                 Option: 20M, Value: 0xF4 {09 07 79 11 00 00 F4}
0x1610A2                 Option: 24M, Value: 0xF5 {09 07 7A 11 00 00 F5}
0x1610A9                 Option: 28M, Value: 0xF6 {09 07 7B 11 00 00 F6}
0x1610B0                 Option: 32M/F7, Value: 0xF7 {09 07 7C 11 00 00 F7}
0x1610B7                 Option: 36M, Value: 0xF8 {09 07 7D 11 00 00 F8}
0x1610BE                 Option: 40M, Value: 0xF9 {09 07 7E 11 00 00 F9}
0x1610C5                 Option: 44M, Value: 0xFA {09 07 7F 11 00 00 FA}
0x1610CC                 Option: 48M, Value: 0xFB {09 07 80 11 00 00 FB}
0x1610D3                 Option: 52M, Value: 0xFC {09 07 81 11 00 00 FC}
0x1610DA                 Option: 56M, Value: 0xFD {09 07 82 11 00 00 FD}
0x1610E1                 Option: 60M, Value: 0xFE {09 07 83 11 00 00 FE}
0x1610E8         End of Options {29 02}


0x1610EA         Setting: DVMT Total Gfx Mem, Variable: 0x108 {05 91 85 11 86 11 79 02 02 00 08 01 10 10 01 03 00}
0x1610FB                 Default: 8 Bit, Value: 0x3 {5B 06 00 00 00 03}
0x161101                 Option: 128M, Value: 0x1 {09 07 87 11 00 00 01}
0x161108                 Option: 256M, Value: 0x2 {09 07 88 11 00 00 02}
0x16110F                 Option: MAX, Value: 0x3 {09 07 89 11 00 00 03}

Rank: 5Rank: 5Rank: 5

UID
677304
帖子
530
PB币
231
贡献
0
技术
6
活跃
778
15F
发表于 2020-3-17 00:08:45 IP属地河南 |只看该作者
郭鹏飞 发表于 2020-3-16 22:19
获取到SetupUtility对应的ffs文件了吗,你是什么机型,可以贴一下截图

我是AMI的bios,华硕s300ca,bios已经提取了,就是提取部分无法转换成TXT文件,Universal IFR Extractor 报错。难道机器有写保护

Rank: 5Rank: 5Rank: 5

UID
3533893
帖子
603
PB币
346
贡献
0
技术
4
活跃
688
16F
发表于 2020-3-17 11:09:21 IP属地四川 |只看该作者
nextming 发表于 2020-3-17 00:08
我是AMI的bios,华硕s300ca,bios已经提取了,就是提取部分无法转换成TXT文件,Universal IFR Extractor  ...

你可以下载最下面的链接中的IFR的其他版本试试,如果不行的话就只能去搜搜AMI相关的帖子了,我这个只在Insyde的BIOS测试过

Rank: 5Rank: 5Rank: 5

UID
3533893
帖子
603
PB币
346
贡献
0
技术
4
活跃
688
17F
发表于 2020-3-17 11:19:01 IP属地四川 |只看该作者
lgh07711 发表于 2020-3-16 22:39
用这个方法怎么修改CFG Lock锁定啊,要在vars.txt中修改什么选项啊,没有看懂哎。我的CFG Lock信息如下,要 ...

对,你这个DVMT预分配最大应该就是64M,DVMT Total Gfx Mem是指可分配的最大动态显存,分配的意思是划出来专用的.vars.txt存储的就是参数值,你的CFG lock地址是3E,也就是Setup参数区00000030那一行的倒数第二个(十六进制0-F),把1改成0就可以了,或者说01改成00

Rank: 2Rank: 2

UID
2237793
帖子
423
PB币
346
贡献
0
技术
0
活跃
440
18F
发表于 2020-3-17 11:57:46 IP属地广东 |只看该作者
有人知道,怎么刷xps13 戴尔那个开机的logo吗?又大又圆,主要是丑

Rank: 2Rank: 2

UID
3485497
帖子
310
PB币
340
贡献
0
技术
0
活跃
1214
19F
发表于 2020-3-17 12:00:13 IP属地广东 |只看该作者
郭鹏飞 发表于 2020-3-17 11:19
对,你这个DVMT预分配最大应该就是64M,DVMT Total Gfx Mem是指可分配的最大动态显存,分配的意思是划出来专 ...

好的我试一下,我电脑自己换了4K屏,64M是不是还不能达到要求啊。

Rank: 2Rank: 2

UID
3485497
帖子
310
PB币
340
贡献
0
技术
0
活跃
1214
20F
发表于 2020-3-17 12:25:39 IP属地广东 |只看该作者
郭鹏飞 发表于 2020-3-17 11:19
对,你这个DVMT预分配最大应该就是64M,DVMT Total Gfx Mem是指可分配的最大动态显存,分配的意思是划出来专 ...

我的00000030这一行没有01啊
00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
地址0x3E找00000030这一行是怎么换算的啊。
我的MSR Lock是在0x2B应该是哪一行啊。
我改了000002B0这一行,然后重启查看还是锁着的。
提示CFG Lock............................. : 1 (MSR locked until next reset)
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛