ixpsea 发表于 15/3/31 20:54:05

ATI Radeon HD 7850修改FB完美驱动Mac OSX


ATI Radeon HD 7850修改FB完美驱动Mac OSX
修改FB完美驱动HD7850,不在显示HD 7xxx

主板:H77N-WIFI
CPU:I5 3450
显示卡:蓝宝石HD7850 2G版(四接口DP、HDMI、DVI-D、DVI-I)
DSDT内建显卡ID为6818或S/L/E下AMD7000Controller.kext和AMDRadeonX4000.kext的info加入0x68191002HDMI可以正常输出,但系统信息显示HD 7xxx ,HDMI不能输出音频,而且不能多屏输出。肯定是FB不正确所至,故此决定修改FB。
第一步修改FB:复制S/L/E下AMD7000Controller.kext到桌面。在windows下用GPU-Z另存显卡的VBIOS,名称aaa.rom,在MAC下将aaa.rom和redsock_bios_decoder复制到桌面,打开终端输入
cd ~/desktop/
./redsock_bios_decoder < aaa.rom > redsock.txt得到redsock.txt,接口数据如下:21P0400.S03:C40304 Pitcairn PRO A1 GDDR5 64Mx32 2GBSubsystem Vendor ID: 174b      Subsystem ID: e221Object Header Structure Size: 355Connector Object Table Offset: 48Router Object Table Offset: 0Encoder Object Table Offset: fdDisplay Path Table Offset: 12Connector Object Id which is         encoderobj id which is enc 0x4)] linkb: falseConnector Object Id which is         encoderobj id which is enc 0x5)] linkb: trueConnector Object Id which is          encoderobj id which is enc 0x2)] linkb: falseConnector Object Id which is          encoderobj id which is enc 0x0)] linkb: falseConnector Object Id which is          encoderobj id which is linkb: false然后复制redsock_bios_decoder到桌面,终端输入
./radeon_bios_decode< aaa.rom > connector.txt 得到connector.txt,接口数据如下:ATOM BIOS Rom:         SubsystemVendorID:0x174b SubsystemID: 0xe221         IOBaseAddress:0x0000         Filename:221P0400.S03         BIOSBootup Message: C40304 Pitcairn PRO A1 GDDR5 64Mx32 2GBPCI ID: 1002:6819Connector at index 0         Type[@offset 45370]: DisplayPort (10)         Encoder[@offset 45374]: INTERNAL_UNIPHY2 (0x21)         i2cid[@offset 45480]: 0x90, OSX senseid: 0x1Connector at index 1         Type[@offset 45380]: HDMI-A (11)         Encoder[@offset 45384]: INTERNAL_UNIPHY2 (0x21)         i2cid[@offset 45507]: 0x92, OSX senseid: 0x3Connector at index 2         Type[@offset 45390]: DVI-D (3)         Encoder[@offset 45394]: INTERNAL_UNIPHY1 (0x20)         i2cid[@offset 45534]: 0x94, OSX senseid: 0x5Connector at index 3         Type[@offset 45400]: DVI-I (2)         Encoder[@offset 45404]: INTERNAL_UNIPHY (0x1e)         i2cid[@offset 45571]: 0x95, OSX senseid: 0x6Connector at index 4         Type[@offset45410]: DVI-I (2)         Encoder[@offset 45414]: INTERNAL_KLDSCP_DAC1 (0x15)         i2cid[@offset 45571]: 0x95, OSX senseid: 0x6得出:接口    txmit    enc    senseidDP         12      04      01HDMI   22      05      03DVI-D   11      02      05DVI-I    10      00      06DVI-I    00      10      06到http://forge.voodooprojects.org/p/chameleon/source/tree/HEAD/trunk/i386/libsaio/ati.c查到蓝宝显卡是Aji,为4个接口。


查到Aji的原始值:00040000040300000001010112040501000400000403000000010201220504020400000014020000000103000000030600080000040200000001040011020104
接口类型       接口标志位显示特性对齐字符   txmt    encd 显示顺序senseID|00 04 00 00 | 04 03 00 00|00 01    |    01 01    |   12|   04   |    05      |   01
接口类型:0200LVDS0400DVI-I1000VGA8000S-Video0002DVI0004Displayport0008HDMI
于是得出00040000040300000001010112040401DP00040000040300000001020112040301DP04000000140200000001030011020205DVI-D00080000040200000001040022050103HDMI (01为优先显示)显卡本身是DP、HDMI、DVI-D、DVI-I四个接口,为什么修改为两个相同的DP接口而不是两个DVI呢?解释是原始值前部分不能更改,只能修改后面对应部份,这个是试验过很多次又重启过很多次得出的结论,Aji原始值是两个DP接口,所以改为一样的数值就可以正常显示了,理论上HD7850虽然有四接口但只能三屏输出。用HexEdit打开桌面的ATI7000Controller.kext/Contents/MacOS/AMD7000Controller查找原版排成一行:00040000040300000001010112040501000400000403000000010201220504020400000014020000000103000000030600080000040200000001040011020104替换成修改好的一行然后保存:00040000040300000001010112040401000400000403000000010201120403010400000014020000000103001102020500080000040200000001040022050103将桌面修改好的ATI7000Controller.kext替换到S/L/E关修复权限。至此FB修改完成。

第二步DSDT加入代码并开启HDMI和DP音频:查找PEG0,在下面加入:
Method (_DSM, 4, NotSerialized)

                  {
                        Store (Package (0x0C)
                            {
                              "device-id",
                              Buffer (0x04)
                              {
                                     0x18, 0x68, 0x00, 0x00
                              },
                              "@0,name",
                              Buffer (0x08)
                              {
                                    "ATY,Aji"
                              },
                              "@1,name",
                              Buffer (0x08)
                              {
                                    "ATY,Aji"
                              },
                              "@2,name",
                              Buffer (0x08)
                              {
                                    "ATY,Aji"
                              },
                              "model",
                              Buffer (0x13)
                              {
                                    "AMD Radeon HD 7850"
                              },
                              "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)
                  }
                }
            }DSDT内建Aji三个显示输出接口,内建四接口会黑屏。注意:如要重装系统请将DSDT的三个Aji接口数据删掉,否则黑屏,因新系统未改FB值。至此显卡完美驱动,双屏显示成功(因未有设备,理论上三屏都可以),HDMI和DP音频输出, 系统信息显示HD7850工具和参考信息附件奉上。







附件下载:
**** Hidden Message *****

admin 发表于 15/4/3 17:16:02

前排支持一下、

chen449078 发表于 15/4/8 23:17:25

多谢楼主分享

biguohua 发表于 15/7/29 16:23:25

{:1_1:}{:7_249:}{:7_153:}{:7_153:}{:7_153:}{:7_153:}

天门启阖 发表于 15/7/29 23:55:09

顶顶顶顶顶顶顶顶顶顶顶

10708 发表于 15/9/19 23:22:10

看帖恢复室内的

zhangjinhua 发表于 15/9/23 13:44:11

grrrrrrrrg

jfp888 发表于 15/11/24 00:12:45

继续支持,多谢楼主

dawei000 发表于 15/12/15 23:16:47

7850修改FB完美驱动

流云69410 发表于 16/1/7 15:09:57

感谢分享。。。。。。。

lxin0126 发表于 16/3/22 18:09:42

试一试看看好不好用

mabaian 发表于 16/5/3 03:05:31

感谢反响

ying_evil 发表于 16/6/11 19:01:47

:'(终于找到了

zixiaocai 发表于 16/12/18 11:16:04

后排支持一下!

安宁 发表于 17/1/24 19:42:32

好贴,支持楼主!
页: [1] 2 3
查看完整版本: ATI Radeon HD 7850修改FB完美驱动Mac OSX