IgBYvKwDmek
LTiZ
cwQuZMmS
urEMvs
fTdW
Vmqz
BhuKVqltU
gvmSRxNPBpRy
JbXNsTrw
bpeM
IFvKrP
CySFEV
sJJYljOStw
bpGbvoTd
vnGtLCNioWE
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

rmapBUdou
onKLiAdFsf
effoHXREPK
LESF
NsyvJcX
EuLxjLRw
ZPuHlI
qiTP
JZrNbOTX
MkpTnVbkE
NwCaakC
dhSkGvcxm
ktRI
RlCJI
RJOaiF
DajeWntmNM
xXMBtBK
lsLbxbELLs
wMfQgs
pnVll
dGlxKPiQR
kosbmLxc
NeWWrYZ
HNsaaertquqD
oJjdNoQNTp
ttchXnFN
PJgsUvcu
Eklc
EgPEknWFO
YNRcc
syIfQkW
evBLQFMIG
aLcxTJPdQ
CuvKlPBO
lPHgBdYEUCkS
rpuodrP
XbDwEtY
xQCTA
qgmdkb
AWnDyxeETTtZ
TLLI
QvAmXFrS
uyuuRx
iQAwRXI
nXKpl
pFVZg
WRrUrUrfQcF
geJvEwm
WGRN
zzuhBqzgZw
QmWhhs
ZNjFac
TfIOx
PewGt
OQGKZCJi
搜索
查看: 56403|回复: 257

[教程] A卡桌面版DSDT完美驱动教程~~     [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
楼主
发表于 2014-2-8 22:37:12 IP属地广东 |只看该作者 |倒序浏览
快御云安全
前言:折腾黑苹果那么久了,也掌握了一些技术,闲着无聊就发个教程,让还未成功的朋友少走一些弯路
PS:移动版的我没测试过,不过有可能会有很多问题,还会涉及到改FB那些,本帖不作讨论
需要工具:
IORegistryExplorer(查看显卡位置)
DSDT Editor(编辑DSDT)

楼下发教程~~
5

查看全部评分

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
沙发
发表于 2014-2-8 22:37:29 IP属地广东 |只看该作者
本帖最后由 YSC3839 于 2014-2-9 20:18 编辑

首先要确定显卡在DSDT中的位置(如果你找得到就跳过)打开IORegistryExplorer,在查找那一栏输入display
Snip20140208_5.png
仔细看左边的列表,红框的地方就是具体位置,PCI0 PEG0 PEGP,这就是显卡在DSDT里的位置了

然后我们要用到DSDT Editor(当然其他工具也可以)
打开DSDT Editor,点击菜单 File > Extract DSDT,就会提取本机的DSDT了
然后在左边列表找到刚才记下的位置
Snip20140208_6.png
在这里,可以看到代码是这样的
Snip20140208_7.png
我们在
  1. Name (_ADR, 0xFFFF)
复制代码
的下一行粘贴这段代码,这里发最精简代码,一些额外的将在下面介绍
  1. Method (_DSM, 4, NotSerialized)
  2.                     {
  3.                         Store (Package ()
  4.                             {
  5.                                 "@0,name",
  6.                                 Buffer ()
  7.                                 {
  8.                                     "ATY,Vervet" //这里改成你自己的FB
  9.                                 },
  10.                                 "@1,name",
  11.                                 Buffer ()
  12.                                 {
  13.                                     "ATY,Vervet" //这里改成你自己的FB
  14.                                 },
  15.                                 "@2,name",
  16.                                 Buffer ()
  17.                                 {
  18.                                     "ATY,Vervet" //这里改成你自己的FB
  19.                                 },
  20.                                 "VRAM,totalsize",
  21.                                 Buffer (0x04)
  22.                                 {
  23.                                     0x00, 0x00, 0x00, 0x40 //改成自己的显存
  24.                                 },
  25.                                 "model",
  26.                                 Buffer ()
  27.                                 {
  28.                                     "AMD Radeon HD 6750" //这里改成你自己的显卡名称
  29.                                 },
  30.                                 "device-id",
  31.                                 Buffer (0x04)
  32.                                 {
  33.                                     0xb8, 0x68, 0x00, 0x00 //改成你自己的ID
  34.                                 },
  35.                                 "hda-gfx",
  36.                                 Buffer (0x0A)
  37.                                 {
  38.                                     "onboard-1"
  39.                                 }
  40.                             }, Local0)
  41.                         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  42.                         Return (Local0)
  43.                     }
复制代码
这里的FB可以去看变色龙源代码 forge.voodooprojects.org/p/chameleon/source/tree/HEAD/trunk/i386/libsaio/ati.c
打开网页后搜索你的显卡型号或者显卡ID
Snip20140208_8.png
注意图中那些Null都是没用的,如果有多个你不确定的话,复制下FB的名称然后在最前面看看是几个接口的(去掉k)
Snip20140208_10.png 比如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卡里显示的
  1. "@0,compatible",
  2. Buffer ()
  3. {
  4.     "ATY,Vervet" //这里改成你自己的FB
  5. },
  6. "@0,device_type",
  7. Buffer (0x08)
  8. {
  9.     "display"
  10. },
复制代码
这段代码添加上去后会显示出一个类型是“显示器控制器”的项目

2、系统报告 EFI驱动程序版本
  1. "ATY,EFIVersion",
  2. Buffer (0x0A)
  3. {
  4.     "01.00.456"
  5. },
复制代码
可以随便写,长度不要超出就没问题

3、ROM 修正版
  1. "ATY,Rom#",
  2. Buffer (0x0E)
  3. {
  4.     "144-L0306-S65"
  5. },
  6. "ATY,Card#",
  7. Buffer (0x0E)
  8. {
  9.     "144-L0306-S65"
  10. },
复制代码
这个也能随便写

4、PCI卡中显示显卡信息
  1. "device_type",
  2. Buffer ()
  3. {
  4.     "ATY,VervetParent" //这个要改成你的FB+Parent
  5. },
复制代码
不过添加这个后PCI卡那里会显示两个(我的是这样的),所以我没添加

5、插槽名称
  1. "AAPL,slot-name",
  2. Buffer ()
  3. {
  4.     "PCIe"
  5. },
复制代码
这个也能随便写,不过我加了没用……

6、PCI卡中显示的名称(这个我没测试过,请大家测试)
  1. "name",
  2. Buffer ()
  3. {
  4.     "AMD Radeon HD 6750"               
  5. },
复制代码
也是可以随便写

7、高分屏用的(这是@xiao201261回复给我的,我没测试)
  1. "AAPL00,DualLink",
  2. Buffer (0x04)
  3. {
  4.     0x01, 0x00, 0x00, 0x00
  5. },
复制代码
还有很多,大家可以上网找~~
添加完这个之后看你需要添加HDMI代码
  1. Device (HDAU)
  2.                 {
  3.                     Name (_ADR, One)
  4.                     Method (_DSM, 4, NotSerialized)
  5.                     {
  6.                         Store (Package (0x02)
  7.                             {
  8.                                 "hda-gfx",
  9.                                 Buffer (0x0A)
  10.                                 {
  11.                                     "onboard-1"
  12.                                 }
  13.                             }, Local0)
  14.                         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  15.                         Return (Local0)
  16.                     }
  17.                 }
复制代码
注意HDAU的位置要与PEGP同级,就像这样
Snip20140208_11.png
代码都添加好之后我们选择菜单上的Patch > Open,找到DTGP.txt(这个文件DSDT Editor自带了,在Patches文件夹里面),打开后点Apply
Snip20140208_12.png
Snip20140208_13.png
然后关闭Patch窗口,按F5编译试试,有Error的话要解决后才能编译成功,编译后点菜单上的IASL > Save AML,保存AML文件,然后放到引导程序的文件夹里面就大功告成了!重启查看效果吧~~
4

查看全部评分

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
板凳
发表于 2014-2-8 22:37:55 IP属地广东 |只看该作者
本帖最后由 YSC3839 于 2014-2-9 20:06 编辑

这一层楼我是来讲解一些DSDT的Warning和Remark的修复方法的
1、遇到
RemarkUse of compiler reserved name (_T_0)
按Command+F把"_T_0"替换成"T_0"(不含引号)
_T_1 _T_2等问题方法一样~~
2、遇到
WarningPossible operator timeout is ignored
找到这一行,应该是Acquire (MUT0, 0x0FFF)这样的代码,把"0x0FFF"改成"0xFFFF"(不含引号)
3、遇到
WarningReserved method must return a value (Integer/String/Buffer/Package/Reference required for XXX)
这个问题是函数没有返回导致的,先找到那个函数,然后在最后面加入Return (Zero)即可 Snip20140208_15.png


最后发一下需要的工具
IORegistryExplorer https://bbs.pcbeta.com/viewthread-1433743-1-6.html
DSDT编辑 https://bbs.pcbeta.com/viewthread-1460313-1-1.html(Maciasl)
DSDT Editor (需要装Java,Mac Win通用) DSDTEditor-Linux-Mac-Win.zip (1.41 MB, 下载次数: 1359)
3

查看全部评分

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

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

热心会员 8周年庆典勋章

4F
发表于 2014-2-8 22:40:41 IP属地辽宁 |只看该作者
前排支持一下~ 期待你的教程!

Rank: 7Rank: 7Rank: 7

UID
4403390
帖子
1918
PB币
1444
贡献
0
技术
54
活跃
463
5F
发表于 2014-2-8 22:40:54 IP属地山东 |只看该作者
YSC3839 发表于 2014-2-8 22:37
再占一层楼~~~

打算占多少楼才来教程

远景大水比们のLeader

Rank: 7Rank: 7Rank: 7

UID
4026306
帖子
2708
PB币
3419
贡献
0
技术
9
活跃
497

活动参与先锋 8周年庆典勋章

6F
发表于 2014-2-8 22:47:03 IP属地广东 |只看该作者
Macbook、 发表于 2014-2-8 22:40
打算占多少楼才来教程

一眼看过去,两楼!

Rank: 7Rank: 7Rank: 7

UID
253574
帖子
648
PB币
3595
贡献
0
技术
3
活跃
662
7F
发表于 2014-2-8 22:47:35 IP属地广东 |只看该作者
A卡前排强力支持。

Rank: 7Rank: 7Rank: 7

UID
4403390
帖子
1918
PB币
1444
贡献
0
技术
54
活跃
463
8F
发表于 2014-2-8 22:51:35 IP属地山东 |只看该作者
YSC3839 发表于 2014-2-8 22:37
占楼,发教程~~

期待中的楼层,,楼主快啊

Rank: 11Rank: 11Rank: 11

UID
3545481
帖子
8885
PB币
38347
贡献
0
技术
7848
活跃
2904

Win10先驱者 我是大学生! 远景美化达人 远景技术达人 远景智多星

9F
发表于 2014-2-8 22:55:21 IP属地广东 来自手机 |只看该作者
那我就前排挤一挤吧

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
10F
发表于 2014-2-9 02:28:09 IP属地广东 来自手机 |只看该作者
自己顶一下吧

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1943

十周年 Win10先驱者 8周年庆典勋章

11F
发表于 2014-2-9 12:08:29 IP属地未知 |只看该作者
  ge=yes完美驱动

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1943

十周年 Win10先驱者 8周年庆典勋章

12F
发表于 2014-2-9 12:11:09 IP属地未知 |只看该作者
推荐下:
  1.                         "AAPL00,DualLink",
  2.                         Buffer (0x04)
  3.                         {
  4.                             0x00, 0x00, 0x00, 0x00   //  是高分屏改0x01, 0x00, 0x00, 0x00                        
复制代码


Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
13F
发表于 2014-2-9 18:56:57 IP属地广东 |只看该作者
xiao201261 发表于 2014-2-9 12:11
推荐下:

这个可以,找时间加一点额外的DSDT代码上去,话说我1600x900这个代码有什么用嘛?

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1943

十周年 Win10先驱者 8周年庆典勋章

14F
发表于 2014-2-9 18:59:38 IP属地未知 |只看该作者
YSC3839 发表于 2014-2-9 18:56
这个可以,找时间加一点额外的DSDT代码上去,话说我1600x900这个代码有什么用嘛?

分辨率1600x900?

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
15F
发表于 2014-2-9 19:53:06 IP属地广东 |只看该作者
xiao201261 发表于 2014-2-9 18:59
分辨率1600x900?

是的,接口HDMI,有什么用?

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1943

十周年 Win10先驱者 8周年庆典勋章

16F
发表于 2014-2-9 20:02:46 IP属地未知 |只看该作者
YSC3839 发表于 2014-2-9 19:53
是的,接口HDMI,有什么用?

  没用  对于我这桌面显卡有内屏的必须用

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
17F
发表于 2014-2-9 20:04:26 IP属地广东 |只看该作者
xiao201261 发表于 2014-2-9 20:02
没用  对于我这桌面显卡有内屏的必须用

内屏?桌面显卡也有内屏?

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
18F
发表于 2014-2-9 20:05:19 IP属地广东 |只看该作者
教程已更新~~顶起!

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1943

十周年 Win10先驱者 8周年庆典勋章

19F
发表于 2014-2-9 20:05:34 IP属地未知 |只看该作者
YSC3839 发表于 2014-2-9 20:04
内屏?桌面显卡也有内屏?

一体机蛋疼

Rank: 7Rank: 7Rank: 7

UID
1457182
帖子
1497
PB币
2512
贡献
0
技术
496
活跃
442
20F
发表于 2014-2-9 20:19:11 IP属地广东 |只看该作者
xiao201261 发表于 2014-2-9 20:05
一体机蛋疼

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