积分 2072 最后登录 2024-4-8 精华 0 阅读权限 50 主题 189 UID 1102266 帖子 3965 PB币 2474 威望 81 贡献 0 技术 33 活跃 1990
远景刁民
UID 1102266 帖子 3965 PB币 2474 贡献 0 技术 33 活跃 1990
本帖最后由 左右流之 于 2018-1-12 11:06 编辑
跑个题,我现在不怎么折腾黑苹果了,从EICapitan开始到现在有五六年没折腾了,能用就行。为什么折腾High Sierra?主要是听说苹果开始布置APFS文件系统。文件系统对于一个操作系统和数据存储来说是非常重要的,苹果原来的HFS+真的很渣了,连微软的NTFS都不如。好了换到正题。
我黑苹果上用的是蓝宝ATI6850 1G的显卡,虽说不是很高端,但是用来Final Cut Pro X还是比较流畅的。
这块显卡一直从lion用到ElCapitan,我都开了双DVI显示接口。当然这是要注入显卡FrameBuffer参数在Clover里的,还要DSDT的配合。通过Clover的监测,本显卡在系统里使用的是Duckweed接口定义方式,所以我在DSDT里对显卡部分定义为Duckweed,这已经是五年前的事了。
但是最近几天安装Mac OS X Sierra 和Mac OS X High Sierra时,用原来的Clover设置开不开双DVI接口了。
跑题,我的两个显示器还是很古老的方屏显示器,1280x1024的,其实方屏显示器对于运行一些软件来说是非常有用的。
直觉的判断就是显卡FrameBuffer参数没注入进去。那一定是找不到原来的参数了。
用HEX编辑软件打开Sierra里的AMD6000Controller 文件,找了半天,终于对比出来了,格式发生了变化。
一、ATI 显卡 FrameBuffer 参数格式对比
1、Mac OS X High Sierra下 AMD6000Controller 新显示器接口定义(Duckweed接口方式)
00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 00 00 00 00 00 12 04 04 01
00 00 00 00 00 04 00 00 04 03 00 00 00 01 00 00 00 00 00 00 22 05 05 02
00 00 00 00 00 08 00 00 04 02 00 00 00 01 00 00 00 00 00 00 11 02 03 04
00 00 00 00 00 02 00 00 14 02 00 00 00 01 00 00 00 00 00 00 00 00 06 05 复制代码
2、Mac OS X ElCapitan下 AMD6000Controller 老驱动
00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01
00 04 00 00 04 03 00 00 00 01 00 00 22 05 05 02
00 08 00 00 04 02 00 00 00 01 00 00 11 02 03 04
00 02 00 00 14 02 00 00 00 01 00 00 00 00 06 05 复制代码
对比发现,新的FrameBuffer参数在每个显示器接口都插入了两组 00 00 00 00 00
二、下面来具体做一遍
1、新驱动的原始参数,让Clover能在AMD6000Controller里找到这些Hex值。
000000000004000004030000000100000000000012040401
000000000004000004030000000100000000000022050502
000000000008000004020000000100000000000011020304
000000000002000014020000000100000000000000000605 复制代码
2、这是我们在Mac OS X ElCapitan 系统下,需要注入到AMD6000Controller的修正参数
00040000040300000001000012040401
04000000140200000001000010000505
00080000040200000001000022050304
04000000140200000001000011020606 复制代码
我们把它变成新格式,在新系统下注入。
000000000004000004030000000100000000000012040401
000000000400000014020000000100000000000010000505
000000000008000004020000000100000000000022050304
000000000400000014020000000100000000000011020606 复制代码
三、最终在Clover使用的HEX值
1、将新系统下FrameBuffer参数合并成Clover使用的格式,加入到Clover config.plist的ATIConnectorsData项里
000000000004000004030000000100000000000012040401000000000004000004030000000100000000000022050502000000000008000004020000000100000000000011020304000000000002000014020000000100000000000000000605 复制代码
2、将以下代码加到Clover config.plist的ATIConnectorsPatch项里,做注入。
000000000004000004030000000100000000000012040401000000000400000014020000000100000000000010000505000000000008000004020000000100000000000022050304000000000400000014020000000100000000000011020606 复制代码
3、写在config.plist中的样子:
<key>KernelAndKextPatches</key>
<dict>
<key>ATIConnectorsController</key>
<string>6000</string>
<key>ATIConnectorsData</key>
<string>000000000004000004030000000100000000000012040401000000000004000004030000000100000000000022050502000000000008000004020000000100000000000011020304000000000002000014020000000100000000000000000605</string>
<key>ATIConnectorsPatch</key>
<string>000000000004000004030000000100000000000012040401000000000400000014020000000100000000000010000505000000000008000004020000000100000000000022050304000000000400000014020000000100000000000011020606</string>
<key>AppleIntelCPUPM</key>
<true/>
<key>AppleRTC</key>
<true/>
<key>Debug</key>
<false/>
... 复制代码
4、当然,你也可以用Clover Configurator这个图形化的配置工具来做。
至此,ATI HD6850 HDMI Displayport DVI-I和DVI-D全接口输出成功。
展开阅读全文​