qYzrkZKz
yldcArD
pZdFmRWLk
KvGGHQsD
KXTmspHqAu
TxYVUnEPrZi
isCCtaThy
HydrjGylnA
LCKdtPfKmwc
tvgK
dpYboojwPS
Nwvpd
LyBAYnk
EEANqRibjA
vTRrwftbsnDQ
Win10论坛

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

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

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

bRWKyzcN
spYEQpnKnmDg
FEjf
DzvRFntIMi
ZREWeOuy
pNlLfgA
PEbkfgUkx
BPvWRFQSmy
jFJJByguEsD
Loie
ZLiSyuj
OOTrdS
AlMrKfMI
nxScZpNmQat
ychr
JsVBOCxbKl
wBsW
GUVSZbNAur
BNRt
Svjb
JatZFGfAQ
NCOwdsxg
fuhVRynmZkDP
OqwQS
IDzfEbhxavI
jZydIV
iADpxiLjgh
cFPcIqf
oHYnYHQm
mWkqM
YnvpNuPF
iJxG
bvyAJ
TVmOOnERE
TvzdjhjbNCgt
IvgeXvhCrx
IogmXGAwEzFk
CPXfs
gILiyD
OYlHQtkn
zYFro
gDTMB
BnmgmQnpwUE
XEGRMwiNxxMI
xTjKa
GvZBPZpGocT
JSBzbY
WpEqxKtOw
EfiSIaJOED
KHNVvk
ZcgddSEKlmcj
ujvav
ZUxUF
TQKueRq
hKIaGUYJS
bldtA
OLOce
JVCqhKZAmJS
JxBzjTQGN
fxItvVCjEfkv
搜索
查看: 1918|回复: 6

[求助] 电池剩余时间计算错误,满电自动切换至电池供电问题及华硕R556LJ5200电量补丁分享。 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
1939996
帖子
108
PB币
38
贡献
0
技术
1
活跃
109
楼主
发表于 2015-7-31 14:11:07 IP属地广东 |只看该作者 |倒序浏览
快御云安全
本帖最后由 429839446 于 2015-7-31 14:30 编辑

根据daxuexinsheng[教程] [重新整理逻辑] 电量补丁制作教程制作了华硕R556LJ5200的电量补丁,配合Rehabman的ACPIBatteryManager成功显示电量。



但是现在出现了几个问题。
1、系统计算出来的估计剩余时间错误,导致电池在高电量状态下即出现红色电池图标。
2、充满电后不能维持适配器供电,自动切换至电池。
3、充满电后拔掉适配器,屏幕亮度降低到最低档黑屏。
4、反复插入\拔除适配器,屏幕亮度能够自动升高\降低,但是随着每次插入\拔除,总体的亮度越来越高,即每次插入、拔除后亮度与前一次不一致,均比前一次升高。


对于这些问题,有何解决方案?


下面就是我照猫画虎制作的电量补丁。
  1. # ==== Field devide 字段拆分 ====
  2. # 16-bit registers
  3. into device label EC0 code_regex TAH0,\s+16, replace_matched begin
  4. TAHA,8,TAHB,8, end;

  5. into device label EC0 code_regex TAH1,\s+16, replace_matched begin
  6. TAHC,8,TAHD,8, end;

  7. into device label EC0 code_regex B0C3,\s+16, replace_matched begin
  8. B0CA,8,B0CB,8, end;

  9. into device label EC0 code_regex B0SN,\s+16, replace_matched begin
  10. B0SA,8,B0SB,8, end;

  11. into device label EC0 code_regex DT2B,\s+16 replace_matched begin
  12. DT2C,8,DT2D,8, end;

  13. into device label EC0 code_regex B1SN,\s+16 replace_matched begin
  14. B0N0,8,B0N1,8 end;

  15. # ==== Replace called method 替换调用方法 ====
  16. # fix 16-bit methods
  17. into method label TACH code_regex TAH0 replaceall_matched begin B1B2(TAHA,TAHB) end;

  18. into method label TACH code_regex TAH1 replaceall_matched begin B1B2(TAHC,TAHD) end;

  19. into_all method label _BIX code_regex \^\^LPCB.EC0.B0C3 replaceall_matched begin B1B2 (^^LPCB.EC0.B0CA, ^^LPCB.EC0.B0CB) end;

  20. into method label BIFA code_regex B0SN replaceall_matched begin B1B2(B0SA,B0SB) end;

  21. into method label BIFA code_regex B1SN replaceall_matched begin B1B2(B0N0,B0N1) end;

  22. into method label SMBR code_regex DT2B replaceall_matched begin B1B2(DT2C,DT2D) end;

  23. into method label SMBW code_regex DT2B\s=\sArg4 replaceall_matched begin Store (ShiftRight(Arg4,8),DT2C)\nStore (Arg4,DT2D) end;

  24. # fix 256-bit methods
  25. #BDAT
  26. into method label SMBR code_regex Index\s\(Local0,\s0x02\)\s=\sBDAT replaceall_matched begin Index (Local0, 0x02) = RECB(0x1c, 256) end;

  27. into method label ECSB code_regex Index\s\(Local1,\s0x04\)\s=\sBDAT replaceall_matched begin Index (Local1, 0x04) = RECB(0x1c, 256) end;

  28. into method label SMBR code_regex BDAT\s=\sZero replaceall_matched begin WECB(0x1c,256,0) end;

  29. into method label SMBW code_regex BDAT\s=\sZero replaceall_matched begin WECB(0x1c,256,0) end;

  30. into method label SMBW code_regex BDAT\s=\sArg4 replaceall_matched begin WECB(0x1c,256,Arg4) end;

  31. into method label ECSB code_regex BDAT\s=\sDerefOf\s\(Index\s\(Arg6,\sOne\)\) replaceall_matched begin WECB(0x1c,256,DerefOf (Index (Arg6, One))) end;

  32. #BDA2
  33. into method label ECSB code_regex Index\s\(Local1,\s0x04\)\s\=\sBDA2 replaceall_matched begin Index (Local1, 0x04) =RECB(0x44, 256) end;

  34. into method label ECSB code_regex BDA2\s=\sDerefOf\s\(Index\s\(Arg6,\sOne\)\) replaceall_matched begin WECB(0x44,256,DerefOf (Index (Arg6, One))) end;


  35. # ==== Data handling method 数据处理方法 ====
  36. #16
  37. into method label B1B2 remove_entry;
  38. into definitionblock code_regex . insert
  39. begin
  40. Method (B1B2, 2, NotSerialized)\n
  41. {\n
  42. Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
  43. }\n
  44. end;

  45. #256
  46. # utility methods to read/write buffers from/to EC
  47. into method label RE1B parent_label EC0 remove_entry;
  48. into method label RECB parent_label EC0 remove_entry;
  49. into device label EC0 insert
  50. begin
  51. Method (RE1B, 1, NotSerialized)\n
  52. {\n
  53.     OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
  54.     Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
  55.     Return(BYTE)\n
  56. }\n
  57. Method (RECB, 2, Serialized)\n
  58. // Arg0 - offset in bytes from zero-based EC\n
  59. // Arg1 - size of buffer in bits\n
  60. {\n
  61.     ShiftRight(Arg1, 3, Arg1)\n
  62.     Name(TEMP, Buffer(Arg1) { })\n
  63.     Add(Arg0, Arg1, Arg1)\n
  64.     Store(0, Local0)\n
  65.     While (LLess(Arg0, Arg1))\n
  66.     {\n
  67.         Store(RE1B(Arg0), Index(TEMP, Local0))\n
  68.         Increment(Arg0)\n
  69.         Increment(Local0)\n
  70.     }\n
  71.     Return(TEMP)\n
  72. }\n
  73. end;

  74. into method label WE1B parent_label EC0 remove_entry;
  75. into method label WECB parent_label EC0 remove_entry;
  76. into device label EC0 insert
  77. begin
  78. Method (WE1B, 2, NotSerialized)\n
  79. {\n
  80.     OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
  81.     Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
  82.     Store(Arg1, BYTE)\n
  83. }\n
  84. Method (WECB, 3, Serialized)\n
  85. // Arg0 - offset in bytes from zero-based EC\n
  86. // Arg1 - size of buffer in bits\n
  87. // Arg2 - value to write\n
  88. {\n
  89.     ShiftRight(Arg1, 3, Arg1)\n
  90.     Name(TEMP, Buffer(Arg1) { })\n
  91.     Store(Arg2, TEMP)\n
  92.     Add(Arg0, Arg1, Arg1)\n
  93.     Store(0, Local0)\n
  94.     While (LLess(Arg0, Arg1))\n
  95.     {\n
  96.         WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
  97.         Increment(Arg0)\n
  98.         Increment(Local0)\n
  99.     }\n
  100. }\n
  101. end;
复制代码

说明一下,iasl反编译可能会开启优化,那么数学运算之类的Method将会优化为数学符号,这时候需要修改一下补丁以适应dsdt。

Rank: 15Rank: 15Rank: 15

UID
197429
帖子
16229
PB币
266
贡献
0
技术
163
活跃
4671

8周年庆典勋章

沙发
发表于 2015-7-31 14:22:01 IP属地江苏 |只看该作者
支持一下,敢于动手和创新的人们

Rank: 1

UID
4721199
帖子
67
PB币
0
贡献
0
技术
0
活跃
14
板凳
发表于 2015-7-31 14:25:03 IP属地广东 |只看该作者
显卡 显卡 显卡 显卡 显卡

Rank: 1

UID
4721199
帖子
67
PB币
0
贡献
0
技术
0
活跃
14
4F
发表于 2015-7-31 14:36:58 IP属地广东 |只看该作者
显卡 显卡 显卡 显卡

Rank: 2Rank: 2

UID
1939996
帖子
108
PB币
38
贡献
0
技术
1
活跃
109
5F
发表于 2015-7-31 20:27:08 IP属地广东 |只看该作者
顶起来让更多人看到

Rank: 2Rank: 2

UID
1939996
帖子
108
PB币
38
贡献
0
技术
1
活跃
109
6F
发表于 2015-8-14 18:49:34 IP属地广东 |只看该作者
再顶起来
字数补丁

Rank: 2Rank: 2

UID
1472528
帖子
220
PB币
11
贡献
0
技术
3
活跃
145
7F
发表于 2015-9-11 22:28:44 IP属地陕西 |只看该作者
看不懂啊啊。。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛