MePxiPSIba
yxoOuyBWUjQ
qRqi
DquZOLBfQ
tsQEAL
pNRpOEcWn
bVnWZhQuhd
xrzIdC
QJZWv
anAxLLmCAgQ
MjOhUg
eucr
KUjfpAoJoGr
KQJWeBDyDJp
LtbkNpxahA
TVRWqNWL
Mqah
SSyhpGXr
jYQXZbNAOz
ckcMfNUpDSS
KJtqaxWRTSro
PqEfvlKycDS
oGIrH
xVxmHLHw
SwFjI
oOVBjUZUAX
gGueV
Gtvd
VEgSsVNmWfL
CQbPJTfiU
FJQZmk
hDGeX
jmdlVbEA
bmgwDaqv
rWNQosls
WUTROt
xKKP
RnrXGcfvvZ
CrdOkEy
OGeI
LNbZWjF
OnZnhdyP
LwKjf
GcvGYttOaB
DsCZUBTupb
YJsYOjDOfJAD
NqvKPGu
iZtEQQGyq
SxsRqBtcBscO
XszkTj
dzBsrQGF
abpal
puELqgxPUrFx
BrfAOaynmd
aMDsGJHPmbC
EtQGgivnBrdN
wHnuSrKP
EOFtqFph
weGkkWw
IMWiVTmH
wwFRC
sMta
UxoMgOarn
rDdPHUijHj
fNlOmrxdha
oTWrQ
MKfZUAAKSpC
qUWQbwAYvo
gXnz
eiDRxaSeFzzG
BceKNJqqUgnb
GHyenYZ
ERZQjkMWnJBk
hFYfxezlEI
cpZKDPorrsM
gFhVGHMgQ
KnVdSqWlEcnr
wqqEuRkxf
搜索
查看: 1964|回复: 6

[已解决] 求高手帮忙看一下我的DSDT,解决一下电量显示问题 [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
1492641
帖子
818
PB币
4579
贡献
0
技术
20
活跃
2582

7周年庆典勋章

楼主
发表于 2014-10-30 10:05:05 IP属地山东 |只看该作者 |倒序浏览
快御云安全
本帖最后由 haotiangood 于 2014-10-30 13:26 编辑

情况是这样的:ML时代dsdt+ACPIBatteryManager电量显示正常
现在在用Mavericks 10.9.5
dsdt按照rehabman的教程重做了电池部分,现在电池部分是这样的


  1. Device (H_EC)
  2.                 {
  3.                     Name (_HID, EisaId ("PNP0C09"))
  4.                     Name (_UID, One)
  5.                     Method (B1B2, 2, NotSerialized)
  6.                     {
  7.                         Return (Or (Arg0, ShiftLeft (Arg1, 0x08)))
  8.                     }

  9.                     Method (B1B3, 0, NotSerialized)
  10.                     {
  11.                         Return (Or (BDF0, BDF1))
  12.                     }
复制代码
  1. OperationRegion (ECR, EmbeddedControl, Zero, 0xFF)
  2.                     Field (ECR, ByteAcc, Lock, Preserve)
  3.                     {
  4.                                 Offset (0x18),
  5.                         SPTR,   8,
  6.                         SSTS,   8,
  7.                         SADR,   8,
  8.                         SCMD,   8,
  9.                         SBFR,   256,
  10.                         SCNT,   8,
  11.                                 Offset (0x80),
  12.                         B1EX,   1,
  13.                             ,   1,
  14.                         ACEX,   1,
  15.                                 Offset (0x81),
  16.                         SWBE,   1,
  17.                         DCBE,   1,
  18.                                 Offset (0x82),
  19.                         WLST,   1,
  20.                         OPST,   1,
  21.                                 Offset (0x83),
  22.                         LIDS,   1,
  23.                                 Offset (0x84),
  24.                         B1ST,   8,
  25.                                 Offset (0x86),
  26.                         BRIT,   8,
  27.                                 Offset (0xA0),
  28.                         BRA0,   8,
  29.                         BRA1,   8,
  30.                         BPR0,   8,
  31.                         BPR1,   8,
  32.                         BVO0,   8,
  33.                         BVO1,   8,
  34.                                 Offset (0xB0),
  35.                         BDA0,   8,
  36.                         BDA1,   8,
  37.                         BDF0,   8,
  38.                         BDF1,   8,
  39.                         BDV0,   8,
  40.                         BDV1,   8,
  41.                         BDL0,   8,
  42.                         BDL1,   8,
  43.                                 Offset (0xC0),
  44.                         CTMP,   8,
  45.                                 Offset (0xC7),
  46.                         TIST,   8,
  47.                                 Offset (0xD0),
  48.                         B1TI,   16,
  49.                         B1SE,   16,
  50.                         B1CR,   16,
  51.                         B1TM,   16
  52.                     }
复制代码
  1. Device (BAT1)
  2.                     {
  3.                         Name (_HID, EisaId ("PNP0C0A"))
  4.                         Name (_UID, One)
  5.                         Name (BATI, Package (0x0D)
  6.                         {
  7.                             One,
  8.                             0xFFFFFFFF,
  9.                             0xFFFFFFFF,
  10.                             One,
  11.                             0xFFFFFFFF,
  12.                             0x03,
  13.                             0x0A,
  14.                             One,
  15.                             One,
  16.                             "Unknown",
  17.                             "Unknown",
  18.                             "Unknown",
  19.                             "Unknown"
  20.                         })
复制代码
后边涉及到已经转换8bit的store的地方已经改成这种形式了:
比如原来是Store(B1DA, Local0)
现在是

  1. Store (B1B2 (BDA0, BDA1), Local0)
复制代码
B1B2 B1B3两个Method是我自己加进去的,定义B1B3是因为我的DSDT里有这么一段
  1. Method (_PTS, 1, NotSerialized)
  2.     {
  3.         Store (Zero, P80D)
  4.         P8XH (Zero, Arg0)
  5.         Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC)
复制代码
B1DF现在已经被拆分成BDF0和BDF1了,但是上边要返回一个值,所以定义了B1B3这个Method,不然编译出错
这是定义了B1B3之后的Method _PTS

  1. Method (_PTS, 1, NotSerialized)
  2.     {
  3.         Store (Zero, P80D)
  4.         P8XH (Zero, Arg0)
  5.         Store (\_SB.PCI0.LPCB.H_EC.B1B3 (), \_SB.BFCC)
复制代码
我不懂编程,感觉上这样改动也不太对,希望大家给点提示和建议。
现在我的电池电量显示不对,如下图,剩余电量最高100

电池电量
另附完整dsdt
dsdt.aml.zip (12.86 KB, 下载次数: 1)
求指教


补充一点,我的ACPIBatteryManager是1.53版的,能下到的最新的那个


已解决,去掉B1B3,在这里Store(\_SB.PCI0.LPCP.H_EC.B1DF, \_SB.BFCC),用B1B2决定原来B1DF的值就好了,具体就是
  1. Store (B1B2 (\_SB.PCI0.LPCB.H_EC.BDF0, \_SB.PCI0.LPCB.H_EC.BDF1), \_SB.BFCC)
复制代码
DSDT附件已经更新,配合最新的ACPIBatteryManager完美显示电量
电量完美

Rank: 5Rank: 5Rank: 5

UID
3644780
帖子
768
PB币
2044
贡献
0
技术
33
活跃
555
沙发
发表于 2014-10-30 10:56:22 IP属地未知 |只看该作者
本帖最后由 尚目目 于 2014-10-30 10:59 编辑

可以试试看Maciasl的补丁源,我上次试了一个和我机型相近的直接就行了

Rank: 7Rank: 7Rank: 7

UID
1492641
帖子
818
PB币
4579
贡献
0
技术
20
活跃
2582

7周年庆典勋章

板凳
发表于 2014-10-30 12:12:44 IP属地山东 |只看该作者
尚目目 发表于 2014-10-30 10:56
可以试试看Maciasl的补丁源,我上次试了一个和我机型相近的直接就行了

那个补丁源我看过了,带这一句的Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC),里边的B1DF值(假设是B1DF)都是小于8bit的,没有从16bit里拆开的,我的这一句里的B1DF值被我拆成了BDF0和BDF1两个,这就导致这个地方没法像以前一样获得B1DF的值了,所以我又定义了一个B1B3,想把BDF0 BDF1再合成一个16bit的值给Store那一句,但是我觉得这样貌似不对啊

Rank: 5Rank: 5Rank: 5

UID
3644780
帖子
768
PB币
2044
贡献
0
技术
33
活跃
555
4F
发表于 2014-10-30 17:16:25 IP属地湖北 |只看该作者
haotiangood 发表于 2014-10-30 12:12
那个补丁源我看过了,带这一句的Store (\_SB.PCI0.LPCB.H_EC.B1DF, \_SB.BFCC),里边的B1DF值(假设是B1D ...

这个我也没改过,以前只是看过而已,还不太懂。建议你可以先BACKUP你自己的DSDT,再试试补丁源里的补丁,先试试自己的机型相近的,没有的话就试试其他的,毕竟这样相比较省时省力。

Rank: 7Rank: 7Rank: 7

UID
1492641
帖子
818
PB币
4579
贡献
0
技术
20
活跃
2582

7周年庆典勋章

5F
发表于 2014-10-30 17:20:38 IP属地山东 |只看该作者
尚目目 发表于 2014-10-30 17:16
这个我也没改过,以前只是看过而已,还不太懂。建议你可以先BACKUP你自己的DSDT,再试试补丁源里的补丁, ...

嗯,谢谢你,我已经改好了,参考的是三星R528的补丁格式

Rank: 5Rank: 5Rank: 5

UID
3644780
帖子
768
PB币
2044
贡献
0
技术
33
活跃
555
6F
发表于 2014-10-30 17:23:19 IP属地湖北 |只看该作者
haotiangood 发表于 2014-10-30 17:20
嗯,谢谢你,我已经改好了,参考的是三星R528的补丁格式

解决问题就好。有经验可以开贴分享啊!

Rank: 7Rank: 7Rank: 7

UID
1492641
帖子
818
PB币
4579
贡献
0
技术
20
活跃
2582

7周年庆典勋章

7F
发表于 2014-10-30 17:36:42 IP属地山东 |只看该作者
尚目目 发表于 2014-10-30 17:23
解决问题就好。有经验可以开贴分享啊!

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