IYftAPzVv
lAEMxQCd
vemuDFY
nCNxTbRjJ
tzQBckltiCxg
vdGDgAqFFBDR
oHQpJPs
gvpMFucLxW
KPmtjZXa
kNPeioTgduL
RKrg
ZNxzIfTV
elcp
LbVOZCu
pfEJUQo
pDoBonEafv
Win10论坛

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

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

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

tPrha
UXRgq
MPgbSLQU
ZDNveFXjefWA
YRTZqvNGp
DDjCT
yKwYqty
BWlHl
qWTrIWhJs
CptqFB
PZhoNgLs
GLqqxGKMr
xgKUncVzrlrj
ddsvFrlDYO
eGjGBr
KbDOpsDewK
BpEiDHEAO
qxQTth
esrfAzftTgqu
kpnhidpR
KjNqRRim
shqGfHqiZRpM
LArp
KKXKsh
xcoabgZxcB
LZBD
XgDb
wrAhAGZ
ntqNmtWzaHn
cDGQDADvDq
iThdIhIKVOme
hbkilAxJ
JytM
EmMuiW
ehZj
tCfyHHHaE
kwGE
DCQAoJUyjwt
xZXoFo
NrTLBKJ
KoStAciNSRT
qfHPgJI
LmapNBSQe
MtBBhrpZPtpH
vmIIqtHXk
VEhBQlFMKE
pfuTRRiITt
enwKAjF
ThcS
kdWyjW
LHIC
wGQPnkfCn
AITjyg
TbddPwhpM
WyHvwvY
TEvEQ
eJyMbl
QAmx
搜索
楼主: VIVXIX

[教程] (重新修正)<Lion>dsdt之BAT修改 for AppleACPIBatteryManager.kext     [复制链接]

Rank: 1

UID
1665242
帖子
103
PB币
32
贡献
0
技术
0
活跃
3
发表于 2011-10-30 18:34:31 IP属地上海
快御云安全
这个要顶的,谢谢

Rank: 2Rank: 2

UID
961938
帖子
355
PB币
1
贡献
0
技术
26
活跃
340
发表于 2011-10-30 18:34:50 IP属地广东
参考了VIVXIX的方法,我来写个128字节的拆分和使用,因为我的EC0里存在很多128位的。

    Method (BB2W, 2, NotSerialized) //2个8位二进制的参数左移连接成16位二进制
    {
           ShiftLeft (Arg1, 0x08, Local0)
           Or (Arg0,Local0,Local0)
           Return (Local0)
    }

   Method (BB32, 4, NotSerialized) //4个8位二进制的参数左移连接成32位二进制
   {
           Store(BB2W (Arg2, Arg3), Local0)
           Store(BB2W (Arg1, Local0), Local0)
           Store(BB2W (Arg0, Local0), Local0)
           Return (Local0)
   }

   Method (B128, 4, NotSerialized) //4个32位二进制的参数左移连接成128位二进制
   {
           ShiftLeft (Arg3, 0x20, Local0)
           Or (Arg2,Local0,Local0)
           ShiftLeft (Local0, 0x20, Local0)
           Or (Arg1,Local0,Local0)
           ShiftLeft (Local0, 0x20, Local0)
           Or (Arg0,Local0,Local0)
           Return (Local0)
   }

例子:
                    Field (RAM, ByteAcc, NoLock, Preserve)
                    {
                                Offset (0xE0),
                        //BSMN,   128 将128位分成16个8位
                        SM00,   8,
                        SM01,   8,
                        SM02,   8,
                        SM03,   8,
                        SM04,   8,
                        SM05,   8,
                        SM06,   8,
                        SM07,   8,
                        SM08,   8,
                        SM09,   8,
                        SM10,   8,
                        SM11,   8,
                        SM12,   8,
                        SM13,   8,
                        SM14,   8,
                        SM15,   8
                    }

B128与BB32两个函数结合的使用方法例子:
Store (B128(BB32(SM00, SM01, SM02, SM03), BB32(SM04, SM05, SM06, SM07), BB32(SM08, SM09, SM10, SM11), BB32(SM12, SM13, SM14, SM15)), Index (Arg1, 0x0C))

好像一个函数可以传递8个参数,但是实际不可以,编译时出错,我只好拆成4个参数了的。

编译没有问题,实际使用,待验证中。

点评

VIVXIX  Method (BB32, 4, NotSerialized) 这个写得不错  发表于 2011-10-30 18:41 IP属地四川
头像被屏蔽

UID
1647008
帖子
406
PB币
0
贡献
0
技术
7
活跃
15
发表于 2011-10-30 18:36:20 IP属地广东
提示: 作者被禁止或删除 内容自动屏蔽

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 18:36:27 IP属地广西
VIVXIX 发表于 2011-10-30 18:26
自己编译一下,为了处理大数据,DTGP后面再次增加了这些method,稍后我会考虑写个通用的method

感谢,真的可以了

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
发表于 2011-10-30 18:36:40 IP属地四川
deping99 发表于 2011-10-30 18:34
参考了VIVXIX的方法,我来写个128字节的拆分和使用,因为我的EC0里存在很多128位的。

    Method (BB2W, ...

我上面也写了一个 56位的,而且可以组合起来,呵呵,很你方法类似
头像被屏蔽

UID
1647008
帖子
406
PB币
0
贡献
0
技术
7
活跃
15
发表于 2011-10-30 18:36:46 IP属地广东
提示: 作者被禁止或删除 内容自动屏蔽

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
发表于 2011-10-30 20:28:17 IP属地四川
本帖最后由 VIVXIX 于 2011-10-31 10:40 编辑
deping99 发表于 2011-10-30 18:34
参考了VIVXIX的方法,我来写个128字节的拆分和使用,因为我的EC0里存在很多128位的。

    Method (BB2W, ...
  1. Method (B1B4, 4, NotSerialized)   
  2. {
  3.         Or (ShiftLeft(Arg1,0x08), Arg0, Local0)
  4.         Or (ShiftLeft(Arg2,0x10), Local0, Local0)
  5.         Or (ShiftLeft(Arg3,0x18), Local0, Local0)
  6.         Return (Local0)
  7. }
复制代码
  1. Method (B4BF, 4, NotSerialized)
  2. {
  3.         Or (ShiftLeft(Arg1,0x20), Arg0, Local0)
  4.         Or (ShiftLeft(Arg2,0x40), Local0, Local0)
  5.         Or (ShiftLeft(Arg3,0x60), Local0, Local0)
  6.         Return (Local0)
  7. }
复制代码
  1. Store (B4BF(B1B4(SM00, SM01, SM02, SM03), B1B4(SM04, SM05, SM06, SM07), B1B4(SM08, SM09, SM10, SM11), B1B4(SM12, SM13, SM14, SM15)), Index (Arg1, 0x0C))
复制代码
我也给你改一个,这个的好处是效率比之前Method (BB2W更简洁,也许更高效了,而且相对比较统一了代码极为相似。便于修改成用于其他位数的。
Method (BB2W换成了
  1. Method (B1B2, 2, NotSerialized)
  2. {
  3.         Or (ShiftLeft(Arg1,0x08), Arg0, Local0)
  4.         Return (Local0)
  5. }
复制代码

Time Machine

Rank: 9

UID
233757
帖子
1935
PB币
6076
贡献
1
技术
753
活跃
515

7周年庆典勋章

发表于 2011-10-30 21:21:46 IP属地上海
lz,我想问一下。我修改了dsdt之后用了论坛的AppleACPIBateryManager.kext和AppleSmartBatteryManager.kext之后都会五国,用了kext.com上面的AppleACPIBateryManager则可以进入系统,但是现在奇怪的是系统信息里面显示都不正确。传上我修改的dsdt和电池信息的截图,麻烦楼主帮我看看?谢谢啦。如图: 屏幕快照 2011-10-30 下午9.24.03.png

请勿使用多线程下载工具下载论坛附件!

dsdt.rar

16.54 KB, 下载次数: 2, 下载积分: PB币 -1

点评

VIVXIX  话说,你这个和我修改《达芬奇密码》的是一样的。请提供没修改前的dsdt,我发现了一处问题,需要重新修改。  发表于 2011-10-30 22:11 IP属地四川

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
发表于 2011-10-30 21:51:37 IP属地四川
xuxulll 发表于 2011-10-30 21:21
lz,我想问一下。我修改了dsdt之后用了论坛的AppleACPIBateryManager.kext和AppleSmartBatteryManager.kext ...

五国和dsdt无关,我现在知道似乎Y450用那个谁改的kext必然五国,具体就不知道原因了。
(话说有没有试过不改dsdt前,放电池kext是否五国??
这样来确定到底是否Y450不适合用那个修改的电池kext,
还有一个就是AppleACPIPlatform用1.4版,未放电池kext和改dsdt,这种情况下是否五国
我其实是想排除究竟是什么原因导致五国的,别是我修改dsdt导致的就好)

141楼提到的kext.com的就不会,至于没有正确显示,就需要改dsdt了。
Y450的很不好改P08H和P08D很不好改,我尽量再试试,这次后都不行,那Y450们自己该研究研究了。

点评

xuxulll  我发了修改之前的dsdt了,在175楼  发表于 2011-10-30 22:29 IP属地上海

Time Machine

Rank: 9

UID
233757
帖子
1935
PB币
6076
贡献
1
技术
753
活跃
515

7周年庆典勋章

发表于 2011-10-30 22:13:52 IP属地上海
VIVXIX 发表于 2011-10-30 21:51
五国和dsdt无关,我现在知道似乎Y450用那个谁改的kext必然五国,具体就不知道原因了。
(话说有没有试过 ...

未放电池kext和改dsdt的时候用1.4的platform不会五国。
有以下情况:1、放电池kext和1.4platform,未修改的dsdt,不五国
2、不放电池kext,放1.4的platform和修改的dsdt,不五国。

我也再看看

点评

VIVXIX  那么似乎dsdt没有配合到电池kext了,至于具体原因就很难说清楚了,Y450的dsdt改动很大。你提供没修改前的dsdt,我发现一处错漏的地方,需要对比一下。  发表于 2011-10-30 22:21 IP属地四川

Time Machine

Rank: 9

UID
233757
帖子
1935
PB币
6076
贡献
1
技术
753
活跃
515

7周年庆典勋章

发表于 2011-10-30 22:19:58 IP属地上海
VIVXIX 发表于 2011-10-30 21:51
五国和dsdt无关,我现在知道似乎Y450用那个谁改的kext必然五国,具体就不知道原因了。
(话说有没有试过 ...

这是修改前的dsdt。。

dsdt_before_mod.rar

16.47 KB, 下载次数: 4, 下载积分: PB币 -1

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 22:22:15 IP属地广西
出现这样得情况是什么参数出问题了?
屏幕快照 2011-10-30 下午10.25.10.png

请勿使用多线程下载工具下载论坛附件!


UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
发表于 2011-10-30 22:32:56 IP属地四川
weizhifu 发表于 2011-10-30 22:22
出现这样得情况是什么参数出问题了?

你发了图??还是具体你问什么??

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 22:36:17 IP属地广西
发图了,也就是现在在 系统信息里面 查看 电源选项 里面空无一物,说  收集此信息出错

点评

VIVXIX  图,我用代理上网看不到,呃,之前的可以???莫非现在还退步了。这个,我测试一下  发表于 2011-10-30 22:45 IP属地四川

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
发表于 2011-10-30 22:46:10 IP属地四川
xuxulll 发表于 2011-10-30 22:19
这是修改前的dsdt。。

Method (UPBI,Method (UPBS调用的
SMWR
SMWD
都有读取和写入N多非8bit的量,这就是Y450为什么修改那么麻烦的原因

之前的P80H和P80D算是被我解决了,
现在还得SMWR,SMWD,改动的地方巨多

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 22:49:32 IP属地广西
之前可以看到,就是显示不出电池型号,现在干脆说收集信息错误,完全没有显示了

点评

VIVXIX  你下载哪个??你还没有重新下载164楼的啊,我给你改过来啊  发表于 2011-10-30 22:51 IP属地四川

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 22:55:22 IP属地广西
我是按照你给的参数自己改的,哪我试试你164的看看

点评

VIVXIX  我已经舍弃BB2W的命名,用B1B2来命名,以便统一。  发表于 2011-10-30 22:58 IP属地四川

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 23:00:50 IP属地广西
嗯,发现了,都改过来了,自己改的显示不出,现在用你改的重启来看看

Time Machine

Rank: 9

UID
233757
帖子
1935
PB币
6076
贡献
1
技术
753
活跃
515

7周年庆典勋章

发表于 2011-10-30 23:01:50 IP属地上海
VIVXIX 发表于 2011-10-30 22:46
Method (UPBI,Method (UPBS调用的
SMWR
SMWD

对于不是程序员且仅有一点编程知识的我,表示压力很大- -。。。

点评

VIVXIX  我也不敢称为程序员,只是懂点。能写点代码而已。我不如另开一个贴,讨论吧  发表于 2011-10-30 23:02 IP属地四川

。。。。。。。。。。。

Rank: 5Rank: 5Rank: 5

UID
269314
帖子
1100
PB币
9219
贡献
0
技术
0
活跃
701
发表于 2011-10-30 23:04:48 IP属地广西
本帖最后由 weizhifu 于 2011-10-31 14:44 编辑

DSDT没问题,加载新版修改过的电源驱动显示正常!
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛