AMD HD5450/5750/5830/6750/6770/6790等在苹果支持列表之外的显卡,添加ID的驱动方
本帖最后由 hellozhangxin 于 2013-3-31 11:39 编辑本篇既是ATI5系和6系显卡驱动探讨中第二步 2.如果你的ID在支持的列表里那么直接进行第三步,如果不在的话则要在
ATI5000Controller.kext(如果你的显卡是5系列显卡或者其马甲卡)
ATI6000Controller.kext(如果你的显卡是6系列显卡或者其马甲卡)
以及AMDRadeonAccelerator.kext(ML中)中对应的核心下
Lion中则是在ATIRadeonX3000.kext中添加
的补充内容,也是相对相对独立的部分。今天就简单介绍一下,大家可以交流
本文里面遇到ATI5000Controller.kext/ATI6000Controller.kext时选择使用ATI5000Controller.kext还是ATI6000Controller.kext
取决于你卡的型号,5xxx如5750或是5系列马甲卡如6770选用ATI5000Controller.kext,6xxx如6790选择ATI6000Controller.kext修改
尽管,苹果原生支持的ATI 5系列和6系列的显卡相当的多了,但是还有一部分不幸的同学,显卡型号不再被支持之列。其实对于同一核心的显卡来说,驱动本身并没什么区别,这也是我们今天能修改ID成功的基础,修改ID有三种办法:在ATI5000Controller/ATI6000Controller.kext和AMDRadeonAccelerator.kext添加/修改成你的ID,使用ATI5000Injector.kext,最后是DSDT仿冒
前两种本质上是一样的,是通过kext注入你的ID,或是直接加入ID识别,后两种是在DSDT中写入信息,让系统直接读取都是,从而系统不会真正识别你的显卡ID,而是使用你写在DSDT的ID,可以骗过系统,加载驱动。
这三种选一种使用即可,所有工具在一楼下面提供 推荐方法三 ,新手的话还是方法一吧
实测在Lion中可能不能开启QE/CI
在ML中QE/CI正常
我们先来讲第一种: 直接修改原有的kext
优点:简单粗暴,对原文件改动很小
缺点:每次升级后就要重新修改
在新的ML中有一些原来lion原生支持的卡ID被剔除了,不过没有关系,我们能再加回去{:9_607:}
1.查看你的显卡ID,关于本机>更多信息>系统报告>图形卡/显示器>设备ID,我这里是0x68bf
1.拷贝ATI5000Contrller.kext/ATI6000Controller.kext和AMDRadeonAccelerator.kext到桌面{:9_410:}嗯,挺简单的
2.在ATI5000Contrller.kext/ATI6000Controller.kext上单击右键>显示包内容>Contents>Info.plist
我们往下拉,找到IOKitPersonalities 点前面的小三角展开IOKitPersonalities再展开下面的Controller
会看到IOPCIMatch后面跟了好多显卡ID哦,如图
我们双击那些ID,然后把第一个改成我的ID 0x68BF1002 (这里的ID就是刚才的得到的ID后面跟上1002)
然后再点一下前面的IOPCIMatch,然后会变成这个样子
确认已经变成你的显卡ID之后我们点小红叉关闭
这里当然选save咯
同理
系统是Lion的话需要在ATIRadeonX3000里面的info.plist添加你的显卡ID
方法与上面ATI5000Controller相同
系统是ML的则需要修改AMDRadeonAccelerator.kext的Info.plist添加ID的位置在Info.plist的IOKitPersonalities>AMDXXXXGraphicsAccelerator>IOPCIMatch下,至于XXXX到底是哪个,这取决于你的核心类型
你可以直接在搜索引擎里 输入 你的卡名 核心类型 如:6750 核心类型
Lion的话需要在ATIRadeonX3000里面的info.plist添加你的显卡ID
方法与上面ATI5000Controller相同
或者直接去这里 点我传送 看看AMDRadeonAccelerator.kext里面原生支持的卡,找相近的型号,看看它在哪个下面 如5750找到5770发现它在AMDJuniperGraphicsAccelerator下面
下面提供几款卡的参照
5450/5430/5430m/6370m在AMDCedarGraphicsAccelerator下修改ID
5750/6750/6770在AMDJuniperGraphicsAccelerator下修改ID
5830/5970在AMDCypressGraphicsAccelerator下修改ID
6790在AMDBartsGraphicsAccelerator下修改ID
那我们就在AMDJuniperGraphicsAccelerator下面的IOPCIMatch里面修改ID,同样记得选保存
然后用kextwizard安装修改好的kext,不出意外的话,就可以驱动显卡了
不会用kextwizard的同学去 这里爬贴
这里插一句 kextwizard最好用英文版的,中文版我用好像有点问题
本帖最后由 hellozhangxin 于 2012-7-18 09:56 编辑
2.ATI5000injector.kext 这是lion时代在ATI hd 5450上应用十分广泛的驱动方式,本质上和第一种方法没有区别,在启动前注入ID,相当于启动前手动修改一次上面提到的两个kext,属于仿冒驱动
这个驱动对6系列一样有效果
优点:只要显卡驱动结构不发生变化,升级系统不受影响
缺点:可能会拖慢一点开机速度
虽说在lion时代广泛使用,升级到新系统ML后驱动结构发生了变化:新的AMDRadeonAccelerator.kext取代了原来的ATIRadeonX3000 所以,对应注入ID的部分发生了变化,导致了使用原来ATI5000injector.kext的同学无法开启QE/CI,其实简单修改一下原来的ATI5000injector.kext就没有问题
首先,下载我提供的ATI5000injector.kext的模板
同样,我们在ATI5000injector.kext上点击右键>显示包内容>Info.plist
这回我们IOKitPersonalities下面的ATIRadeonX3000和Controller都要修改
下面是修改前修改后比对图,红框是修改过的部分
这是Controller部分
如果是6系列的话那IOClass和IOName都要填AMD6000Controller
IOPCIMatch下面填你的显卡ID后面跟上1002
这是ATIRadeonX3000的修改
这里面ATIRadeonX3000要改成的内容和1中一样,不可直接套用
然后用kextwizard安装这个kext即可
本帖最后由 hellozhangxin 于 2012-7-18 10:15 编辑
3.DSDT仿冒
优点:很简单,不需要改kext,升级没什么影响,显卡驱动架构变化也不会影响驱动
缺点:需要改DSDT,对于不使用DSDT或不想使用DSDT或一看到DSDT就头大的同学 就算了吧
{:9_419:}
先去 这个帖子 的三楼去学习下查看显卡位置,在里面多添加一行代码
"device-id",
Buffer (0x04)
{
0xB8, 0x68, 0x00, 0x00
},
这里面写的是原生支持的ID,原则和1中一样,找显卡核心一样的相近型号的ID 我这里找的是 68B8 是 5770 的ID。
我的6750刷回原来的ID现在就是用的这种方法仿冒的驱动,工作正常
更改后的dsdt代码:
Device (PEGP)
{
Name (_ADR, 0xFFFF)
Name (_SUN, One)
Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"@0,name",
Buffer ()
{
"ATY,Baboon" //这里填的是你指定的Aticonfig
},
"@1,name",
Buffer ()
{
"ATY,Baboon"
},
"@2,name",
Buffer ()
{
"ATY,Baboon"
},
"device_type",
Buffer ()
{
"ATY,BaboonParent"//这里填的是你指定的Aticonfig+Parent
},
"VRAM,totalsize",
Buffer ()
{
0x00, 0x00, 0x00, 0x20//如果你是1G显存 这填0x00, 0x00, 0x00, 0x40
},
"hda-gfx",
Buffer ()
{
"onboard-1"
},
"device-id",
Buffer (0x04)
{
0xB8, 0x68, 0x00, 0x00
},
"model",
Buffer ()
{
" ATI Radeon HD 6750"
}
}, 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)
}下面部分是HDMI的音频代码,没影响的
编译保存,替换原来的DSDT即可
Ok,就这么简单
{:9_610:}{:9_610:}
標題因該再多一個 老手勿來 新手請進{:7_495:}
標題因該再多一個,AMD显卡,nv不适用
我倒,还没编辑完?
ljlxl 发表于 2012-7-18 09:36 static/image/common/back.gif
標題因該再多一個,AMD显卡,nv不适用
NV卡也试用 改的东西不一样而已... 道奇兔 发表于 2012-7-18 09:34 static/image/common/back.gif
標題因該再多一個 老手勿來 新手請進
{:9_631:}话说我的帖子都是新手系列,不过第三种方案还是很有交流意义滴 hellozhangxin 发表于 2012-7-18 09:57 static/image/common/back.gif
话说我的帖子都是新手系列,不过第三种方案还是很有交流意义滴
{:7_425:}表示都寫入fakesmc的無壓力 {:8_512:}表示引導會將所有dsdt, kext, kernel都會自動patch的無壓力. 道奇兔 发表于 2012-7-18 10:02 static/image/common/back.gif
表示都寫入fakesmc的無壓力
敢不敢扔掉fakesmc
{:9_629:} pcj 发表于 2012-7-18 10:07 static/image/common/back.gif
表示引導會將所有dsdt, kext, kernel都會自動patch的無壓力.
为什么kernal还要patch? hellozhangxin 发表于 2012-7-18 10:16 static/image/common/back.gif
敢不敢扔掉fakesmc
你玩黑蘋果有種扔掉fakesmc不敢滅了你JJ 收藏学习,虽然暂时是HD6850免驱 pcj 发表于 2012-7-18 10:07 static/image/common/back.gif
表示引導會將所有dsdt, kext, kernel都會自動patch的無壓力.
请教如何自动patch。新手求指点。。 见贴就顶心情放松版主提示灌水封停 hellozhangxin 发表于 2012-7-18 10:17 static/image/common/back.gif
为什么kernal还要patch?
公司老CPU P4 3.06當然要patch阿. xfzh 发表于 2012-7-18 11:46 static/image/common/back.gif
请教如何自动patch。新手求指点。。
不是寫的很明白了嗎?
引導會自動patch阿. pcj 发表于 2012-7-18 17:58 static/image/common/back.gif
公司老CPU P4 3.06當然要patch阿.
原来是老机器啊 pcj 发表于 2012-7-18 18:02 static/image/common/back.gif
不是寫的很明白了嗎?
引導會自動patch阿.
pcj老大的P4難道...............也裝10.8了{:9_639:}