查看: 83671|回复: 55

更新 BIOS 内置的 Intel 核显 vBIOS 和 GOP

  [复制链接]

 成长值: 0

  • TA的每日心情
    闭嘴
    昨天 00:24
  • 发表于 2020-3-21 18:48:16 | 显示全部楼层 |阅读模式

    新玩家您好,马上注册,结交更多好友,享用更多功能!

    您需要 登录 才可以下载或查看,没有账号?注册SMXDIY

    x
    本帖最后由 dsanke 于 2021-11-18 11:15 编辑

    关于 Intel Binary Modification Program 的操作,原帖来自 Fernando's Win-RAID Forum
    感谢原作者 SoniX (同时是 UBU 的开发者),本贴用到的大部分文件也是来自于他。

    写在最前,本文不是给小白看的,看不懂点×就行,不要拿你看不懂的内容来问我,我没义务教你。
    本贴极度不欢迎小白&唐僧,不欢迎无意义回贴,无意义提问不会得到任何回复。
    转贴,必须注明原帖出处,以及原作者 SoniX,同时不要作为商业用途!

    Q:为什么要更新vBIOS和GOP?
    A:因为新CPU内置的新核显,需要新的vBIOS和GOP才能正常工作,所以当你想让BIOS支持原本不支持的新CPU,你就会需要这个操作。

    Q:那我不用核显要不要更新呢?
    A:不用核显,核显的vBIOS和GOP就是摆设,那要不要更新,就看你喜好了,我的建议是不要做无用功。

    Q:更新之后还向下兼容旧CPU吗?
    A:其实我也不知道,但是我还没遇到过不向下兼容的情况。

    首先要科普一些内容:
    1.UEFI BIOS是模块化结构,vBIOS也好,GOP也好,都是存在于独立的模块内的,可以单独替换
    2.vBIOS和GOP内的配置参数,以字节方式存储在在对应的VBT部分(Intel起的名字),且这些参数对不同的设备并不是100%通用的
    3.借助 Intel Binary Modification Program (下文简称BMP),以及VBT对应的BSF文件(还是Intel起的名字,里面详细地写出了VBT里面每个字节(byte)、甚至每个位(bit)是什么作用),我们可以从 VBT 内提取出当前的配置(SSF格式,还是Intel起的名字),并写入到新的 VBT 内
    4.vBIOS的VBT集成在vBIOS内,GOP的VBT在另外的独立模块,所以GOP本体是通用的,任何BIOS里面的GOP都是一模一样的(当然我指的是同版本)
    5.vBIOS和GOP,以及对应的VBT,都存在版本一说,不同版本的vBIOS和GOP,可能使用的VBT是同版本的,这样更新GOP,就可以不更新VBT
    6.VBT版本和vBIOS或GOP的版本不对应,可能会无法亮机(例如GOP v9.0.1082及以上搭配 GOP VBT v212及以下),也可能会有奇怪的BUG(例如笔记本eDP内屏在GOP VBT v221+GOP v9.0.1090以上时会屏幕180°倒置),也有可能恰好没有BUG(或者说是察觉不到)
    7.vBIOS和GOP是独立工作的,二者的版本无关,vBIOS工作在启用CSM时,而GOP工作在纯UEFI时

    你需要学会:
    1.借助UEFITool找到、提取并替换BIOS内的vBIOS和GOP
    2.分析提取出来的vBIOS和GOP的版本,从而得知需要更新到什么版本
    3.借助BMP转移VBT内的设置参数

    你应该已经掌握:
    1.如何刷入修改过的非官方BIOS
    2.如何从失败的刷写中恢复
    3.如何使用任意一款HEX编辑器
    4.基本的文件打开、保存、重命名等操作

    本教程以某Z270主板为例,详细讲解所需操作,理论上可以推广到其他设备,但是我没有做实验,遇到问题还需要你具体分析

    1.首先获取UEFITool(我使用v0.22.4,因为新版本有这个这个两个致命BUG,且又无法在WinPE内运行)
    2.用UEFITool打开BIOS文件,打开搜索框(按Ctrl+F或者File->Search),在 Body 内搜索 HEX Pattern “2456425420”,如图所示
    其实这个字符串就是“$VBT ”(ASCII),Intel 的 VBT 的固定开头就是这个
    1.jpg
    搜索之后,不要关闭UEFITool
    3.按照同样的方法在 Body 内搜索 HEX Pattern “49006E00740065006C00280052002900200047004F0050002000440072006900760065007200000000”
    其实这个字符串就是“Intel(R) GOP Driver”(Unicode),Intel 的 GOP 里面都会有这一句的
    搜索之后,不要关闭UEFITool
    4.接下来在下方的 Message 区域你应该能看到搜索结果,如果是无核显的设备那你可能搜不到内容,这种的你关帖走人就行
    注意:parseFile 这些你不用管,你只需要注意 hex pattern found 字样的提示
    如果存在 found in Padding,也不用管,一般华硕的vBIOS会多放一份放在这里,但是不会调用,我也不知道为什么
    2.jpg
    4.鼠标双击每一行 found 的提示,都能定位到对应的模块,将其 Body 提取(鼠标右键点击弹出菜单后选 Extract body 或者先鼠标左键单击选中再按 Ctrl+Shift+E)
    保存的文件名和扩展名你随意发挥,不影响操作,建议文件名保存为对应的 GUID(你双击定位过去之后看到的就是GUID),扩展名保存为 BIN,免得弄混了
    3.jpg
    提取之后,不要关闭UEFITool
    5.这里我们需要一个 HEX 编辑器,推荐 HxD,打开刚才提取出来的文件,肉眼观察一下,判断它是 vBIOS 还是 GOP VBT 还是 GOP 本体,并且知道它们的版本
    7.jpg
    上图就是GOP VBT,因为开头就是VBT,下方64(十进制)个字节后我选中的D1就是VBT版本,转换成十进制就是209
    5.jpg
    上图就是vBIOS,可以清晰的看到 IBM VGA Compatible BIOS 字样,在这个文件内继续十六进制方式搜索“2456425420”,定位过去
    8.jpg
    在上图中,同样可以看到在VBT头下方64(十进制)个字节后我选中的D1,这个就是vBIOS的VBT版本
    13.jpg
    在上图中,同样可以看到在VBT头下方68(十进制)个字节后我选中的9C10,这个就是vBIOS的VBT容量,原本是Little-Endian,所以实际是109C
    11.jpg
    在上图中,还可以看到在VBT头下方79(十进制)个字节后我选中的1049,这个就是vBIOS的版本,当然有些厂商(我只发现联想填1001)喜欢乱填这个版本,一般是不会乱填的
    12.jpg
    在上图中,又可以看到我选中的1049,这个一般也是vBIOS的版本,很多厂商喜欢乱填这个版本(点名铭瑄梅捷七彩虹喜欢填1070),这个地方的值下文会教你如何修改
    那么剩下这个文件就是GOP本体了,继续十六进制方式搜索“49006E00740065006C00280052002900200047004F0050002000440072006900760065007200000000”
    9.jpg
    上图中可以看到,版本是9.0.1056
    注意,vBIOS、GOP和GOP VBT在BIOS里面可以有很多个,但是BIOS具体调用哪一个目前没有办法知道(至少我没有),所以我们要把每一个都提取并更新
    6.获取原帖内提供的 Intel vBIOS and BSF 以及 Intel GOP VBT 相关的 2 个压缩包,以及BMP安装包,并安装之
    6.jpg
    10.jpg
    7.现在开始做更新GOP的准备工作,打开刚才获取的 Intel GOP VBT 相关的那个压缩包,可以看到唯一的一个 docx 文件,打开它,可以看到 VBT 209 对应 GOP 版本是 9.0.1056-1063
    那么,想更新比9.0.1063再新一些的GOP,就需要把GOP VBT也一并更新了
    这里我推荐更新GOP VBT到221版本,同时更新GOP到9.0.1086版本(下载链接,下载后解压得到文件保存为IntelGop_v901086.bin),原因下文再讲
    进入SKL文件夹(LGA1151,22nm的PCH就是SKL,14nm的PCH就是CFL,信息来源这里
    找到209文件夹(BIOS里提取出来的就是这个版本),解压出里面的bsf文件,另存为gop_vbt_209.bsf,找到221文件夹(我们要更新到这个版本),解压出里面的bin和bsf文件,另存为gop_vbt_221.bin和gop_vbt_221.bsf
    若在压缩包内找不到提取出 GOP VBT 之对应版本的文件夹,那你的 GOP VBT 就无法通过常规方法更新了,建议寻找同接口同厂商同代主板(例如 ECS 的 ES 主板 Z170-BLADE,我用 B150M-P73 的 VBIOS 与 GOP VBT 可以完美适配),提取 GOP VBT 看看是否会有其他能找到对应BSF的版本,实在无法更新 GOP VBT的,可以试试 9.0.1080 版本(这里可以下载)是否能正常工作
    8.我们先更新GOP本体,找到刚才没有关闭的UEFITool,可以在下方Message区域看到搜索的内容及命中的GUID,找到GOP本体,双击鼠标左键定位过去,将其 Body 替换(鼠标右键点击弹出菜单后选 Replace body 或者先鼠标左键单击选中再按 Ctrl+Shift+R),选择刚才获取的IntelGop_v901086.bin
    替换之后,不要关闭UEFITool
    如果查找到了多个GOP本体,那就都按照这个流程替换其 Body
    9.接着更新GOP VBT,打开BMP,File->Open,Binary Data File 选择刚才提取的 GOP VBT 文件,BMP Script File 选择 gop_vbt_209.bsf,点击 OK
    BIOS Settings->Save All,保存为gop_vbt_209.ssf
    打开BMP,File->Open,Binary Data File 选择 gop_vbt_221.bin,BMP Script File 选择 gop_vbt_221.bsf,点击 OK
    BIOS Settings->Apply All,选择gop_vbt_209.ssf
    File->Save as,保存为gop_vbt_209_to_221.bin
    找到刚才没有关闭的UEFITool,找到刚才提取的这个GOP VBT(可以通过GUID轻松判断),双击鼠标左键定位过去,将其 Body 替换(鼠标右键点击弹出菜单后选 Replace body 或者先鼠标左键单击选中再按 Ctrl+Shift+R),选择 gop_vbt_209_to_221.bin
    替换之后,不要关闭UEFITool
    如果查找到了多个GOP VBT,那就都按照这个流程操作:提取->检查版本->获取对应BSF->保存SSF->将SSF应用到新版VBT->替换
    10.现在接着做更新vBIOS的准备工作,打开刚才获取的 Intel vBIOS and BSF 那个压缩包,可以看到唯一的一个 docx 文件,打开它,可以看到 Skylake 1049 对应的 VBT 版本是 D1,容量是 109C,与我们刚才提取出来的完全对上了,又发现 1047-1062 的 VBT 版本和容量完全一致,也就说它们的 BSF 文件都是通用的(我对比过,确实一样的)
    有时候 vBIOS 版本乱填,我们就可以通过 VBT 版本和容量判断,找到合适的 BSF 文件
    在压缩包内进入 SKLKBL 或者 SKLKBLCFL 或者 SKLKBLCFLAML,随便找一个 1047-1062 之间的版本,解压一个 bsf 文件出来,保存为 skl_1049.bsf,你也可以直接提取 1049 的出来,文件其实都是一样的
    这里我推荐更新 vBIOS 到 1062 版本,因为这是目前我试过能成功更新到的最新版本,在压缩包内进入 SKLKBLCFLAML 文件夹,解压 1062 文件夹里面的 skl_1062.dat 和 skl_1062.bsf 出来,其实这个 bsf 可以不用解压,因为和 1049 的通用了,但是假如你要从 1034 版本更新上来,那 bsf 文件就不通用了,能理解吧?
    11.现在更新vBIOS,打开BMP,File->Open,Binary Data File 选择刚才提取的 vBIOS 文件,BMP Script File 选择 skl_1049.bsf,点击 OK
    BIOS Settings->Save All,保存为 skl_1049.ssf
    用记事本打开 skl_1049.ssf,删掉“STRING $Signon Intel(R) SKL/KBL Mobile/Desktop PCI Accelerated SVGA BIOS\r\nBuild Number: 1049 PC 14.34  11/23/2016  23:17:46\r\nDECOMPILATION OR DISASSEMBLY PROHIBITED\r\n”这一行并保存,当然你不删除,或者改成其他什么的都可以,随你便,这个主要是为了美观
    打开BMP,File->Open,Binary Data File 选择 skl_1062.dat,BMP Script File 选择 skl_1062.bsf,点击 OK
    BIOS Settings->Apply All,选择 skl_1049.ssf
    File->Save as,保存为 skl_1049_to_1062.bin
    找到刚才没有关闭的UEFITool,找到刚才提取的这个vBIOS(可以通过GUID轻松判断),双击鼠标左键定位过去,将其 Body 替换(鼠标右键点击弹出菜单后选 Replace body 或者先鼠标左键单击选中再按 Ctrl+Shift+R),选择 skl_1049_to_1062.bin
    替换之后,不要关闭UEFITool
    如果查找到了多个vBIOS,那就都按照这个流程操作:提取->检查版本->获取对应BSF->保存SSF->将SSF应用到新版VBT->替换
    BMP相关的操作我没有截图,实在理解不了可以去看看旧帖子:http://www.smxdiy.com/thread-235-1-1.html
    12.在UEFITool内,File->Save image file 保存,或者按Ctrl+S,保存的文件名你随便填,你自己认得就行

    Q:为何建议更新 GOP VBT 到 221 版本?
    A:因为228版本的SSF格式相比221版本有很大变化,而221相比之前的,没什么变化。无法直接把 221 及之前版本的 SSF 应用到 228 版本的 BIN+BSF(因为选项名字都变了,直接Apply,BMP会报错),有兴趣的可以继续看看这里
    假如你更新 GOP VBT 到新版本了,那么对应最新版的 GOP 在这里下载

    本贴所有用到工具,提供百度网盘分流:
    链接: https://pan.baidu.com/s/1J8Mx057ZTyRyFF7of4gDQA 提取码: sdbm

    若感觉手动操作效率不够高,需要 BMP 以命令行方式保存 SSF 文件,可以参考我用 Python 重写的 BMP:
    https://github.com/dsanke/BMP
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。

    该用户从未签到

    发表于 2020-3-21 21:00:28 | 显示全部楼层
    大佬的贴  我舔
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。

     成长值: 0

  • TA的每日心情
    擦汗
    11 小时前
  • 发表于 2020-3-21 21:23:20 | 显示全部楼层
    D大好文,一定要支持!
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2022-7-11 10:44
  • 发表于 2020-3-21 22:06:17 | 显示全部楼层
    D大好文,一定要支持!
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2021-9-17 09:23
  • 发表于 2020-3-21 22:41:14 | 显示全部楼层
    D大贴,必顶之
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    无聊
    2022-8-30 23:11
  • 发表于 2020-3-21 23:08:52 | 显示全部楼层
    支持 威武 有希望了
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    慵懒
    6 小时前
  • 发表于 2020-3-21 23:18:27 来自手机 | 显示全部楼层
    船新的版本,收藏学习一下!
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2021-4-14 13:52
  • 发表于 2020-3-22 00:59:12 | 显示全部楼层
    支持,刚好遇到相关的问题
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2020-12-24 14:04
  • 发表于 2020-3-22 08:28:31 | 显示全部楼层
    明白!透彻!请求D大支援低版本的资源,比如1024的VBIOS_and_BSF,197的VBT等,不胜感激!
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。

     成长值: 0

  • TA的每日心情
    闭嘴
    昨天 00:24
  •  楼主| 发表于 2020-3-22 09:55:11 | 显示全部楼层
    本帖最后由 dsanke 于 2020-3-22 12:27 编辑
    nmcfzxd 发表于 2020-3-22 08:28
    明白!透彻!请求D大支援低版本的资源,比如1024的VBIOS_and_BSF,197的VBT等,不胜感激! ...

    1.我又不是Intel员工,你找不到,我也找不到
    2.同型号的不同版本BIOS内的VBT,理论上的SSF是一样的,可以借助已知的BSF,推出未知的BSF,这事难度很低,就是花时间而已
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2020-12-17 18:57
  • 发表于 2020-3-22 10:52:29 | 显示全部楼层
    才疏学浅我看得头蒙,惭愧
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    慵懒
    2023-10-12 16:37
  • 发表于 2020-3-22 14:12:31 | 显示全部楼层
    内置的 Intel 核显 vBIOS 和 GOP 更新后,性能稳定性提高,也是可以的。
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    萌哒
    2022-11-7 16:09
  • 发表于 2020-3-22 23:58:27 | 显示全部楼层
    D大又又又更新了
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2023-8-30 15:45
  • 发表于 2020-3-23 08:24:46 | 显示全部楼层
    大佬的贴  我舔
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
  • TA的每日心情
    开心
    2020-12-24 14:04
  • 发表于 2020-3-23 22:10:52 | 显示全部楼层
    dsanke 发表于 2020-3-22 09:55
    1.我又不是Intel员工,你找不到,我也找不到
    2.同型号的不同版本BIOS内的VBT,理论上的SSF是一样的,可以 ...

    感谢D大回复,适配BSF我想过,看到数据量有点大,想偷懒图个现成的,哈哈!
    SmxDiy温馨提示:如有遇到疑问可以使用论坛的搜索功能解决。 或者在对应板块发帖求助。
    本站所有帖子均由相应的发帖人发布,本站仅供交流,如有不妥之处可以联系我们处理,同时帖子版权由发帖人所有,如需转载请联系发帖人。
    您需要登录后才可以回帖 登录 | 注册SMXDIY

    本版积分规则

    Smxdiy与你快乐分享

    关注公众号

    Copyright © Smxdiy (Kaying-Inc) . Powered by Discuz! ( 浙ICP备20004418号-2 ) 浙公网安备 33060202000778号 |Sitemap
    快速回复 返回列表 返回顶部