本帖最后由 arslan2012 于 2015-12-3 09:16 编辑
原作者:arsradu 这是修复独显引导二阶段花屏 缺失logo 或者载入条在屏幕右下方的教程: 确切对哪些型号有用还不知道(如果你用这个方法成功了请留个显卡型号,方便他人).开始之前请注意备份. 原作者最先开始在Yosemite 上研究这个问题,然后现在El Capitan上仍在研究,之前较早的系统版本未测试! 该教程只用于没有核显(或者已经关闭核显)的机器! 帮助制作该教程的人:
Pike R. Alpha
cecekpawon
Mirone Riley Freeman 目前已经成功的显卡型号:
NVidia cards: - GeForce 210
- GT 640
- GTX 650
- GTX 660
- GTX 670 超频+4GB - (1080p在关闭CSM的情况下,可以正常。在更高分辨率下,第二阶段消失)
- GTX 750 Ti
- GTX 760
- GTX 780
- GTX 960
- GTX 970 - (1080p在关闭CSM的情况下,可以正常。在更高分辨率下,第二阶段消失)
ATI cards:
当然,如果你iASL语言基础够好,你完全可以自己通过修改DSDT完美解决该问题。. 但因为原作者iASL不是很好,所以他没有发布DSDT方法的教程。
这个教程以至于这个方法不是完美的,所以欢迎改进,并且在尝试之前务必做好备份! PS:如果你的显卡是支持GOP的UEFI固件显卡,应该根本不需要这个教程,到BIOS里把CSM关掉就一切正常了。 说了这么多废话,咱们开始吧.  要求: 必须的: - 一台有Yosemite或者El Capitan的电脑(低版本系统未测试)
- Clover启动器 (有些改动需要写在 config.plist 文件中)
- IORegistryExplorer v 2.1 (附件)
- gfxutil (附件)
- gfx_hex (附件) - 脚本代码归属cecekpawon
可选的: 更多: - 你可以试试cecekpawon修改的 Bootx64.efi (rev 3279),他在Clover里加入了直接在启动界面打开关闭Patch注入的功能,可以让你的测试方便许多,点 here 下载.
- Note: 自己修改过的DSDT/SSDT可能会有影响,测试这个教程的时候能把它去掉尽量去掉吧。
怎么做: 第一步 (获取端口信息): 打开你的IORegistryExplorer然后搜索 display. 你应该看到类似下面的东西: 显卡不同端口数不通,重要的是找到有 AppleDisplay 的那个. 比如我的图片里面 (B@1) 是要找的. PS:端口是从0开始数的,比如 第一个是A@0第二个是B@1.第三个是C@3。 第二步 (提取 device-properties.hex): 打开一个终端窗口, cd到你创建的零时文件夹, 把gfxutil拷贝到那个文件夹,然后终端运行下面的代码: - ioreg -lw0 -p IODeviceTree -n efi -r -x | grep device-properties | sed 's/.*<//;s/>.*//;' > "device-properties.hex" && ./gfxutil -s -n -i hex -o xml "device-properties.hex" "device-properties.xml"
复制代码
现在文件夹里应该生成了两个新文件: device-properties.hex 和 device-properties.xml 第三步 (修改 device-properties.xml): 用你喜欢的文本编辑器打开xml文件 (我用的是 Sublime) 然后把你的端口数写进去 (就是你刚才在IOreg里看到的端口数和端口名,一定要确认一样哦)像截图里这样: 千万不要忘了第一个数是0! 我的这个截图里的是2GB显存的 MSi GTX 650 OC , 有三个, 我们要把默认端口设置成 (B@1).
我把我自己改好的文件放到附件里了,方便你们做参考 第一段是设置默认端口,(就是你刚才看的有AppleDisplay的端口)这里是B@1 - <key>@1,AAPL,boot-display</key>
- <string>0x00000001</string>
复制代码
中间的端口信息我不说你们也会照猫画虎吧。 最后一段是VBIOS信息,像我这样写 - <key>VRAM,totalsize</key>
- <string>0x80000000</string> // 2 GB显存
- <key>device_type</key>
- <string>NVDA,Parent</string>//硬件种类
- <key>model</key>
- <string>MSi GeForce GTX 650</string> // 显卡名称
- <key>rom-revision</key>
- <string>80.07.35.00.04</string> //VBIOS 版本
复制代码
根据我的经验这些值每种型号的显卡都差不多的。想要你自己显卡的精确VBIOS信息你可以在windows下用显卡驱动,aida64,nvflash等等各种软件检测。 下面是RAM大小和16进制转换表. 如果你需要其他大小的16进制值,直接问我。 Amount of memory Hex value
128 MB 0x00000080
256 MB 0x00000100
512 MB 0x00000200
1024 MB (1 GB) 0x00000400
2048 MB (2 GB) 0x00000800
3072 MB (3 GB) 0x00000C00
4096 MB (4 GB) 0x00001000
5120 MB (5 GB) 0x00001400
6144 MB (6 GB) 0x00001800
7168 MB (7 GB) 0x00001C00
8192 MB (8 GB) 0x00002000 9216 MB (9 GB) 0x00002400 10240 MB (10 GB) 0x00002800 11264 MB (11 GB) 0x00002C00 12288 MB (12 GB) 0x00003000 13312 MB (13 GB) 0x00003400 14336 MB (14 GB) 0x00003800 15360 MB (15 GB) 0x00003C00 16384 MB (16 GB) 0x00004000 修改完之后在终端执行下面的代码把XML转换成hex文件: - ./gfxutil -i xml -o hex device-properties.xml device-properties.hex
复制代码第四步 (读取修改过的hex文件): 解压 gfx_hex 到你的零时文件夹,双击打开. 他应该像下面的截图一样直接输出16进制: (别忘了先备份config.plist,最好能把Clover 文件夹备份到U盘)复制黏贴到 Clover Configurator 里面的 Devices -> Properties 里然后把Inject的勾打上(像下面的截图这样). 你也可以直接自己写到你的config.plist文件里面,随你便喽。 第五部 (最终工作): 你可以试一下重启看效果,但是对于大部分人来说前四步只修复了进度条,如果你的苹果图标有问题,继续跟我往下做. 在Clover Configurator (显卡选项里)把 Patch Bios 和 Inject EDID 的勾打上. 如果你有修改过的EDID可以写在这里,没有的话就算了,没事. 对了 CsmVideoDrv能不启用就不启用吧。
保存。
重启。祈祷成果吧。 如果启动失败了,用你的备份恢复Clover。
原帖地址:http://www.insanelymac.com/forum ... esktop-video-cards/
arsradu |