精英讨论吧+ 关注 关注: 帖子:12

  

修改BIOS屏蔽坏掉的显存

  • 枫之精英

    开普勒架构显卡,核心代号以GK1XX,GK2XX为名,因为显卡素有马甲卡一说,因此不能只看GTXXX这样的型号生搬硬套。屏蔽显存通道,使得原版残疾没法用的显卡,通过一定的软件手段,舍弃损坏的部分,让剩余正常的部分依旧能正常使用起来,这才是最根本的目的。但我发现论坛并没有专门来介绍这类讯息的帖子,因此我想还是我写出来给大家参考参考吧,如有不对的地方,还请批评指正。


            起因是因为偶尔间得到一张D通道损坏的GTX770,作为核心物理性损坏(芯片基板被人强拆搞掉不少D通道下的焊点)。再想办法修复D通道已经不现实,除非换核心,这个就失去了本篇的意义。因此如何使得剩下的ABC三通道正常工作起来,才是重点。所以我们要做的就是通过修改显卡的VBIOS,屏蔽D通道,使得显卡还能正常工作起来。

            首先我们需要用设备提取出显卡的VBIOS,无论你是用编程器提取,还是软件提取,都行,只要是完全提取出来就OK。接下来,用WINHEX这样的16位进制编译器,打开这个VBIOS文件。可以看到,都是乱码。


    接下来我们打开“搜索”,选择“查找16进制数值”


    弹出个对话框


    我们在对话框里面,输入“7AC82502”,然后点下方的“确定”


    就能找到这个页面。


    红框框圈出的,就是我们要修改的地方。现在是00,修改成不同的数字,就能屏蔽相应的通道,下表就是想要屏蔽的通道而对应的数字(本人拿GTX780做的验证,来检验6通道384bit所需屏蔽对应各个通道的具体参数)


    我们现在想屏蔽D通道,因此得改成08,然后我们保存。


    这个时候我们不能直接刷进去,否则就是打不上驱动,显卡有感叹号提示43代码。



    接下来用“CheckSum”这个小软件来校验下。


    选择“打开文件”,选中我们保存的BIOS,然后就会自动计算,结果出来是“804B18”。


    而原始BIOS经过校验计算,能看到最后两位就是“00”


    这是因为NVIDIA对开普勒架构显卡的BIOS进行了加密,我们修改过的BIOS,必须最后2位跟原始BIOS的最后2位一样,这才能被驱动识别。原始是“00”,那么我们就得想办法改成“00”。那如何改成00?十六进制当中的“100”,最后2位就是“00”,那么划算成十进制,那就是“256”。十六进制下的“18”换算成十进制就是“24”。用256-24=232,因此再别的地方加上“232”,那么最后两位就能变成“00”

    现在我们打开常用的计算器。


    选择“程序员”。


    刚才说了,我们必须得加上“256-24=232”的内容,“232”换算成16进制就是“E8”。


    因此我们再绿色框框部分,把原来的“00”修改成“E8”即可。


    然后保存再校验,可以看到参数是“804C00”。


    刚好比原始BIOS内容大了16进制的100,最后两位是00。这个时候的BIOS,就能被驱动识别了。


    刷进修改好的BIOS,可以看到显存位宽是192BIT,缺的64BIT便是屏蔽的D通道,1536MB的显存也恰好能证明。


    跑个鲁大师看下分数,还不赖。至少这卡,还能对付一阵子,不至于躺尸当料板。


    以上全是个人收集网上公开的资料再结合自己的一点想法,歪打正着得来,有什么不对不全的地方,希望能有大佬出来指正,谢谢大家。


    补充:

    1,有朋友问为何要搜索“7AC82502”,这个是以前十哥哥的帖子里说明,但他没告知为何要搜索这段字符,我通过*词语被过滤*看老外论坛,大意是这段是NVIDIA的显存通道配置文件部分。奈何鸟文水平实在是差,只能懂个一知半解。

    2,有人问只能在384不能用在128吗?这……我不清楚为何会产生这样的歧义。但128也就AB两个通道,不是写01屏蔽A通道,就是写02屏蔽B通道,还是说写03,AB两个通道都屏蔽掉?

    3,有大佬反应其实校验不用那么麻烦,直接用“KeplerBiosTweaker ”这个软件吧修改过的BIOS打开后,再保存就能完成自动校验,我试了下确实如此。


    1楼  2023/3/6 7:18:52  回复

  发表回复

    发帖