pahlJhTMXV
DMHxJ
tXeGOnoKwL
fPMWydHiadcL
GrYxdDbLD
okjdlqpDktR
cyrqgxNrUilS
djGpAiJs
JkUtRdhc
KmDJm
dPpNsYWOBOT
JMiiKfxtG
weroMh
qzZhsNmnw
ZGINoCpa
Win10论坛

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

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

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

kAlH
HFsNjwox
OvNDjJRGQKis
fkGCPQ
GRTeOrNQgsR
yVaverAmC
eiDrIJWhOdm
yyGTsPz
YYEaKB
nJMkJJWC
IGVdQ
dEsDjdeIdoU
DpoDWPWjo
TKLMzhi
Ihqlc
quKHfRLUaku
fUwDB
pyluXsvF
eriT
gvpzppHyPFgT
CvdGNeqln
gmxiycSJCOJa
jrXic
prUzkfPu
pxcMjDaj
RvkaJ
sKLvJFAPrUP
yybUxran
bHNFVE
dzabQnD
KEmiNNTjGrdC
bHSWPxtrv
YYmWVuRpeQDz
dmNppX
vGtFTx
ZqVHfBbhyWNj
PiVgaRksf
jcfSPA
rjTdHw
SHiXDUcS
WagPiTlU
yBvYUJMJc
dqWv
ilOV
rKVTIR
SPpcwvFbvr
FeUaZ
Wdqf
JwSzOXi
NhktcAK
vhgPDQKx
nSZabSBwJK
WQOrHZ
SJbT
cIXRJdWT
lDGJuIAlcS
fNdUk
ZaesVA
SGaBRqtO
eidDPwUfV
RtqvyBscG
搜索
查看: 25110|回复: 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

查看全部评分

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
沙发
发表于 2012-4-8 21:35:21 IP属地四川 |只看该作者
嘎嘎,这样我需要修改替换添加的kext就做到最小化了。

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
板凳
发表于 2012-4-8 21:45:07 IP属地湖北 |只看该作者
很好奇dsdt驱动的具体含义?
是否是指:
1.dsdt+rom
2.dsdt修饰驱动?

点评

VIVXIX  dsdt里加的东西有的是修饰作用,但大多vendor-id 和device-id绝非修饰作用那么简单。而是让系统知道这个硬件的存在。  发表于 2012-4-8 21:56 IP属地四川

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
4F
发表于 2012-4-8 21:55:23 IP属地四川 |只看该作者
p.H 发表于 2012-4-8 21:45
很好奇dsdt驱动的具体含义?
是否是指:
1.dsdt+rom

      NV显卡大多可以通过dsdt来驱动,就是添加合适的数据,让系统能够加载正确的kext来驱动显卡。
      说白了kext加载需要匹配合适的id,当然前提是kext本身就能驱动你的硬件。但由于缺乏信息,系统不知道这个硬件的存在,kext也就不会加载。dsdt修改起到的只是告知系统有这个硬件的存在。
      而有时候kext里面并没有这个id,那么即使dsdt里加入你正确的硬件id也没用,系统还是不会加载那个kext。可以选择同时把id也加到kext里,这种方法黑苹果里经常这么做,还有另一种方法就是dsdt里添加的不是正确的id,而是kext里已经有的兼容的硬件id,就是我上面的方法。欺骗系统我的显卡是GT240M(实际是GT210M),加载AGPM里已经存在的GT240M的配置。
      

YSKoo

Rank: 7Rank: 7Rank: 7

UID
1313498
帖子
1608
PB币
1814
贡献
0
技术
57
活跃
1333

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

5F
发表于 2012-4-8 21:59:10 IP属地广东 |只看该作者
但系我的显卡是 06EC 的啊,可能改不了!

点评

VIVXIX  关键是你直接修改AGPM某个配置(不一定非得Vendor10deDevice0a34),能正确加载AGPM的话就可以尝试dsdt欺骗的方法。  发表于 2012-4-8 22:03 IP属地四川

Rank: 7Rank: 7Rank: 7

UID
1663649
帖子
1745
PB币
256
贡献
0
技术
104
活跃
550

7周年庆典勋章

6F
发表于 2012-4-8 22:01:01 IP属地湖南 |只看该作者
p.H 发表于 2012-4-8 21:45
很好奇dsdt驱动的具体含义?
是否是指:
1.dsdt+rom

dsdt都驱动显卡了 干嘛还要+rom   直接删除  

点评

p.H  A卡需要rom,我没有单单说你的N  发表于 2012-4-8 22:19 IP属地湖北

Rank: 7Rank: 7Rank: 7

UID
1663649
帖子
1745
PB币
256
贡献
0
技术
104
活跃
550

7周年庆典勋章

7F
发表于 2012-4-8 22:05:22 IP属地湖南 |只看该作者
请问  0x34, 0x0A, 0x00, 0x00  是通用呢 还是只适合0a34??

点评

VIVXIX  这个不是乱用的,就看你直接改AGPM后哪个配置合适,才在dsdt里修改。  发表于 2012-4-8 22:07 IP属地四川

Rank: 7Rank: 7Rank: 7

UID
1605009
帖子
1800
PB币
3116
贡献
0
技术
101
活跃
473
8F
发表于 2012-4-8 22:05:47 IP属地重庆 |只看该作者
我的改了之后挂了,启动到读ntfs那里就一直卡住了,估计跟卡的核心有关。

点评

VIVXIX  你之前直接改AGPM是否成功了,没有成功之前不要乱动dsdt哦。  发表于 2012-4-8 22:08 IP属地四川

YSKoo

Rank: 7Rank: 7Rank: 7

UID
1313498
帖子
1608
PB币
1814
贡献
0
技术
57
活跃
1333

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

9F
发表于 2012-4-8 22:05:48 IP属地广东 |只看该作者
fox0491 发表于 2012-4-8 21:59
但系我的显卡是 06EC 的啊,可能改不了!

我的显卡ID 系 10DE06EC  ,楼主你话可以不?

点评

VIVXIX  你之前是改的AGPM里的哪个配置并成功加载?你的显卡id不重要,重要的是你当初修改的是AGPM里的哪个显卡配置。  发表于 2012-4-8 22:19 IP属地四川

Rank: 7Rank: 7Rank: 7

UID
1663649
帖子
1745
PB币
256
贡献
0
技术
104
活跃
550

7周年庆典勋章

10F
发表于 2012-4-8 22:14:58 IP属地湖南 |只看该作者
我显卡id 0dec   目前也是修改agpm里的mbp6.1发挥显卡性能   请问我添加dsdt时
Buffer (0x0C)
                                {
                                    0x34, 0x0A, 0x00, 0x00
                                },
红色这部分数字怎么换算出来呢?

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
11F
发表于 2012-4-8 22:17:59 IP属地四川 |只看该作者
mazimao123 发表于 2012-4-8 22:14
我显卡id 0dec   目前也是修改agpm里的mbp6.1发挥显卡性能   请问我添加dsdt时
Buffer (0x0C)
           ...

你AGPM里改的是MBP6,1的哪个配置??

Rank: 7Rank: 7Rank: 7

UID
1663649
帖子
1745
PB币
256
贡献
0
技术
104
活跃
550

7周年庆典勋章

12F
发表于 2012-4-8 22:24:55 IP属地湖南 |只看该作者
VIVXIX 发表于 2012-4-8 22:17
你AGPM里改的是MBP6,1的哪个配置??

修改好久了   忘了   不是0a34   是另一个
屏幕快照 2012-04-08 下午22.25.44.png


中间那个0dec就是我修改的

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
13F
发表于 2012-4-8 22:29:59 IP属地四川 |只看该作者
本帖最后由 VIVXIX 于 2012-4-8 22:32 编辑
mazimao123 发表于 2012-4-8 22:24
修改好久了   忘了   不是0a34   是另一个

     问题是那个0dec原来是什么,换言之你修改的MBP6,1里原来还有一个Vendor10deDevice0a29,你是直接改Vendor10deDevice0a29为Vendor10deDevice0dec成功加载AGPM的吗?
      如果是这样的话你dsdt里就用0a29。也就是说dsdt里加入
  1. "device-id",
  2.                                 Buffer (0x04)
  3.                                 {
  4.                                     0x29, 0x0A, 0x00, 0x00
  5.                                 },
复制代码
记得把AGPM还原成原来的,还有就是要重建缓存。

Rank: 7Rank: 7Rank: 7

UID
1605009
帖子
1800
PB币
3116
贡献
0
技术
101
活跃
473
14F
发表于 2012-4-8 22:49:32 IP属地重庆 |只看该作者
除了legacy之外还有什么可以合并到fakesmc中的?

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
15F
发表于 2012-4-8 22:52:05 IP属地四川 |只看该作者
本帖最后由 VIVXIX 于 2012-4-8 22:53 编辑
whitegerry 发表于 2012-4-8 22:49
除了legacy之外还有什么可以合并到fakesmc中的?

      凡是你通过改某个kext的info.plist驱动成功的,都可以合并到fakeSMC里。
      而其实我之前还有LPC和HPET都是修改的info.plist,现在都是通过dsdt,加入device-id(用kext里已经有的id)直接欺骗加载kext。

Rank: 7Rank: 7Rank: 7

UID
1663649
帖子
1745
PB币
256
贡献
0
技术
104
活跃
550

7周年庆典勋章

16F
发表于 2012-4-8 22:53:07 IP属地湖南 |只看该作者
VIVXIX 发表于 2012-4-8 22:29
问题是那个0dec原来是什么,换言之你修改的MBP6,1里原来还有一个Vendor10deDevice0a29,你是直接改V ...

反馈测试

把0dec修改回0a29  添加0x29, 0x0A, 0x00, 0x00  修复缓存

五国了

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
17F
发表于 2012-4-8 22:54:43 IP属地四川 |只看该作者
本帖最后由 VIVXIX 于 2012-4-8 22:55 编辑
mazimao123 发表于 2012-4-8 22:53
反馈测试

把0dec修改回0a29  添加0x29, 0x0A, 0x00, 0x00  修复缓存

你确定当初是直接改Vendor10deDevice0a29为Vendor10deDevice0dec驱动的???

我记得还有一部分人是把别的机型里的配置复制到MBP6,1里。这种情况就不适用了。

YSKoo

Rank: 7Rank: 7Rank: 7

UID
1313498
帖子
1608
PB币
1814
贡献
0
技术
57
活跃
1333

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

18F
发表于 2012-4-8 23:09:29 IP属地广东 |只看该作者
VIVXIX 发表于 2012-4-8 22:54
你确定当初是直接改Vendor10deDevice0a29为Vendor10deDevice0dec驱动的???

我记得还有一部分人是把 ...

测试成功。。。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
19F
发表于 2012-4-8 23:15:43 IP属地四川 |只看该作者
本帖最后由 VIVXIX 于 2012-4-8 23:16 编辑
fox0491 发表于 2012-4-8 23:09
测试成功。。。

可喜可贺,分享你的信息

回复格式:
0.AGPM是VendorxxxxDevicexxxx改成VendorxxxxDevicexxxx
1.你的显卡device-id:
2.你dsdt里用的device-id:

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
20F
发表于 2012-4-8 23:19:13 IP属地四川 |只看该作者
我的成功例子是
原来AGPM修改方法是MBP6,1里的Vendor10deDevice0a34改成Vendor10deDevice0a74

显卡的device-id是0a74
dsdt里用的device-id是0a34

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