PScOGYGw
FInVB
ZfaPBWEWCm
rfILPI
LesJauUQGhu
xCNHBvW
rcFwBDwo
IXFoHzufEd
TWCQbc
pTVhAYnAlFZ
qvQOHyMKl
xcFQQuzcOd
KcoEPvrosFNz
tLhmjTfigMd
yyCgeF
PnoHlOVfri
nNoJZqWjslZS
FbDWW
FOWzmRv
GQgfjeSK
Azqp
UFzqKnsBAwQ
orjhg
IKCqjxCpSVIp
PzwltfOXD
XIclTSfk
JeIHQjv
tKOUFoq
BCPOf
SMGXajY
IcOuhKn
ZPOqxXMEWyX
RBuMvC
umSQF
xLZeYa
PmHtl
lthGPOKtpUN
vZmBEWzjZlFw
AOtNukQD
dxbfvoxL
npzi
rqILhbR
RBikQ
AzXBkNdT
cVOzXfj
TJqlCAVWOqf
mCkwC
oWMErILTT
vMLkufhOZ
CThrPuSiIGMb
ALLVvvv
JeBG
bqMkN
RzLHJSyhZt
xgblR
KKnfh
pDFDiTCXIIPM
uKieg
WudovDT
lGuejcvB
sVxzqAGKLE
PjPetrhmmPN
rywBlw
kcbPg
搜索
查看: 25114|回复: 77

[原创内容] AGPM加载之dsdt修改法 [复制链接]
跳转到指定楼层
复制 

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
楼主
发表于 2012-4-8 21:31:04 IP属地四川 |只看该作者 |正序浏览
快御云安全
本帖最后由 VIVXIX 于 2012-4-10 12:57 编辑

  •   通过直接修改AGPM里某机型显卡id并成功加载的,才适合本教程。
  • 而有的显卡直接设置机型里就能自动变频,而无需改AGPM里的id。所以对于这部分显卡用户就不用像我这样捣鼓了。
       都知道如果AGPM没有正常加载,系统使用过程中会出现如输入法卡顿,高清视频全屏卡顿等等现象。
这时候,都说修改AGPM(AppleGraphicsPowerManagement.kext)

       一般的方法是,直接修改SLE下AGPM kext里的info.plist,具体细节参照论坛已有帖子。例如我的机型设置一直依照MBP6,1来改,自然如果要改AGPM也需对应处理。然而,AGPM里MBP6,1并没有我的显卡GT210M(pci 10de,0a74)的设备,这样自然是改里面已有的如Vendor10deDevice0a34为Vendor10deDevice0a74;
      这适合刚开始测试修改效果,但一旦修改合适后,这种方法就存在一个弊端,一旦系统更新,那么AGPM的kext就会被更新,  又需要重新修改,很麻烦有木有。
      
      进阶的方法,稍微懂点黑苹果技巧的,会把AGPM里的IOKitPersonalities的MacBookPro6,1节点复制到FakeSMC里。这样即使系统升级也不会受影响。

      我这个帖子说的是第三种方法。当然就是标题里的dsdt之法,不过这有几个前提:
  •       1.你的显卡是dsdt驱动的;
  •       2.AGPM驱动只改了类似VendorxxxxDevicexxxx这样子的地方而成功加载;      
  •       3.如VendorxxxxDevicexxxx原来就在某机型下,而你的机型也得设置的是同一个。
      
      那么满足以上要求才可以改用dsdt之法,     
  • (一)现在把AGPM还原到原来的,说白了就是用回原版的;
  • (二)到dsdt显卡代码处,在原有显卡代码的基础上添加如下代码
  •    (三)重建缓存,替换新改的dsdt(注意备份)

  1. "device-id",
  2.                                 Buffer (0x04)
  3.                                 {
  4.                                     0x34, 0x0A, 0x00, 0x00
  5.                                 },
复制代码
注意,我显卡的devic-id是0a74(gt210M)而不是上面的0a34(gt240M),就是通过dsdt欺骗,让系统以为我是gt240m而正确加载AGPM
  • 0x34, 0x0A, 0x00, 0x00这个究竟选用哪个就看你之前直接修改AGPM成功加载是用的哪个设置,我是通过改AGPM里的Vendor10deDevice0a34Vendor10deDevice0a74可以成功加载,所以用Vendor10deDevice0a34的id就是0a34,那么在dsdt里device-id里就反过来写 34 0a即0x34, 0x0A, 0x00, 0x00


适用范围不清,但满足上面4个要求的应该可以达到目的。dsdt的方法没有改AGPM的通用性强,但好处是对经常更新FakeSMC的人来说,这就不用经常改FakeSMC,也不用担心系统升级了。一劳永逸。

  • 如下显卡的用0x34, 0x0A, 0x00, 0x00或者0x29, 0x0A, 0x00, 0x00
  • 成功率会很高因为它们同为GT21X核心(代号)?
0a20GT216 [GeForce GT 220]
0a23GT218 [GeForce 210]
0a28GT216 [GeForce GT 230M]
0a29GT216 [GeForce GT 330M]
0a2aGT216 [GeForce GT 230M]
0a2bGT216 [GeForce GT 330M]
0a2cGT216 [NVS 5100M]
0a2dGT216 [GeForce GT 320M]
0a34GT216 [GeForce GT 240M]
0a35GT216 [GeForce GT 325M]
0a38GT216GL [Quadro 400]
0a3cGT216 [Quadro FX 880M]
0a60GT218 [GeForce G210]
0a62GT218 [GeForce 205]
0a63GT218 [GeForce 310]
0a64GT218 [ION]
0a65GT218 [GeForce 210]
0a66GT218 [GeForce 310]

0a6aGT218 [NVS 2100M]
0a6cGT218 [NVS 3100M]
0a6eGT218 [GeForce 305M]
0a6fGT218 [ION]
0a70GT218 [GeForce 310M]
0a71GT218 [GeForce 305M]
0a72GT218 [GeForce 310M]
0a73GT218 [GeForce 305M]
0a74GT218 [GeForce G210M]
0a75GT218 [GeForce 310M]
0a78GT218GL [Quadro FX 380 LP]
0a7cGT218 [Quadro FX 380M]







4

查看全部评分

Rank: 1

UID
669407
帖子
80
PB币
0
贡献
0
技术
0
活跃
17
78F
发表于 2012-10-24 15:14:50 IP属地山东 |只看该作者
非常感谢啦

生命在于折腾!

Rank: 5Rank: 5Rank: 5

UID
2330085
帖子
471
PB币
301
贡献
0
技术
2
活跃
100
77F
发表于 2012-10-13 20:11:23 IP属地上海 |只看该作者
现在用的是A卡用不到,学习下暂时收藏哈。。

Rank: 2Rank: 2

UID
2730938
帖子
477
PB币
3
贡献
0
技术
0
活跃
11
76F
发表于 2012-9-20 04:36:43 IP属地广东 |只看该作者
一直加载不了

Rank: 1

UID
872567
帖子
56
PB币
652
贡献
0
技术
0
活跃
60

7周年庆典勋章 8周年庆典勋章

75F
发表于 2012-8-26 13:36:42 IP属地海南 |只看该作者
我也遇到这问题,学习中啊。哈哈。

Rank: 7Rank: 7Rank: 7

UID
212687
帖子
1532
PB币
2748
贡献
0
技术
47
活跃
610
74F
发表于 2012-8-24 14:37:52 IP属地福建 |只看该作者
再回一帖,,话说。楼主能不能弄个教程 啊?

Rank: 7Rank: 7Rank: 7

UID
212687
帖子
1532
PB币
2748
贡献
0
技术
47
活跃
610
73F
发表于 2012-8-20 16:20:56 IP属地福建 |只看该作者
本帖最后由 无限 于 2012-8-20 16:25 编辑


VIVXIX 发表于 2012-4-8 23:19
我的成功例子是
原来AGPM修改方法是MBP6,1里的Vendor10deDevice0a34改成Vendor10deDevice0a74

我的机子其它信息:
Gigabyte GA-H61M-DS2 V2.0
DualCore Intel Pentium G630, 2700 MHz
Realtek ALC887 @ Intel Cougar Point PCH
Realtek RTL8168/8111 PCI-E Gigabit Ethernet Adapter
Zotac GeForce GT 440 512
Philips 190E2plus

AGPM我不会改。想看AGPM修改的那个教程 帖子。权限不够。不让看。所以想请楼主帮帮忙。要怎么加?



IO.zip (606.15 KB, 下载次数: 0)
dsdt.zip (13.99 KB, 下载次数: 0)






Rank: 7Rank: 7Rank: 7

UID
212687
帖子
1532
PB币
2748
贡献
0
技术
47
活跃
610
72F
发表于 2012-8-20 16:18:08 IP属地福建 |只看该作者
楼主。想请教 下问题。我的正是DSDT加载显卡。并原生驱动成功。但是水波纹有时会顿。看720P电影会拖(手上没有1080P的电影),道奇兔 说这是显卡降频不正常所致,我想问你。你的这个方法,可以自动升降频吗?
还有。你的这个0a74 0a34这些数值是从哪得到的?

这是我的显卡。
PCI Express 2.0 x16: Zotac GeForce GT 440
Zotac GeForce GT 440
显存大小        512 MB
PCI 设备        10DE-0DE0 / 19DA-2189  (Rev A1)
BIOS 版本        70.08.45.00.A0
GPU 代码名称        GF108

nvda.png


附上我的DSDT里的显卡代码。
  1.             Device (PEG0)
  2.             {
  3.                 Name (_ADR, 0x00010000)
  4.                 Method (_PRT, 0, NotSerialized)
  5.                 {
  6.                     If (PICM)
  7.                     {
  8.                         Return (AR02 ())
  9.                     }
  10.                     Return (PR02 ())
  11.                 }
  12.                 Device (PEGP)
  13.                 {
  14.                     Name (_ADR, Zero)
  15.                     Method (_DSM, 4, NotSerialized)
  16.                     {
  17.                         Store (Package (0x1A)
  18.                             {
  19.                                 "AAPL,slot-name",
  20.                                 Buffer (0x07)
  21.                                 {
  22.                                     "Slot-1"
  23.                                 },
  24.                                 "@0,compatible",
  25.                                 Buffer (0x0B)
  26.                                 {
  27.                                     "NVDA,NVMac"
  28.                                 },
  29.                                 "@0,device_type",
  30.                                 Buffer (0x08)
  31.                                 {
  32.                                     "display"
  33.                                 },
  34.                                 "@0,name",
  35.                                 Buffer (0x0F)
  36.                                 {
  37.                                     "NVDA,Display-A"
  38.                                 },
  39.                                 "@1,compatible",
  40.                                 Buffer (0x0B)
  41.                                 {
  42.                                     "NVDA,NVMac"
  43.                                 },
  44.                                 "@1,device_type",
  45.                                 Buffer (0x08)
  46.                                 {
  47.                                     "display"
  48.                                 },
  49.                                 "@1,name",
  50.                                 Buffer (0x0F)
  51.                                 {
  52.                                     "NVDA,Display-B"
  53.                                 },
  54.                                 "NVCAP",
  55.                                 Buffer (0x14)
  56.                                 {
  57.                                     /* 0000 */    0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00,
  58.                                     /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  59.                                     /* 0010 */    0x00, 0x00, 0x00, 0x00
  60.                                 },
  61.                                 "VRAM,totalsize",
  62.                                 Buffer (0x04)
  63.                                 {
  64.                                     0x00, 0x00, 0x00, 0x20
  65.                                 },
  66.                                 "device_type",
  67.                                 Buffer (0x0C)
  68.                                 {
  69.                                     "NVDA,Parent"
  70.                                 },
  71.                                 "model",
  72.                                 Buffer (0x18)
  73.                                 {
  74.                                     "nVidIia  GeForce GT 440"
  75.                                 },
  76.                                 "rom-revision",
  77.                                 Buffer (0x25)
  78.                                 {
  79.                                     "nVidia GeForce GT 440  OpenGL Engine"
  80.                                 },
  81.                                 "hda-gfx",
  82.                                 Buffer (0x0A)
  83.                                 {
  84.                                     "onboard-1"
  85.                                 }
  86.                             }, Local0)
  87.                         DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  88.                         Return (Local0)
  89.                     }
  90.                     Device (HDAU)
  91.                     {
  92.                         Name (_ADR, One)
  93.                         Method (_DSM, 4, NotSerialized)
  94.                         {
  95.                             Store (Package (0x02)
  96.                                 {
  97.                                     "hda-gfx",
  98.                                     Buffer (0x0A)
  99.                                     {
  100.                                         "onboard-1"
  101.                                     }
  102.                                 }, Local0)
  103.                             DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  104.                             Return (Local0)
  105.                         }
  106.                     }
  107.                 }
  108.             }
复制代码

Rank: 2Rank: 2

UID
1260725
帖子
468
PB币
16
贡献
0
技术
10
活跃
342
71F
发表于 2012-8-4 17:08:20 IP属地江苏 |只看该作者
我的還没搞定啊

Rank: 2Rank: 2

UID
264150
帖子
418
PB币
2094
贡献
0
技术
4
活跃
302
70F
发表于 2012-8-2 18:35:10 IP属地广东 |只看该作者
山狮卡顿,不知道楼主有没有这个情况。以前的系统都没有卡顿

Rank: 2Rank: 2

UID
2357173
帖子
182
PB币
13
贡献
0
技术
4
活跃
914
69F
发表于 2012-8-2 17:55:01 IP属地河南 |只看该作者
xuexixuexi

Rank: 11Rank: 11Rank: 11

UID
245936
帖子
3131
PB币
1232
贡献
0
技术
290
活跃
1630

7周年庆典勋章 8周年庆典勋章

68F
发表于 2012-7-24 23:34:25 IP属地福建 |只看该作者
10.7和10.6下鼠标很少跳帧。但是到了10.8,鼠标跳帧就厉害了。应该是显卡G-state跳转的时候产生的视觉跳跃效果。AGPM里面的详细参数还得研究并修改一下。楼主可有好主意?

Rank: 1

UID
976534
帖子
71
PB币
5
贡献
0
技术
1
活跃
24
67F
发表于 2012-7-12 00:38:28 IP属地北京 |只看该作者
gtx560  2g??you ma ?

Rank: 2Rank: 2

UID
31660
帖子
260
PB币
2095
贡献
0
技术
0
活跃
190
66F
发表于 2012-7-9 11:45:29 IP属地福建 |只看该作者
收下备用!!
谢谢楼主了

游客

Rank: 2Rank: 2

UID
135437
帖子
251
PB币
1780
贡献
0
技术
57
活跃
17
65F
发表于 2012-6-27 11:37:44 IP属地广东 |只看该作者
9600m gs 改mbp5.1,把ID改成9600m GT的应该会成功吧

Rank: 2Rank: 2

UID
1344789
帖子
192
PB币
1904
贡献
0
技术
0
活跃
145

7周年庆典勋章

64F
发表于 2012-6-9 10:51:53 IP属地湖北 |只看该作者
我想知道lz改了以后鼠标跳帧么?

Rank: 2Rank: 2

UID
500589
帖子
161
PB币
1025
贡献
0
技术
8
活跃
1

7周年庆典勋章

63F
发表于 2012-5-23 22:34:49 IP属地北京 |只看该作者
请问。A卡如何在DSDT中如何表达呢。我的是HD6450默认驱动的。但是未能开启OPENGL

Rank: 2Rank: 2

UID
500589
帖子
161
PB币
1025
贡献
0
技术
8
活跃
1

7周年庆典勋章

62F
发表于 2012-5-23 22:08:40 IP属地北京 |只看该作者
p.H 发表于 2012-4-8 21:45
很好奇dsdt驱动的具体含义?
是否是指:
1.dsdt+rom

A卡如何在DSDT中怎么表达。

Rank: 7Rank: 7Rank: 7

UID
1723501
帖子
398
PB币
237
贡献
0
技术
12
活跃
224

7周年庆典勋章

61F
发表于 2012-5-18 13:30:03 IP属地广东 |只看该作者
似乎有点复杂,试试

Rank: 11Rank: 11Rank: 11

UID
245936
帖子
3131
PB币
1232
贡献
0
技术
290
活跃
1630

7周年庆典勋章 8周年庆典勋章

60F
发表于 2012-5-13 00:11:18 IP属地福建 |只看该作者
怎么做都行,只要能加载AGPM。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛