本帖最后由 weinimeli 于 2012-9-16 22:08 编辑
引子: 众所周知,在mac os x lion 系统下,AMD HD6850 是免驱的,虽然免驱,但是存在很多问题:
1)显卡信息显示不全,如AMD HD6xxx; 2)DVDPlayer退出; 3)HDMI或DVI-I接显示器或电视黑屏或无反应,Displaypor接口不能用; 4)需要双插法显示输出接口才有输出; 5)HDMI或diaplayport没有音频输出; 6)即使使用AtiCongfig,修改dsdt,使用symbios设定等等,AMD HD6850输出还是不完美。
我的配置: 系统:OS X MLion PD 4 & 虚拟机 Win8 RPreview
CPU:Intel Core i3 2120 (Intel HD Graphic 2000)
显卡:ATI Radeon HD 6850
主板:GA-H61M-D2-B3 机箱:Raidmax-Aeolus
内存:Kingston DDR3 1333MHz 4G*2
硬盘:WD 500G Blue and Crucial M4 64G SSD
在10.7时代,我的6850解决了HDMI图像和声音输出, DVI HDMI双屏输出,音响HDMI混合声音输出.有网友反应DP不行,但是身边没有设备,无法测试.但是修改好的理论上可以驱动.
到了10.8时代,我发现原来10.7的不能用了,现在修改了在10.8下面的ATI6000Controller.kext.
希望显卡是HD6850的,都来测试一下,我自己输出完全正常. 如果有什么问题或者测试有什么问题,麻烦跟帖一下.
同样10.7下面是ranxun的帖子
思路和解决方法都有,另外也有我修改过的ATI6000Controller.kext 也欢迎都测试一下 都在一楼可以下载.
这是连接 https://bbs.pcbeta.com/viewthread-1026884-1-1.html
9.16更新.最近购入了HKC T7000 27寸IPS硬屏显示器.用上了PD接口.已经换回原装ATI6000.kext
我的显卡:蓝宝石 HD 6850 1G白金版.
下面是我的显卡BIOS. 如果你的6850提取的显卡BIOS跟我一模一样.而且使用PD接口的话.可以换回原装的ATI6000.Kext(当然了.双屏PD+DVI-D可以用,但是HDMI就不行了)
8.27 更新接口修改教程。引用坛子内的高人。年代久远,忘记名字了。要是本人见到的话请MP我,我加上去。
修改Ati6000controller.kext里的ATIFramebuffer具体路径是S/L/E下Ati6000controller.kext/Contents/MacOS/ATI6000Controller。
早前雪豹的版本里是没有独立Ati6000controller.kext
显卡AtiConfig大都都在ATIFramebuffer.kext 下所以大神们还是叫他 ATIFramebuffer
这里应该叫Ati6000controller.kext里的6000Controller
这是radeon_bios_decode得到的内容,桔色部分为接口,取需要的蓝色部分
ATOM BIOS Rom: SubsystemVendorID: 0x1462 SubsystemID: 0x2441 IOBaseAddress: 0xee00 Filename: MBPH244G.EB5 BIOS Bootup Message: 113-MSITV244MS.1R1 MSI BARTS PROH V244 ELPIDA BDIE 32MX32 1G PCI ID: 1002:6739 Connector at index 0 Type [@offset 44278]: DisplayPort (10) Encoder [@offset 44282]: INTERNAL_UNIPHY2 (0x21) i2cid [@offset 44388]: 0x90, OSX senseid: 0x1 Connector at index 1 Type [@offset 44288]: HDMI-A (11) Encoder [@offset 44292]: INTERNAL_UNIPHY2 (0x21) i2cid [@offset 44415]: 0x93, OSX senseid: 0x4 Connector at index 2 Type [@offset 44298]: DVI-I (2) Encoder [@offset 44302]: INTERNAL_UNIPHY (0x1e) i2cid [@offset 44452]: 0x94, OSX senseid: 0x5 Connector at index 3 Type [@offset 44308]: DVI-I (2) Encoder [@offset 44312]: INTERNAL_KLDSCP_DAC1 (0x15) i2cid [@offset 44452]: 0x94, OSX senseid: 0x5 Connector at index 4 Type [@offset 44318]: DVI-D (3) Encoder [@offset 44322]: INTERNAL_UNIPHY1 (0x20) i2cid [@offset 44479]: 0x95, OSX senseid: 0x6
这是redsock_bios_decoder得到的内容,桔色部分为接口,取需要的蓝色部分
MBPH244G.EB5:
113-MSITV244MS.1R1 MSI BARTS PROH V244 ELPIDA BDIE 32MX32 1G Subsystem Vendor ID: 1462 Subsystem ID: 2441 Object Header Structure Size: 355 Connector Object Table Offset: 48 Router Object Table Offset: 0 Encoder Object Table Offset: fd Display Path Table Offset: 12 Connector Object Id [19] which is [C_PORT] encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x12 [duallink 0x2] enc 0x4)] linkb: false Connector Object Id [12] which is [HDMI_TYPE_A] encoder obj id [0x21] which is [INTERNAL_UNIPHY2 (osx txmit 0x22 [duallink 0x2] enc 0x5)] linkb: true Connector Object Id [2] which is [DVI_I] encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false Connector Object Id [2] which is [DVI_I] encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false Connector Object Id [3] which is [DVI_D] encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x11 [duallink 0x1] enc 0x2)] linkb: false
这个是 ATY,Duckweed 的原始具体数值,看后4组数字,绿色部分代表序号这里不要动
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
下面是按照上面两个人文件和原始具体数值整理出来初步数值,可以看到数值很接近,第一行和第三行数值是一样的,所以指定AtiConfig值为ATY,Duckweed后这两个接口就可以直接用了,其他接口由于数值有差别所以不能用,只要修改数值就可以用了
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 04 00 08 00 00 04 02 00 00 00 01 00 00 11 02 03 06 00 02 00 00 14 02 00 00 00 01 00 00 10 00 06 05 至此已经可以DVI双屏输出,系统的音频设备里已经有HDMI/DisplayPort输出,理论上DP和HDMI应该可以用了(经测试HDMI没有音频输出),DVI-I和DVI-D的顺序是反的,而且DVD又开始崩溃了,根据接口类型00 08是HDMI整理循序使22 05 ** 04和HDMI接口匹配(浅蓝,红,蓝中间的绿色数值保持不要动,经测试修改的话会造成鼠标卡顿)
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 10 00 05 05 00 08 00 00 04 02 00 00 00 01 00 00 22 05 03 04 00 02 00 00 14 02 00 00 00 01 00 00 11 02 06 05 到这里已经可是完美实现全接口输出,而且HDMI也有音频输出!之前认为接口类型会造成鼠标卡顿,经测试造成鼠标卡顿的是接口顺序,近一步整理接口类型。
00 04 00 00 04 03 00 00 00 01 00 00 12 04 04 01 DP 04 00 00 00 14 02 00 00 00 01 00 00 10 00 05 05 DVI-I 00 08 00 00 04 02 00 00 00 01 00 00 22 05 03 04 HDMI 04 00 00 00 14 02 00 00 00 01 00 00 11 02 06 06 DVI-D
这样就应该完美了!用HexEdit打开Ati6000controller.kext里的6000Controller 用最后这组数据替换原始数据后保存退出 接下来用Kext Wizard安装Ati6000controller.kext到SLE修复权限,重启! (变色龙加 -v -f 重建kext缓存)一切完美,系统正常识别不再卡顿DVD正常有水波纹 mac os x 10.7.4 & 10.8测试DVI完美,HDMI接口完美有音频输出, 本人PD设备还没到手,不能给出评测。但是楼下有哥们说完美!
很多人都问DSDT的是否要添加。要完美输出HDMI声音,或者说让系统识别出正确的ATI HD 6850,而不是6XXX。必须添加DSDT。如果你是技嘉的主板,可以尝试寻找 Device (PEG0) 或者 0x00010000 ,找到位置。添加如下代码
Device (PEG0)
{
Name (_ADR, 0x00010000)
Name (_STA, 0x0F)
Name (_PRW, Package (0x02)
{
0x09,
0x05
})
Device (GFX0)
{
Name (_ADR, Zero)
Name (_PRW, Package (0x02)
{
0x09,
0x05
})
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x0C)
{
"@0,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@1,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@2,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"@3,name",
Buffer (0x0D)
{
"ATY,Duckweed"
},
"model",
Buffer (0x13)
{
"ATI Radeon HD 6850"
},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
Device (HDAU)
{
Name (_ADR, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
注意:技嘉H61、H67和P67需要设置symbios设置为macpro,否则爆音,或者放声时间长了,会有沙沙的声音,至少我的就如此。
下面是效果图
最后是下载地址~
ATI6000Controller.kext(10.8).zip
(217.43 KB, 下载次数: 2287)
|