本帖最后由 kenbo257 于 2013-6-5 19:51 编辑
因为我之前的本本显卡是 6970m 已经完美驱动成功了 所以打算升级下显卡 就买了7970m 昨天拿到显卡 然后就开始继续折腾黑苹果经过一天的实验 第一个AMD radeon HD 7970m终于成功了 不知道我的显卡是不是奇葩 得出的FB的接口 居然有两个无效NULL这个让我很无语 也让我走了很多弯路 接口信息 如下 :
- ATOM BIOS Rom:
- SubsystemVendorID: 0x1028 SubsystemID: 0x057b
- IOBaseAddress: 0x0000
- Filename: C42904A1.119
- BIOS Bootup Message:
- Wimbledon XT A01 MXM GDDR5 300e/150m 0.9V A1
- PCI ID: 1002:6800
- Connector at index 0
- Type [@offset 45948]: (null) (-1055027892)
- Encoder [@offset 45952]: INTERNAL_UNIPHY2 (0x21)
- i2cid [@offset 46084]: 0x93, OSX senseid: 0x4
- Connector at index 1
- Type [@offset 45958]: (null) (-1055027892)
- Encoder [@offset 45962]: INTERNAL_UNIPHY (0x1e)
- i2cid [@offset 46111]: 0x94, OSX senseid: 0x5
- Connector at index 2
- Type [@offset 45968]: DisplayPort (10)
- Encoder [@offset 45972]: INTERNAL_UNIPHY1 (0x20)
- i2cid [@offset 46138]: 0x91, OSX senseid: 0x2
- Connector at index 3
- Type [@offset 45978]: HDMI-A (11)
- Encoder [@offset 45982]: INTERNAL_UNIPHY1 (0x20)
- i2cid [@offset 46165]: 0x90, OSX senseid: 0x1
- Connector at index 4
- Type [@offset 45988]: HDMI-A (11)
- Encoder [@offset 45992]: INTERNAL_UNIPHY2 (0x21)
- i2cid [@offset 46192]: 0x92, OSX senseid: 0x3
- Connector at index 5
- Type [@offset 45998]: VGA (1)
- Encoder [@offset 46002]: INTERNAL_KLDSCP_DAC1 (0x15)
- i2cid [@offset 46219]: 0x97, OSX senseid: 0x8
复制代码
从上面信息得出前两个都是 NULL 无效值 这样让我很纳闷!更郁闷的是我这个显卡还是6接口的我感觉笔记本 3-4个接口已经很多了这个这么奇葩!让我直接无语掉了
不管怎么样总要去实验一下不然永远不知道结果所以我就大胆的试试人嘛总要去尝试嘛不然怎么发现新大陆呢?
我结合 redsock.txt 和 connector.txt的信息我把这些接口信息整理一下
首先我猜测第一个 NULL无效值是LDVS 然后我就按照 LDVS的模板修改了第二个我也当做LDVS 修改
后面的就是按照对应的参数修改的出来的值
- 02 00 00 00 40 00 00 00 09 01 00 00 22 0500 04 ----------LDVS
- 02 00 00 00 40 00 00 00 09 01 00 00 10 00 01 05 ----------LDVS
- 00 04 00 00 04 06 00 00 00 71 00 00 21 03 02 02 ----------DisplayPort
- 00 08 00 00 04 02 00 00 00 71 00 00 11 02 03 01 ----------HDMI-A
- 00 08 00 00 04 02 00 00 00 71 00 00 12 04 04 03 ----------HDMI-A
- 10 00 00 00 10 00 00 00 00 01 00 00 00 10 05 08 ----------VGA
复制代码
整理得出参数如下: - 6 接口
- 020000004000000009010000220500040200000040000000090100001001010500040000040600000071000021030202000800000402000000710000110203010008000004020000007100001204040300000000000000000000000000000000 ---------最后VGA 我是直接屏蔽 因为用的话会多屏输出 所以最后参数都改为0
- 5 接口
- 0200000040000000090100002205000402000000400000000901000010010105000400000406000000710000210302020008000004020000007100001102030100080000040200000071000012040403
- 4 接口
- 02000000400000000901000022050004020000004000000009010000100101050004000004060000007100002103020200080000040200000071000011020301
复制代码
然后整理完之后使用 ATIconfig的每一个值去试验 - /* AMD7000Controller */
- {"Aji", 4},
- {"Buri", 4},
- {"Chutoro", 5},
- {"Dashimaki", 4},
- {"Ebi", 5},
- {"Gari", 5},
- {"Futomaki", 4},
- {"Hamachi", 4},
- {"OPM", 6},
- {"Ikura", 6},
复制代码
这上面得ATIconfig 一个一个去试验
参数整理FB参数和ATIconfig对应的值如下
实验方法:1,根据自己修改好的 FB接口参数如下去替换上面对应的接口参数 - 6 接口
- 020000004000000009010000220500040200000040000000090100001001010500040000040600000071000021030202000800000402000000710000110203010008000004020000007100001204040300000000000000000000000000000000
- 5 接口
- 0200000040000000090100002205000402000000400000000901000010010105000400000406000000710000210302020008000004020000007100001102030100080000040200000071000012040403
- 4 接口
- 02000000400000000901000022050004020000004000000009010000100101050004000004060000007100002103020200080000040200000071000011020301
复制代码
2 ,然后修改DSDT 添加 ATIconfig值
3,变色龙 GE=YES ATIconfig=对应的ATIconfig值
实验失败告终!得出结论!
/* AMD7000Controller */ {"Aji", 4}, ---------------------------白屏 {"Buri", 4}, --------------------------白屏 {"Chutoro", 5},----------------------- 白屏 {"Dashimaki", 4},----------------------白屏 {"Ebi", 5},---------------------------黑屏 {"Gari", 5},-------------------------- 白屏 {"Futomaki", 4},-----------------------白屏 {"Hamachi", 4},-----------------------黑屏 {"OPM", 6},--------------------------黑屏 {"Ikura", 6},---------------------------白屏
然后让我心灰意冷 不过没会放弃 终于功夫不负有心人 我又仔细看了显卡参数 然后和之前的 6970m对比了下 发现 有一些相似处
- 7970m FB参数 6970m FB参数
- 02 00 00 00 40 00 00 00 09 01 00 00 22 05 00 04
- 02 00 00 00 40 00 00 00 09 01 00 00 10 00 01 05 = 02 00 00 00 40 00 00 00 09 01 00 00 10 00 00 05 LDVS
- 00 04 00 00 04 06 00 00 00 71 00 00 21 03 02 02 = 00 04 00 00 04 06 00 00 00 71 00 00 21 03 01 02 DP
- 00 08 00 00 04 02 00 00 00 71 00 00 11 02 03 01 = 00 08 00 00 04 02 00 00 00 71 00 00 11 02 02 01 HDMI
- 00 08 00 00 04 02 00 00 00 71 00 00 12 04 04 03 = 00 08 00 00 04 02 00 00 00 71 00 00 12 04 03 03 HDMI
- 10 00 00 00 10 00 00 00 00 01 00 00 00 10 05 08 = 10 00 00 00 10 00 00 00 00 01 00 00 00 10 04 08 VGA
复制代码
7970M整理出来的FB参数 比 6970m多出来一个接口 6970m的接口参数第一个是LDVS 这样说的话 那7970m的第二个也是LDVS 第一个可能是别的 或者多余的 经过上面实验 第一个做LDVS是不行的!所以再次修改参数! 把第一个接口舍去 用中间4个 (VGA屏蔽掉)
- 02 00 00 00 40 00 00 00 09 01 00 00 22 0500 04 舍去掉
- 02 00 00 00 40 00 00 00 09 01 00 00 10 00 01 05
- 00 04 00 00 04 06 00 00 00 71 00 00 21 03 02 02 只要中间4行
- 00 08 00 00 04 02 00 00 00 71 00 00 11 02 03 01
- 00 08 00 00 04 02 00 00 00 71 00 00 12 04 04 03
- 10 00 00 00 10 00 00 00 00 01 00 00 00 10 05 08 VGA屏蔽
复制代码
修改完之后整理得出的代码是: - 02000000400000000901000010000105000400000406000000710000210302020008000004020000007100001102030100080000040200000071000012040403
复制代码
然后在根据上面的ATIconfig的值去实验
这次测试我是抽样的测试的首先实验Futomaki因为我见很多人用这个驱动了所以先拿这个做实验首先修改ATI7000Controller.kext里面的ATI7000Controller文件找到Futomaki对应的原版FB的值 替换我修改好的值然后dsdt里面添加Futomaki 代码然后变色龙GE=YES ATIconfig=Futomaki 然后进入系统还是一样白屏! 然后我没有放弃又开始实验Dashimaki
修改ATI7000Controller.kext里面的ATI7000Controller 文件找到Dashimaki 对应的原版FB的值 - Dashimaki 原版FB的值
- 00040000040300000001010012040202000400000403000000010200220503050400000014020000000103000000040400080000040200000001040011020101
复制代码
然后替换我修改后的 - 02000000400000000901000010000105000400000406000000710000210302020008000004020000007100001102030100080000040200000071000012040403
复制代码
保存之后 再修改DSDT 里面显卡代码 添加 Dashimaki 代码 dsdt显卡代码如下: - Device (PEGP)
- {
- Name (_ADR, Zero)
- Name (_PRW, Package (0x02)
- {
- 0x09,
- 0x04
- })
- Method (_DSM, 4, NotSerialized)
- {
- Store (Package (0x3A)
- {
- "@0,ATY,EFIDisplay",
- Buffer (0x0C)
- {
- "LVDS"
- },
- "@0,compatible",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "@0,device_type",
- Buffer (0x08)
- {
- "display"
- },
- "@0,name",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "@1,device_type",
- Buffer (0x08)
- {
- "display"
- },
- "@1,compatible",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "@1,connector-type",
- Buffer (0x04)
- {
- 0x00, 0x08, 0x00, 0x00
- },
- "@1,name",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "@2,name",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "@3,name",
- Buffer (0x0E)
- {
- "ATY,Dashimaki"
- },
- "ATY,Card#",
- Buffer (0x0E)
- {
- "C42-904A1-119"
- },
- "ATY,Rom#",
- Buffer (0x0E)
- {
- "C42-904A1-119"
- },
- "device_type",
- Buffer (0x14)
- {
- "ATY,DashimakiParent"
- },
- "VRAM,totalsize",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x40
- },
- "model",
- Buffer (0x14)
- {
- "AMD Radeon HD 7970M"
- },
- "AAPL00,DualLink",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,display-dual-link",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL,HasPanel",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL,Haslid",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "AAPL,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,backlight-control",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,AAPL,boot-display",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
- "@0,built-in",
- Buffer (One)
- {
- 0x01
- },
- "@0,display-link-component-bits",
- Buffer (0x04)
- {
- 0x06, 0x00, 0x00, 0x00
- },
- "@0,display-pixel-component-bits",
- Buffer (0x04)
- {
- 0x06, 0x00, 0x00, 0x00
- },
- "AAPL00,Dither",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x00
- },
- "@0,display-dither-support",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x00
- },
- "@0,inverter-current",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x00
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
- }
复制代码
然后在变色龙中 GE=YES ATIconfig=Dashimaki - <?xml version="1.0"encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>AtiConfig</key>
- <string>Dashimaki</string>
- <key>Graphics Mode</key>
- <string>1920x1080x32</string>
- <key>GraphicsEnabler</key>
- <string>Yes</string>
- <key>UseAtiROM</key>
- <string>No</string>
- <key>UseKernelCache</key>
- <string>No</string></dict>
- </plist>
复制代码
然后安装KEXT 之后还是白屏!不过这次白屏可以看见鼠标!这是一次大突破能识别鼠标已经成功一大半了因为很多7系列的显卡都是白屏问题所以我就用 FBRotate 这个进入安全模式之后把FBRotate 这个 APP 添加到用户启动项中然后在登陆设置中取消输入密码登陆让系统自动登陆 然后重启首先进去还是白屏白屏2-3秒之后蓝屏蓝屏之后就进如桌面了!
进入桌面之后看见久违的透明效果 QE/CI 已开启有水波纹有特效无卡顿可看视频!
上图
|