- 积分
- 629
- 最后登录
- 2021-7-31
- 精华
- 0
- 阅读权限
- 40
- 主题
- 62
- UID
- 1457182
- 帖子
- 1497
- PB币
- 2512
- 威望
- 5
- 贡献
- 0
- 技术
- 496
- 活跃
- 442
- UID
- 1457182
- 帖子
- 1497
- PB币
- 2512
- 贡献
- 0
- 技术
- 496
- 活跃
- 442
|
沙发
发表于 2014-2-8 22:37:29
IP属地广东
|只看该作者
本帖最后由 YSC3839 于 2014-2-9 20:18 编辑
首先要确定显卡在DSDT中的位置(如果你找得到就跳过)打开IORegistryExplorer,在查找那一栏输入display
仔细看左边的列表,红框的地方就是具体位置,PCI0 PEG0 PEGP,这就是显卡在DSDT里的位置了
然后我们要用到DSDT Editor(当然其他工具也可以)
打开DSDT Editor,点击菜单 File > Extract DSDT,就会提取本机的DSDT了
然后在左边列表找到刚才记下的位置
在这里,可以看到代码是这样的
我们在的下一行粘贴这段代码,这里发最精简代码,一些额外的将在下面介绍- Method (_DSM, 4, NotSerialized)
- {
- Store (Package ()
- {
- "@0,name",
- Buffer ()
- {
- "ATY,Vervet" //这里改成你自己的FB
- },
- "@1,name",
- Buffer ()
- {
- "ATY,Vervet" //这里改成你自己的FB
- },
- "@2,name",
- Buffer ()
- {
- "ATY,Vervet" //这里改成你自己的FB
- },
- "VRAM,totalsize",
- Buffer (0x04)
- {
- 0x00, 0x00, 0x00, 0x40 //改成自己的显存
- },
- "model",
- Buffer ()
- {
- "AMD Radeon HD 6750" //这里改成你自己的显卡名称
- },
- "device-id",
- Buffer (0x04)
- {
- 0xb8, 0x68, 0x00, 0x00 //改成你自己的ID
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- }, Local0)
- DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
- Return (Local0)
- }
复制代码 这里的FB可以去看变色龙源代码 forge.voodooprojects.org/p/chameleon/source/tree/HEAD/trunk/i386/libsaio/ati.c
打开网页后搜索你的显卡型号或者显卡ID
注意图中那些Null都是没用的,如果有多个你不确定的话,复制下FB的名称然后在最前面看看是几个接口的(去掉k)
比如Vervet是4个的,当然假如试了这个有问题的话就换其他的
然后复制到前面DSDT那里,我的显卡是3个接口,所以我DSDT里面就是@0-@2,有多的话就依此类推@3@4@5……忘记说了……那里的ID要改成驱动里面有的……
5000系列免驱ID 6898 6899 68E0 68E1 68D8 68C0 68C1 68D9 68B8 68B0 68B1 68A0 68A1
6000系列
6768 6770 6779 6760 6761 6750 6758 6759 6740 6741 6745 6738 6739 6720 6722 6718 6719 6840 6841 6704
7000系列
2600 2200 6790 6798 679A 679E 6780 6820 6821 6825 6827 682D 682F 6839 683B 683D 683F 6800 6801 6806 6808 6810 6818
找跟自己ID相似的,或者同一个核心的,比如我的6750是5750的马甲,而5750和5770是同核心的,5770也能免驱,所以写5770的ID,5770的ID是68B8,然后倒过来写在DSDT就是0xb8, 0x68, 0x00, 0x00
显存对应数值列表<00000020> | 512MB | <00000028> | 640MB | <00000030> | 768MB | <00000040> | 1GB | <00000060> | 1.5GB | <00000080> | 2GB | <000000C0> | 3GB | 这个似乎不能超过4GB,不知苹果怎么设计的
前面的代码是最精简的代码,起码能驱动,但是可能还会出现一些问题,所以我们可以添加一些额外代码
1、在系统报告 PCI卡里显示的- "@0,compatible",
- Buffer ()
- {
- "ATY,Vervet" //这里改成你自己的FB
- },
- "@0,device_type",
- Buffer (0x08)
- {
- "display"
- },
复制代码 这段代码添加上去后会显示出一个类型是“显示器控制器”的项目
2、系统报告 EFI驱动程序版本- "ATY,EFIVersion",
- Buffer (0x0A)
- {
- "01.00.456"
- },
复制代码 可以随便写,长度不要超出就没问题
3、ROM 修正版- "ATY,Rom#",
- Buffer (0x0E)
- {
- "144-L0306-S65"
- },
- "ATY,Card#",
- Buffer (0x0E)
- {
- "144-L0306-S65"
- },
复制代码 这个也能随便写
4、PCI卡中显示显卡信息- "device_type",
- Buffer ()
- {
- "ATY,VervetParent" //这个要改成你的FB+Parent
- },
复制代码 不过添加这个后PCI卡那里会显示两个(我的是这样的),所以我没添加
5、插槽名称- "AAPL,slot-name",
- Buffer ()
- {
- "PCIe"
- },
复制代码 这个也能随便写,不过我加了没用……
6、PCI卡中显示的名称(这个我没测试过,请大家测试)- "name",
- Buffer ()
- {
- "AMD Radeon HD 6750"
- },
复制代码 也是可以随便写
7、高分屏用的(这是@xiao201261回复给我的,我没测试)- "AAPL00,DualLink",
- Buffer (0x04)
- {
- 0x01, 0x00, 0x00, 0x00
- },
复制代码 还有很多,大家可以上网找~~
添加完这个之后看你需要添加HDMI代码- 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)
- }
- }
复制代码 注意HDAU的位置要与PEGP同级,就像这样
代码都添加好之后我们选择菜单上的Patch > Open,找到DTGP.txt(这个文件DSDT Editor自带了,在Patches文件夹里面),打开后点Apply
然后关闭Patch窗口,按F5编译试试,有Error的话要解决后才能编译成功,编译后点菜单上的IASL > Save AML,保存AML文件,然后放到引导程序的文件夹里面就大功告成了!重启查看效果吧~~
|
-
4
查看全部评分
-
|