修改旧的Framebuffer,在10.12 Sierra PB1下驱动AMD显卡
本帖最后由 ljg-pcbeta 于 2016-8-10 14:29 编辑如果你的显卡在10.11 El Capitan下能够正常显示,那么它很有可能可以在10.12 Sierra下正常工作。
我们知道,在新的10.12 Sierra中,Framebuffer有了一定的变化,而且每一个接口定义从16字节增加到了24字节。
举个例子(AMD6000Controller.kext Pondweed):
10.11旧版:
02 00 00 00 00 01 00 00 09 01 01 00 10 00 05 05
00 04 00 00 04 03 00 00 00 01 02 00 11 02 01 01
00 04 00 00 04 03 00 00 00 01 03 00 21 03 02 02
10.12新版:
02 00 00 00 00 01 00 00 19 01 01 00 00 00 00 00 10 00 05 05 00 00 00 00
00 04 00 00 04 03 00 00 00 01 02 00 00 00 00 00 11 02 01 01 00 00 00 00
00 04 00 00 04 03 00 00 00 01 03 00 00 00 00 00 21 03 02 02 00 00 00 00
所以,只需要更新一下Framebuffer数据,就很有可能直接驱动显卡。
请注意,由于Framebuffer有一定的变化,ATI Connectors Data请一定使用最新提取的数据。其它之前的提取工具已不再适用。
提取工具及PB1提取结果请参考:https://bbs.pcbeta.com/viewthread-1699319-1-1.html
旧的ATI Connectors Patch:
02 00 00 00 40 00 00 00 09 01 00 00 | 10 01 00 02 |
00 08 00 00 04 02 00 00 00 71 00 00 | 11 02 01 01 |
10 00 00 00 10 00 00 00 00 01 00 00 | 00 10 02 03 |
新的ATI Connectors Patch,只需在旧的基础上添加两组零:
02 00 00 00 40 00 00 00 09 01 00 00 00 00 00 00 10 01 00 02 00 00 00 00
00 08 00 00 04 02 00 00 00 71 00 00 00 00 00 00 11 02 01 01 00 00 00 00
10 00 00 00 10 00 00 00 00 01 00 00 00 00 00 00 00 10 02 03 00 00 00 00
不知道新的Clover是否支持这种新格式的Framebuffer,建议填写在KextToPatch里
如果Clover没有效果,建议手动修改二进制文件,查找和替换。(我反正是这么做的)
显卡驱动后,也是有半透明玻璃效果的;没有透明说明驱动还不完善。
额外提醒:
之前部分7系和6系卡出现黑屏的情况,在10.12 Sierra中也会出现,同样,解决的方法是修改AMDRadeonX4000.kext的Info.plist(或者用Injector也行,见36F)。
找到这一段
<dict>
<key>CAIL_DisableDrmdmaPowerGating</key>
<integer>0</integer>
<key>CAIL_DisableDynamicGfxMGPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableGfxCGPowerGating</key>
<integer>0</integer>
<key>CAIL_DisableGmcPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableStaticGfxMGPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableUVDPowerGating</key>
<integer>0</integer>
<key>CAIL_DisableVCEPowerGating</key>
<integer>0</integer>
</dict>
替换成
<dict>
<key>CAIL_DisableDrmdmaPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableDynamicGfxMGPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableGfxCGPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableGmcPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableStaticGfxMGPowerGating</key>
<integer>1</integer>
<key>CAIL_DisableUVDPowerGating</key>
<integer>0</integer>
<key>CAIL_DisableVCEPowerGating</key>
<integer>1</integer>
</dict>
最后一句:修改完kext记得修复权限。
感谢LZ分享。
不知道7670M在10.12里会不会出现和10.11里睡眠唤醒黑屏的问题。 KextToPatch没用的 我试了 后来也是直接改二进制文件 jincan11 发表于 2016-7-13 17:31
感谢LZ分享。
不知道7670M在10.12里会不会出现和10.11里睡眠唤醒黑屏的问题。
我的7670m睡眠唤醒直接重启了→_→ shanhe 发表于 2016-7-13 18:04
不知道睡眠唤醒能不能解决
现在估计也解决不了,不好说以后能不能解决←_← 为什么要修改AMDradonx4000.kext呢?10.11以及之前的版本是不用的。
全盘修复权限 不太可能了... 10.12貌似 /usr/libexec/repair_packages 已经没了... 口袋妖怪heart 发表于 2016-7-13 18:18 https://www.pcbeta.com/static/image/common/back.gif
全盘修复权限 不太可能了... 10.12貌似 /usr/libexec/repair_packages 已经没了...
{:5_264:}快开发一个修复SLE权限的工具 ljg-pcbeta 发表于 2016-7-13 18:21 https://www.pcbeta.com/static/image/common/back.gif
快开发一个修复SLE权限的工具
大致可以sudo chmod -R 755 /System/Library/Extensionsandsudo chown -R 0:0 /System/Library/Extensions吧。
info这些档案没可执行权限(644)也ok 不过懒得再改 不会有影响。 btw 那个kext前几天我做过injector貌似... 口袋妖怪heart 发表于 2016-7-13 18:23 https://www.pcbeta.com/static/image/common/back.gif
大致可以and吧。
info这些档案没可执行权限(644)也ok 不过懒得再改 不会有影响。
{:5_288:}得写个递归全部遍历下吧 liuqiqi1121 发表于 2016-7-13 18:17 https://www.pcbeta.com/static/image/common/back.gif
为什么要修改AMDradonx4000.kext呢?10.11以及之前的版本是不用的。
你不用改不代表我不用改嘛{:5_268:}我的不改就黑屏 ljg-pcbeta 发表于 2016-7-13 18:26 https://www.pcbeta.com/static/image/common/back.gif
得写个递归全部遍历下吧
愿意的话可以 不过多增权限倒也无所谓 因为并不会调用多出的 x 。 Thursday2014 发表于 2016-7-13 18:11 https://www.pcbeta.com/static/image/common/back.gif
KextToPatch没用的 我试了 后来也是直接改二进制文件
{:5_596:}看来确实得等clover更新了 口袋妖怪heart 发表于 2016-7-13 18:26 https://www.pcbeta.com/static/image/common/back.gif
btw 那个kext前几天我做过injector貌似...
你做的那个不是inject别的ID么……如果我没记错的话 290用四叶草补丁是黑屏的,8000驱动没问题,但是注入40000就黑屏了 ljg-pcbeta 发表于 2016-7-13 18:32 https://www.pcbeta.com/static/image/common/back.gif
你做的那个不是inject别的ID么……如果我没记错的话
那你可以改啊 自己提取原版kext制作 binary什么的全删掉 只留bundle和info即可 如果你要改info的话 只要injector中定义的版本比原版kext高即可 还怕的话加上大点的ProbeScore lingdong63585 发表于 2016-7-13 18:33 https://www.pcbeta.com/static/image/common/back.gif
290用四叶草补丁是黑屏的,8000驱动没问题,但是注入40000就黑屏了
建议最近一段时间不要在10.12下用clover的patch{:5_288:}感觉很坑 ljg-pcbeta 发表于 2016-7-13 18:35 https://www.pcbeta.com/static/image/common/back.gif
建议最近一段时间不要在10.12下用clover的patch感觉很坑
按理来说PB1的inject code与DB2相同 失败 就不知道了