ljg-pcbeta 发表于 2016-7-13 17:24

修改旧的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记得修复权限。



jincan11 发表于 2016-7-13 17:31

感谢LZ分享。
不知道7670M在10.12里会不会出现和10.11里睡眠唤醒黑屏的问题。

shanhe 发表于 2016-7-13 18:04

Thursday2014 发表于 2016-7-13 18:11

KextToPatch没用的 我试了 后来也是直接改二进制文件

ljg-pcbeta 发表于 2016-7-13 18:13

jincan11 发表于 2016-7-13 17:31
感谢LZ分享。
不知道7670M在10.12里会不会出现和10.11里睡眠唤醒黑屏的问题。

我的7670m睡眠唤醒直接重启了→_→

ljg-pcbeta 发表于 2016-7-13 18:13

shanhe 发表于 2016-7-13 18:04
不知道睡眠唤醒能不能解决

现在估计也解决不了,不好说以后能不能解决←_←

liuqiqi1121 发表于 2016-7-13 18:17

为什么要修改AMDradonx4000.kext呢?10.11以及之前的版本是不用的。

口袋妖怪heart 发表于 2016-7-13 18:18

全盘修复权限 不太可能了... 10.12貌似 /usr/libexec/repair_packages 已经没了...

ljg-pcbeta 发表于 2016-7-13 18:21

口袋妖怪heart 发表于 2016-7-13 18:18 https://www.pcbeta.com/static/image/common/back.gif
全盘修复权限 不太可能了... 10.12貌似 /usr/libexec/repair_packages 已经没了...

{:5_264:}快开发一个修复SLE权限的工具

口袋妖怪heart 发表于 2016-7-13 18:23

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 不过懒得再改 不会有影响。

口袋妖怪heart 发表于 2016-7-13 18:26

btw 那个kext前几天我做过injector貌似...

ljg-pcbeta 发表于 2016-7-13 18:26

口袋妖怪heart 发表于 2016-7-13 18:23 https://www.pcbeta.com/static/image/common/back.gif
大致可以and吧。

info这些档案没可执行权限(644)也ok 不过懒得再改 不会有影响。

{:5_288:}得写个递归全部遍历下吧

ljg-pcbeta 发表于 2016-7-13 18:27

liuqiqi1121 发表于 2016-7-13 18:17 https://www.pcbeta.com/static/image/common/back.gif
为什么要修改AMDradonx4000.kext呢?10.11以及之前的版本是不用的。

你不用改不代表我不用改嘛{:5_268:}我的不改就黑屏

口袋妖怪heart 发表于 2016-7-13 18:27

ljg-pcbeta 发表于 2016-7-13 18:26 https://www.pcbeta.com/static/image/common/back.gif
得写个递归全部遍历下吧

愿意的话可以 不过多增权限倒也无所谓 因为并不会调用多出的 x 。

ljg-pcbeta 发表于 2016-7-13 18:29

Thursday2014 发表于 2016-7-13 18:11 https://www.pcbeta.com/static/image/common/back.gif
KextToPatch没用的 我试了 后来也是直接改二进制文件

{:5_596:}看来确实得等clover更新了

ljg-pcbeta 发表于 2016-7-13 18:32

口袋妖怪heart 发表于 2016-7-13 18:26 https://www.pcbeta.com/static/image/common/back.gif
btw 那个kext前几天我做过injector貌似...

你做的那个不是inject别的ID么……如果我没记错的话

lingdong63585 发表于 2016-7-13 18:33

290用四叶草补丁是黑屏的,8000驱动没问题,但是注入40000就黑屏了

口袋妖怪heart 发表于 2016-7-13 18:34

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

ljg-pcbeta 发表于 2016-7-13 18:35

lingdong63585 发表于 2016-7-13 18:33 https://www.pcbeta.com/static/image/common/back.gif
290用四叶草补丁是黑屏的,8000驱动没问题,但是注入40000就黑屏了
建议最近一段时间不要在10.12下用clover的patch{:5_288:}感觉很坑

口袋妖怪heart 发表于 2016-7-13 18:37

ljg-pcbeta 发表于 2016-7-13 18:35 https://www.pcbeta.com/static/image/common/back.gif
建议最近一段时间不要在10.12下用clover的patch感觉很坑

按理来说PB1的inject code与DB2相同 失败 就不知道了
页: [1] 2 3 4
查看完整版本: 修改旧的Framebuffer,在10.12 Sierra PB1下驱动AMD显卡