图拉丁吧 关注:7,712,394贴子:129,563,471

【技术贴】修改BIOS让英伟达GT2xx、4xx、5xx、6xx支持UEFI!!!

取消只看楼主收藏回复

一楼喂狼!
(ps:可能会有其他信息不好看,你们可以点“只看楼主”)


IP属地:江西1楼2015-08-03 07:14回复
    此贴卡吧和图吧一起发,一起更!


    IP属地:江西2楼2015-08-03 07:15
    收起回复
      首先呢,你需要一个Mac OS X环境,如果没有Mac,也可以用虚拟机代替,或者把显卡bios传上来@我,我帮你做。


      IP属地:江西5楼2015-08-03 07:16
      收起回复
        然后嘞,下载下面的这个东东
        下载地址:http://pan.baidu.com/s/1hqGTEza
        备用地址:http://pan.baidu.com/s/1jGlH5bS 密码:rg5u
        下载完之后,解压(我觉得是废话)


        IP属地:江西7楼2015-08-03 07:17
        收起回复
          使用方法:把BIOS重命名为original.rom(全部小写)放在input文件夹里,双击UEFI_ROM.command,会在output文件夹生成新BIOS文件。新BIOS文件是用你的显卡id命名的,比如10DE.0CA3.rom
          你以为就这样结束咯?No!


          IP属地:江西8楼2015-08-03 07:17
          收起回复
            重要:修正校验位的方法(所有工具做出来的rom必须修正)
            首先说一下显卡刷uefi gop的原理。显卡的uefi bios其实是混合文件,分成两个部分。前半段是传统bios,大约64k;后半段是uefi bios(这一半一般是通用的),大约也是64k,总文件大约是128K(具体不一定,一般是120-126k)。这样UEFI GOP的显卡既可以在传统bios主板上使用,也可以在uefi主板上使用。有的同学可能注意到,用atiflash提取出来的原始rom,已经是128k了,那么uefi该加在哪里?实际上传统显卡BIOS,只有前64K有效,后64K是空数据(全是FF FF FF)。用GPU-z提取显卡BIOS,就是64K,因为GPU-z提取BIOS时会裁减掉空数据。专刷工具的原理就是,原厂BIOS如果是128K,删除后半段,再插入UEFI BIOS,再做某些修正,包括修正校验码。
            而这两段BIOS,显卡驱动程序会分别校验,必须分别修正。AMD的规矩是,每段的校验结果都是FF,总的rom校验为FF+FF=FE(16进制运算,不考虑进到第三位)。Nvidia的规矩为,两段的校验结果都是00,总的rom的校验结果为00+00=00。由于2楼的专属工具是用AMD版山寨过来的,校验是按AMD的规矩,所以NVIDIA的驱动程序检测校验码时,认为校验结果错了,拒绝加载驱动。这就造成刷uefi后,启动正常,而且是真正的uefi模式,也能检测到uefi模块,但进windows后无法加载显卡驱动,无法正常使用。
            所以我们现在唯一需要做的,就是把两段BIOS的校验结果,从FF+FF=FE,修正为00+00=00。而(FF+1)+(FF+1)=00+00=00,所以我们只需要找出两段BIOS,在最后一位上都加1,就这么简单!


            IP属地:江西10楼2015-08-03 07:18
            回复
              步骤:(需要在windows下用16进制编辑器,HxD,刚刚的链接里有下载)
              1. 用HxD打开刚做好的uefi rom


              IP属地:江西11楼2015-08-03 07:20
              回复
                2.做一下校验,看看结果是否为FE. 点击菜单上的“分析”--“校验码”--"Checksum-8",FE即为校验码,这是AMD的规则.


                IP属地:江西13楼2015-08-03 07:23
                回复
                  3.找到前半段(传统BIOS)的最后一位。由于前后两段分隔位置并不固定,得用巧妙的方法找到。先找到后半段(UEFI BIOS)的开头。它的前一位就是前半段最后一位。两段BIOS,都是以55 AA开头的,所以只需要找到第2个55 AA就行啦。点击“搜索”--“查找”。搜索内容为55AA(不要空格),数据类型为16进制。直接找到的是前半段的开头,我们需要后半段,所以再点“查找下一个”,此时定位到rom中部,前面有很多FF FF FF就对了,这就是两段BIOS的分隔处。


                  IP属地:江西14楼2015-08-03 07:24
                  回复
                    4.现在可以修正前半段的校验码了。注意55 AA的前一位,本例是89,你的肯定不一样。这一位本来也是空数据,但为了修正校验码,所以会给一个特定的值,相当于校验位。这一位和前面所有数据一起做校验运算,得到的结果就是FF。我们想把校验结果改为00,只需要89+1=8A就行了。把最后一位改为8A。这里都是16进制运算,89+1=8A,不等于90!


                    IP属地:江西21楼2015-08-03 07:28
                    回复
                      5. 同样的方法,把整个文件拖到最后,把最后一位也加1,本例是C6,C6+1=C7。


                      IP属地:江西23楼2015-08-03 07:31
                      回复
                        6. 完成了以上几步后,再次校验,你会发现校验码已经变成00,这就说明大功告成。(你也可以改一次校验位,做一次校验。你会发现原本是FE,第一次改了变成FF,第二次改了变成00,如果有兴趣,校验码的原理可以参考大学课程计算机组成原理)

                        最后将修正好的rom文件刷入显卡


                        IP属地:江西24楼2015-08-03 07:31
                        收起回复
                          沉了


                          IP属地:江西41楼2015-08-03 08:29
                          回复
                            图钉们真的不需要吗


                            IP属地:江西44楼2015-08-03 09:02
                            收起回复
                              顶!!!!!


                              IP属地:江西45楼2015-08-03 09:18
                              回复