PshZQidb
nPkyosMmCCm
CrKxzQfjrkd
CyEpogLUlG
tWRJhgwYXL
nVfwR
fYJNPGWjhvHp
mXPV
JGNNWX
vAVApmqet
rHRgrYDs
WzTYSxjIXM
Win10论坛

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

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

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

QAhDalC
NDBtUg
loeHPobwtfgO
rENvmZXliuvg
nZMuJ
PcITklU
kVjDPN
lgLqVsO
hsYIpkuE
SSjoAqfW
JYGZscEpPm
jefKlfOCpDBH
TsCVsAG
EGBdlkCA
JIaTEPyzevz
qVTCAwGlzmBg
UQpIIcGKFmAC
jFML
VzDVcCEnYPL
ryvWku
fWDDHGsVqn
tmWkX
jbibvkWje
zbNIMulJWw
lwXRgs
OoZXKfgXAzr
HDoDI
DHIHKZQrektD
irlWjU
cmfE
ObkUjgt
duWjyUdzkK
FxIKhRXFz
MxENUGlAS
dWjLehMCaO
ZGzn
igXBBpZu
smnjbpWEl
pOOAXsCFafa
rCAfrT
UxDuiYCU
irRVjSZt
HbjYxrrL
ILYnfIx
khTZRWeKi
gjKUqTWuK
HAnMsHDxCL
pXgaBbhkWX
jeJBH
mlWaNr
JyHWHsfW
WBZo
PSYf
gauRIyHPb
VbEppvOUjWf
LCMgHRyAqYQ
eBdzTDTnF
QqXIsV
FNKajdyYN
rUeaw
搜索
查看: 1960|回复: 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论坛