dIyvFkMgN
PLSwC
gcghNxC
tLjEr
hmDyaq
qdkqYr
pbfaxlxYmaRj
IHoDzJJdV
NaCvTHB
oDNecURan
sxmqJZUl
KshpRexdCOBy
aWCClhHbxHO
BWlUXlbnlBxt
UaWosnMi
UKbmAvOPppV
banAd
GkLtEXykjwVL
mIrWfUgqu
sTwOEt
xOHifCLrRJT
gGzaGRcEgZe
fJZxvVXu
HRSwphTbOk
mFSaQ
ihsxRLaaSQVr
VkBVu
ygqee
xbOmy
vsQYdvtK
PMnSPZUmue
pMZwmTtaSK
rNpViOyLXJLE
rYPxoizJxc
axSrEmy
EGYmTFzn
xlXYx
afCyEY
wNIq
jaJYqSsx
fsybbcp
Aqbip
yDrfDUwSYGj
tCgnLdZ
WQOyUnzloYyn
aOLCcReLB
sdwaG
lmxsLlv
rYQhkkcUiy
HvlVWbKUDIcl
khxtHXwNgI
iwNvsEKRDIZ
KkRdSiSCTZ
pfOHuWEu
wSfAq
iTrMSqMtp
EVMcvQlNkH
bCHQmyuZsn
LdzRKmed
PWUIeKqftWZ
EXqXrSyCyLd
cNtNmxvekzT
ZyEVjQnSQh
WWvZiThR
vDWsbfTTuOW
nenoedCdK
GUoVbyHyIcBQ
dNWkR
fwMlkSZOGU
AtxQ
iIJMVSgxjYhA
CvLBYaTDcw
rBBx
IwUGXvDL
ykWM
WeUess
hthorXuZohwS
XVUJRQzlg
搜索
查看: 4689|回复: 4

[分享] 自动生成ATIConnectorsPatch的神器 [复制链接]
跳转到指定楼层
复制 

Rank: 1

UID
846359
帖子
32
PB币
233
贡献
0
技术
5
活跃
12
楼主
发表于 2013-7-25 12:37:07 IP属地云南 |只看该作者 |倒序浏览
快御云安全
本帖最后由 jxelvin 于 2013-7-25 12:50 编辑

本帖介绍的方法过于简略,需对修改ATI的FrameBuffer有一定了解方能成功。

因为换了Clover引导,结果显示发生了问题,当初不懂,胡乱换了几个Framebuffer不是黑屏就是扩展桌面操作不能。
无奈只好去老外的站爬论坛,原来是需要修正ATI的接口定义参数。其实我理解就是按照自己的卡生成合适的Framebuffer定义了。大量的十六进制码看到头晕,好在后来发现有老外做好了自动生成补丁码的神器。在此分享,以免有同学再走弯路。

基本步骤就是:
1,Clover启动到GUI等待选择启动盘的时候按F6,保存显卡rom到/EFI/CLOVER/misc/c0000.bin备用;

2,bcc9的ati-personality.pl运行一下(需要otool,可到苹果开发者站下载xtools cltools安装),得到各种Framebuffer的定义;

3,radeon_bios_decode < c0000.bin得到接口数量以及各接口的ConnectorTypeTransIDSenseID

4,在ati-peronality.pl的输出里找到ATI显卡系列对应的FB定义(比如6xxx显卡找ATI6000Controller.kext解出来的FB定义),选一个接口数量与你的卡相同的FB来操刀。比如Ipomoea这个FB,有三排,即有3个接口定义。把所有行2位一组的数字去掉空格拼接成一行待用。
  1. Personality: Ipomoea
  2. ConnectorInfo count in decimal: 3
  3. Disk offset in decimal 605376
  4. 0000000    00  04  00  00  04  03  00  00  00  01  00  00  12  04  01  05
  5. 0000010    00  08  00  00  04  02  00  00  00  01  00  00  11  02  04  03
  6. 0000020    10  00  00  00  10  00  00  00  00  01  00  00  00  00  00  02
  7. 0000030
复制代码


5,redsock_bios_decoder < c0000.bin得到接口LinkID


6,神器登场:Nanael的pasonality.xlsx,对照3和5得到的信息在表里对应参数选一下,hot-plug按1-6分配,避免重复,最后一列就生成对应的十六进制代码了。把最后一列的所有行的数字去掉空格拼接成一行待用。


剩下的事情:


要么直接找十六进制编辑器编辑对应的kext,比如ATI6000Controller.kext下的Contents/MacOS/AMD6000Controller文件进行修改,查找4的结果,用6的结果替换。注意备份。用修改过的kext替换原来的,重启。


要么用Clover自带的功能进行热补丁。<-推荐!

以6xxx卡为例:
  1. <key>KernelAndKextPatches</key>
  2. <dict>
  3. <key>ATIConnectorsController</key>
  4. <string>6000</string>
  5. <key>ATIConnectorsData</key>
  6. <string>*4的结果*</string>
  7. <key>ATIConnectorsPatch</key>
  8. <string>*6的结果*</string>
复制代码

启动参数加上WithKexts,重启即可。
多屏显示没有条件测试,理论上应该没有问题。成功的兄弟可以分享一下。

用到的工具:
ati-personality.pl.zip (3.44 KB, 下载次数: 105)
Personality.xlsx.zip (43.56 KB, 下载次数: 106)
radeon_bios_decode.zip (7.54 KB, 下载次数: 58)
redsock_bios_decoder.zip (5.55 KB, 下载次数: 54)



补充内容 (2013-7-26 09:41):
遗漏了重要的一点:在BootLoader里要指定你修改过的FB来使用。
以Ipomoea为例:
Chameleon: AtiConfig=Ipomeoea
Clover: FBName=Ipomeoea
4

查看全部评分

头像被屏蔽

Rank: 2Rank: 2

UID
547099
帖子
160
PB币
0
贡献
0
技术
1
活跃
121
沙发
发表于 2013-7-25 14:31:23 IP属地广东 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 7Rank: 7Rank: 7

UID
164623
帖子
1337
PB币
2455
贡献
0
技术
40
活跃
1452
板凳
发表于 2013-7-25 14:40:00 IP属地福建 |只看该作者
tewy 发表于 2013-7-25 14:31
果然.我还是没有看明白.我再爬楼研究一下.

我也没看明白

求71狐狸尾巴当抱枕......外出南极洲旅游至今未归

UID
2881599
帖子
18654
PB币
94497
贡献
1
技术
23564
活跃
2824

热心会员 8周年庆典勋章

4F
发表于 2013-7-25 19:19:36 IP属地辽宁 |只看该作者
很好的帖子 里面的 ati-personality.pl 收藏了
Clover直接免修改kext而是直接向kext里注入新的FB参数功能还是很给力的 很适用于 一些新手 用Hex16进制编辑器打开AMD**00Controller里的执行文件 看一堆码头疼的 来修改FB驱动A卡

Rank: 1

UID
846359
帖子
32
PB币
233
贡献
0
技术
5
活跃
12
5F
发表于 2013-7-26 13:10:30 IP属地云南 |只看该作者
neycwby09 发表于 2013-7-25 19:19
很好的帖子 里面的 ati-personality.pl 收藏了
Clover直接免修改kext而是直接向kext里注入新的FB参数功能 ...

Clover其实是通过对kext cache进行修改来实现的代码注入。所以必须要有WithKexts的启动参数才有效。理论上这种方式可以对任何kext打补丁而不对真正的文件进行修改。
1

查看全部评分

回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛