bizongyi 发表于 2015-4-26 01:26

[已更新]升级Nvidia GT200-600系列老N卡为UEFI GOP,解决扁苹果问题,实现极速开机

本帖最后由 bizongyi 于 2015-7-15 23:54 编辑

什么是显卡UEFI GOP想必不用多说了吧。
关于UEFI GOP的帖子已经很多了,仍然不了解的同学可以看一下几篇帖子,显卡BIOS的提取与刷入的方法那几篇都有,本文就不再重复了。
https://bbs.pcbeta.com/viewthread-1581090-1-1.html

https://bbs.pcbeta.com/viewthread-1594987-1-2.html

https://bbs.pcbeta.com/viewthread-1570113-1-1.html
1楼的工具为外国大神的原版,只适合GT2XX系列,GT400-GT600请看二楼!
--------------------------------------------------------
可能仍然有同学还在用GT210、GT220、GT240或者GTS250这样的老显卡,主板支持UEFI引导,也想体验UEFI GOP。正好我在国外论坛上找到专刷工具,有兴趣的话可以试一试。

第一步:提取显卡bios,这里就不细说了,用GPUz,nvidia的官方工具都可以。

第二步:确定你的显卡ID

比如这块GTS250的显卡的ID为10de-0615。


第三步,将你的显卡BIOS用它的ID命名,并放在专刷工具的rom文件夹
比如要刷的显卡是GT240,id为10DE-0CA3,将BIOS重命名为10DE.0CA3.rom,然后放入rom文件夹



第四步,运行UEFI_ROM.command,这时候可能会让你先安装JAVA运行环境,点击“更多信息”,照着提示装好重新运行就行了。运行成功后,专刷工具的根目录下会出现uefi.rom,这就是带有UEFI GOP模块的新BIOS。

最后将新BIOS刷入显卡。
刷的时候还是老规矩,风险自负,请备份好原厂BIOS,并知道怎么抢救被刷黑的显卡!
--------------------------------------------------------
注:专刷工具的EFI源来自N210D3GI.FJ1.efi,这是从一张GT210显卡中提取的通用EFI模块,适合整个GT200系列。但由于做好的BIOS的大小有120KB左右,需要显卡配备容量为128KB的BIOS芯片(EEPROM )才能刷。部分显卡采用了容量为64KB的芯片,此时无法刷入。128KB容量的芯片,通常被称为1M或1024K芯片(此时使用bit表示,1024bit=128KB),如果是512K之类的就不行(512Kbit=64KB),检测方法在60楼。

GT400、500、600(费米核心)的专刷工具在2楼
请成功的同学回帖反馈一下,谢谢!




bizongyi 发表于 2015-4-26 01:27

本帖最后由 bizongyi 于 2016-2-16 15:39 编辑

1楼的工具是第二版,是国外大神的原版。2楼的工具是第四版,是我用AMD版工具替换EFI源得来的。第四版工具优化了代码,省略了不必要的工具,比如不需要JAVA环境,明显比第二版好得多。可惜国外大神并没有做Nvidia版的第四版工具,我特地做了山寨版,可以支持GT200-600系列显卡。好在N卡版和A卡版99%的代码都是通用的,唯一的区别是校验码不一样,做好rom后,手动修正一下校验码就可以了。
第四版工具的使用方法:把BIOS重命名为original.rom(全部小写)放在input文件夹里,双击UEFI_ROM.command,会在output文件夹生成新BIOS文件。新BIOS文件是用你的显卡id命名的,比如10DE.0CA3.rom

重要:修正校验位的方法(2楼所有工具做出来的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,就这么简单!

步骤:(需要在windows下用16进制编辑器,HxD,附件中有下载)
1. 用HxD打开刚做好的uefi rom



2.做一下校验,看看结果是否为FE. 点击菜单上的“分析”--“校验码”--"Checksum-8",FE即为校验码,这是AMD的规则.



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



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


5. 同样的方法,把整个文件拖到最后,把最后一位也加1,本例是C6,C6+1=C7。



6. 完成了以上几步后,再次校验,你会发现校验码已经变成00,这就说明大功告成。(你也可以改一次校验位,做一次校验。你会发现原本是FE,第一次改了变成FF,第二次改了变成00)



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




感谢:
感谢once375ml给了GT430和GT630(费米核心)的GOP ROM,这是他从技嘉客服那里要过来的。我从中提取了efi源,并集成在专刷工具中。
感谢757388029,本文的校验码修正方法,是他发现的。
曾经尝试找寻老N卡UEFI BIOS的人应该清楚,老N卡的UEFI是多么的难找,因为Nvidia从来没支持过,N卡从开普勒核心开始才正式支持UEFI,国外大神只做了GT2XX就不管了。可以毫不夸张的说,本文提供的方法,是开普勒核心之前的老N卡,体验UEFI技术的唯一希望。而且这是地球上唯一的(至少我没找到第二家)。正是因为once375ml和757388029的贡献才使本文的方法变得实用,本人在此向他们表示衷心的感谢!


注意,本文提供的GT600系列工具只适合费米核心的显卡,比如GT610、GT630
开普勒核心比如GT640、GTX650/660之类的,有NVIDIA官方刷UEFI的工具,请看这篇文章:https://bbs.pcbeta.com/viewthread-1581090-1-1.html


成功案例:
经98楼once375ml验证,公版GTX 460 测试成功,详情见98楼。

经112楼 jiaruolei验证,GTX560也可以用4XX专刷工具,他的显卡是精影GTX560,刷了UEFI GOP后工作正常。

经228楼 757388029验证,GT630刷UEFI,修正校验码后完美。

经247楼 slithpr验证,索泰460毁灭者刷UEFI,修正校验码后完美。

工具下载:

bizongyi 发表于 2015-4-26 12:26

自己顶帖,占楼备用

狗不理包子 发表于 2015-4-26 12:38

gts450通用吗?

ws685685 发表于 2015-4-26 12:48

顶顶顶顶 可惜我得是A卡

bizongyi 发表于 2015-4-26 13:14

ws685685 发表于 2015-4-26 12:48 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
顶顶顶顶 可惜我得是A卡

https://bbs.pcbeta.com/viewthread-1570113-1-1.html,a卡看这里

viva73 发表于 2015-4-26 13:15

收藏备用,有空再试试,谢谢楼主分享。。

bizongyi 发表于 2015-4-26 13:16

狗不理包子 发表于 2015-4-26 12:38 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
gts450通用吗?

不通用,这里找到的EFI源是从gt210提取的,只能给GT200系列用。如果以后找到GT400的efi源,那就可以了

a137801552 发表于 2015-4-26 15:40

bizongyi 发表于 2015-4-26 13:14 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
https://bbs.pcbeta.com/viewthread-1570113-1-1.html,a卡看这里

我的 公版5770刷UEFI开关机 没问题   就是断电后就黑屏了。

bizongyi 发表于 2015-4-26 15:44

本帖最后由 bizongyi 于 2015-4-26 15:52 编辑

a137801552 发表于 2015-4-26 15:40 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
我的 公版5770刷UEFI开关机 没问题   就是断电后就黑屏了。
5770和6770都不支持,还原吧。。。5770刷了后,只要你不切断电源,怎么重启都没事,但一旦断电冷启动,就无法开机了。
If finally that works i will edit your script for 5770 support.
本来作者算给5770单独写个脚本。

UPDATE: UEFI BIOS isnt possible to works on 5770 because 5770 rom not have enough space to keep UEFI.
但最后他发现,UEFI BIOS不可能在5770上工作,因为5770的rom没有足够的空间放EFI组件。

5770 BIOS: 62.904KB
MCuC Table: 22.944KB
UEFI: 59.849KB
5770 BIOS SIZE: 128kb
UEFI+BIOS+MCuC= 145.697KB


5770要正常用一共需要两个MCuC模块,最后容量需要145K,bios芯片装不下。如果用专刷工具,做出来的bios里只有一个MCuC。MCuC是负责初始化GDDR5显存的,5770只有一个MCuC时冷启动初始化GDDR5显存失败,造成黑屏。原作者没办法,5770以及它的马甲卡6770无解。

swbxzk 发表于 2015-4-26 15:50

谢谢楼主分享!!!

swbxzk 发表于 2015-4-26 15:50

谢谢楼主分享!!!

a137801552 发表于 2015-4-26 15:52

bizongyi 发表于 2015-4-26 15:44 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
5770和6770都不支持,还原吧。。。5770刷了后,只要你不切断电源,怎么重启都没事,但一旦断电冷启动,就 ...

你的7950 是原生支持吗?

bizongyi 发表于 2015-4-26 15:53

a137801552 发表于 2015-4-26 15:52 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
你的7950 是原生支持吗?

7950有蓝宝石7950 mac editon的bios,推荐刷这个,刷了后什么都有了

bizongyi 发表于 2015-4-26 21:44

bizongyi 发表于 2015-4-26 13:16 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
不通用,这里找到的EFI源是从gt210提取的,只能给GT200系列用。如果以后找到GT400的efi源,那就可以了

我倒是有办法可以从任意的显卡bios中提取出efi模块,GT400系列有哪款显卡支持uefi gop?如果有一份bios,我可以试着提取。

bizongyi 发表于 2015-4-29 00:00

有10几个人下载了,有人成功了吗?能反馈一下吗,谢谢

狗不理包子 发表于 2015-4-29 15:50

买了个GTS250,回来刷下试试,会及时反馈的

a137801552 发表于 2015-4-29 19:22

bizongyi 发表于 2015-4-26 15:53 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
7950有蓝宝石7950 mac editon的bios,推荐刷这个,刷了后什么都有了

为啥你的显卡会显示MAC      那个蓝宝石B IOS是刷 1还是刷2啊

bizongyi 发表于 2015-4-30 11:25

a137801552 发表于 2015-4-29 19:22 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
为啥你的显卡会显示MAC      那个蓝宝石B IOS是刷 1还是刷2啊

刷bios1,bios2是真mac pro用的。名字显示mac,那是我在dsdt里自定义的呀,不改dsdt,或者不打开clover的显卡侦测,名字还是会显示7XXX

a137801552 发表于 2015-5-1 12:38

bizongyi 发表于 2015-4-30 11:25 http://cdn.pcbeta.img.inimc.com/static/image/common/back.gif
刷bios1,bios2是真mac pro用的。名字显示mac,那是我在dsdt里自定义的呀,不改dsdt,或者不打开clover的 ...

真MAC PRO黑苹果不能用?
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: [已更新]升级Nvidia GT200-600系列老N卡为UEFI GOP,解决扁苹果问题,实现极速开机