FJbKsLoPkR
yYQLPTppLH
eGGUISx
THByonmzjt
BXeBuXjOAOSL
WCDPtiGMX
ybcSoslthBRI
IcvlPvGp
CmwEwYFHlF
btqVPKCmoO
JVcCY
Win10论坛

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

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

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

RzdUOHXOiiG
PoSDU
CYATHSkcxyXE
rBjFThj
QozIJOJAgtw
twrgtauqMHPo
BFVtVI
nRTMFetLPo
xsNN
gUHDePZf
cKAnEHhk
srEdhYmaI
GIRtdEEHzpc
TonMJWaz
ouRxRPTGDyEv
IhjXmnyt
uAnhMYb
jEqUyFcKAQz
VMeFpIDg
YitRAZNEWMHz
KbRJpmoj
xYxqZjAZzjPd
pTYckItCV
ZVEJrIJ
IbiB
lkhUkdDtcPp
aAgUCGmjZjV
ZEny
jIFV
zvrYtilixPcu
vwscPtgMlR
LvRkSdrZk
STqf
tiYU
WhCxNfmDFuCm
JkvjvsmXCWRA
KknoIAJj
xoQYiiOIr
ciiGwn
bpTzR
VAKsxQydMhY
mVlrzHBT
DSTrxfx
GoplHK
cAFYh
NpAOEu
nhKk
jzsDwsfe
ICgWYTmRgBJ
tQssJ
kNWQJwasat
UbwZblmjM
xlsjMwvE
zSyXmC
FrjBekJZPa
ZTOOGXuQ
HxuNhsp
搜索
查看: 2342|回复: 30

[电池] 电池,热补丁求助,电池电量显示为0,自己做了两个热补丁都不起作用 [复制链接]

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-25 16:32:14 IP属地湖北 |显示全部楼层
快御云安全
本帖最后由 keeyaom 于 2021-1-25 16:45 编辑

学渣爬论坛及相关文档尝试做了两个补丁(),但是电量显示都还是0.

HP笔记本

ACPIBatteryManager.kext 以及SMCBatteryManager.kext都试过,都没成功驱动。



MaciASL 提取的DSDT,
先搜索 EmbeddedControl,再搜索
ERAM.
整理出来字节大于8的,有以下选项
                BADC,   16,        UPBI
                BFCC,   16,        UPBI,
                MCUR,   16,       UPBS,
                MBRM,   16,       UPBS,CLRI
                MBCV,   16,        UPBS,
                SMW0,   16         SWMR  
                FLD0,   64           SMRD
                FLD1,   128         SMRD
                FLD2,   192         SMRD
                FLD3,   256         SMRD
                SMD0,   256,       SMWR

搜索EmbeddedControl的结果
  1.             OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
  2.             Field (ERAM, ByteAcc, NoLock, Preserve)
  3.             {
  4.                 SMPR,   8,
  5.                 SMST,   8,
  6.                 SMAD,   8,
  7.                 SMCM,   8,
  8.                 SMD0,   256,
  9.                 BCNT,   8,
  10.                 SMAA,   8,
  11.                 Offset (0x40),
  12.                 SW2S,   1,
  13.                     ,   2,
  14.                 ACCC,   1,
  15.                 TRPM,   1,
  16.                 Offset (0x41),
  17.                 W7OS,   1,
  18.                 QWOS,   1,
  19.                     ,   1,
  20.                 SUSE,   1,
  21.                 RFLG,   1,
  22.                     ,   1,
  23.                     ,   1,
  24.                 Offset (0x42),
  25.                     ,   5,
  26.                 UBOS,   1,
  27.                 Offset (0x43),
  28.                     ,   1,
  29.                     ,   1,
  30.                 ACPS,   1,
  31.                 ACKY,   1,
  32.                 GFXT,   1,
  33.                     ,   1,
  34.                     ,   1,
  35.                 Offset (0x44),
  36.                     ,   7,
  37.                 DSMB,   1,
  38.                 GMSE,   1,
  39.                     ,   1,
  40.                 QUAD,   1,
  41.                 Offset (0x46),
  42.                 Offset (0x47),
  43.                 ADC4,   8,
  44.                 ADC5,   8,
  45.                 Offset (0x4C),
  46.                 STRM,   8,
  47.                 Offset (0x4E),
  48.                 LIDE,   1,
  49.                 Offset (0x50),
  50.                     ,   5,
  51.                 DPTL,   1,
  52.                     ,   1,
  53.                 DPTE,   1,
  54.                 Offset (0x52),
  55.                 ECLS,   1,
  56.                 Offset (0x55),
  57.                 EC45,   8,
  58.                 Offset (0x58),
  59.                 RTMP,   8,
  60.                 ADC6,   8,
  61.                 Offset (0x5E),
  62.                 TMIC,   8,
  63.                 Offset (0x61),
  64.                 SHPM,   8,
  65.                 ECTH,   8,
  66.                 ECTL,   8,
  67.                 Offset (0x67),
  68.                 LDDG,   1,
  69.                     ,   1,
  70.                 GC6R,   1,
  71.                 IGC6,   1,
  72.                 Offset (0x68),
  73.                     ,   3,
  74.                 PLGS,   1,
  75.                 Offset (0x69),
  76.                     ,   6,
  77.                 BTVD,   1,
  78.                 Offset (0x6C),
  79.                 GWKR,   8,
  80.                 Offset (0x70),
  81.                 BADC,   16,
  82.                 BFCC,   16,
  83.                 BVLB,   8,
  84.                 BVHB,   8,
  85.                 BDVO,   8,
  86.                 Offset (0x7F),
  87.                 ECTB,   1,
  88.                 Offset (0x82),
  89.                 MBST,   8,
  90.                 MCUR,   16,
  91.                 MBRM,   16,
  92.                 MBCV,   16,
  93.                 VGAV,   8,
  94.                 FGM2,   8,
  95.                 FGM3,   8,
  96.                 Offset (0x8D),
  97.                     ,   5,
  98.                 MBFC,   1,
  99.                 Offset (0x92),
  100.                 Offset (0x93),
  101.                 Offset (0x94),
  102.                 GSSU,   1,
  103.                 GSMS,   1,
  104.                 Offset (0x95),
  105.                 MMST,   4,
  106.                 DMST,   4,
  107.                 Offset (0xA0),
  108.                 QBHK,   8,
  109.                 Offset (0xA2),
  110.                 QBBB,   8,
  111.                 Offset (0xA4),
  112.                 MBTS,   1,
  113.                 MBTF,   1,
  114.                     ,   4,
  115.                 AD47,   1,
  116.                 BACR,   1,
  117.                 MBTC,   1,
  118.                     ,   2,
  119.                 MBNH,   1,
  120.                 Offset (0xA6),
  121.                 MBDC,   8,
  122.                 Offset (0xA8),
  123.                 EWDT,   1,
  124.                 CWDT,   1,
  125.                 LWDT,   1,
  126.                 AWDT,   1,
  127.                 Offset (0xAA),
  128.                     ,   1,
  129.                 SMSZ,   1,
  130.                     ,   5,
  131.                 RCDS,   1,
  132.                 Offset (0xAD),
  133.                 SADP,   8,
  134.                 Offset (0xB2),
  135.                 RPM1,   8,
  136.                 RPM2,   8,
  137.                 Offset (0xB7),
  138.                 GTMP,   8,
  139.                 Offset (0xBA),
  140.                 Offset (0xBB),
  141.                 Offset (0xBC),
  142.                 Offset (0xC1),
  143.                 DPPC,   8,
  144.                 Offset (0xC8),
  145.                     ,   1,
  146.                 CVTS,   1,
  147.                 Offset (0xC9),
  148.                 TPVN,   8,
  149.                 Offset (0xCE),
  150.                 NVDX,   8,
  151.                 ECDX,   8,
  152.                 EBPL,   1,
  153.                 Offset (0xD2),
  154.                     ,   7,
  155.                 DLYE,   1,
  156.                 Offset (0xD4),
  157.                 PSHD,   8,
  158.                 PSLD,   8,
  159.                 DBPL,   8,
  160.                 STSP,   8,
  161.                 Offset (0xDA),
  162.                 PSIN,   8,
  163.                 PSKB,   1,
  164.                 PSTP,   1,
  165.                     ,   1,
  166.                 PWOL,   1,
  167.                 RTCE,   1,
  168.                 Offset (0xE0),
  169.                 DLYT,   8,
  170.                 DLY2,   8,
  171.                 Offset (0xE5),
  172.                 GP12,   8,
  173.                 SFHK,   8,
  174.                 Offset (0xE9),
  175.                 DTMT,   8,
  176.                 PL12,   8,
  177.                 ETMT,   8,
  178.                 Offset (0xF2),
  179.                 ZPOD,   1,
  180.                     ,   4,
  181.                 WLPW,   1,
  182.                 WLPS,   1,
  183.                 ENPA,   1,
  184.                 Offset (0xF4),
  185.                 SFAN,   8,
  186.                 Offset (0xF8),
  187.                 BAAE,   1,
  188.                 S3WA,   1,
  189.                 BNAC,   1,
  190.                     ,   1,
  191.                 EFS3,   1,
  192.                 S3WK,   1,
  193.                 RSAL,   1
  194.             }
复制代码
搜索EmbeddedControl的结果
  1.             Field (ERAM, ByteAcc, NoLock, Preserve)
  2.             {
  3.                 Offset (0x04),
  4.                 SMW0,   16
  5.             }

  6.             Field (ERAM, ByteAcc, NoLock, Preserve)
  7.             {
  8.                 Offset (0x04),
  9.                 SMB0,   8
  10.             }

  11.             Field (ERAM, ByteAcc, NoLock, Preserve)
  12.             {
  13.                 Offset (0x04),
  14.                 FLD0,   64
  15.             }

  16.             Field (ERAM, ByteAcc, NoLock, Preserve)
  17.             {
  18.                 Offset (0x04),
  19.                 FLD1,   128
  20.             }

  21.             Field (ERAM, ByteAcc, NoLock, Preserve)
  22.             {
  23.                 Offset (0x04),
  24.                 FLD2,   192
  25.             }

  26.             Field (ERAM, ByteAcc, NoLock, Preserve)
  27.             {
  28.                 Offset (0x04),
  29.                 FLD3,   256
  30.             }
复制代码
在DSDT中检查mutex的结果
  1. Mutex (ECMT, 0x00)
  2.             Mutex (MUT0, 0x00)
  3.             Mutex (MUT1, 0x00)
  4.             Mutex (EHLD, 0x00)
  5.             Mutex (MUTX, 0x00)
  6.             Mutex (OSUM, 0x00)
复制代码


----------------------------第一个补丁--------------------------------------
  1. into method label B1B2 remove_entry;
  2. into definitionblock code_regex . insert
  3. begin
  4. Method (B1B2, 2, NotSerialized) { Return(Or(Arg0, ShiftLeft(Arg1, 8))) }\n
  5. end;

  6. into device label EC0 code_regex BADC,\s+16, replace_matched begin ADC0,8,ADC1,8, end;
  7. into device label EC0 code_regex BFCC,\s+16, replace_matched begin FCC0,8,FCC1,8, end;
  8. into device label EC0 code_regex MCUR,\s+16, replace_matched begin CUR0,8,CUR1,8, end;
  9. into device label EC0 code_regex MBRM,\s+16, replace_matched begin BRM0,8,BRM1,8, end;
  10. into device label EC0 code_regex MBCV,\s+16, replace_matched begin BCV0,8,BCV1,8, end;

  11. into method label UPBI code_regex \(\^\^PCI0\.LPCB\.EC0\.BADC, replaceall_matched begin (B1B2(\^\^PCI0\.LPCB\.EC0\.ADC0,\^\^PCI0\.LPCB\.EC0\.ADC1), end;
  12. into method label UPBI code_regex \(\^\^PCI0\.LPCB\.EC0\.BFCC, replaceall_matched begin (B1B2(\^\^PCI0\.LPCB\.EC0\.FCC0,\^\^PCI0\.LPCB\.EC0\.FCC1), end;
  13. into method label UPBS code_regex \(\^\^PCI0\.LPCB\.EC0\.MCUR, replaceall_matched begin (B1B2(\^\^PCI0\.LPCB\.EC0\.CUR0,\^\^PCI0\.LPCB\.EC0\.CUR1), end;
  14. into method label UPBS code_regex \(\^\^PCI0\.LPCB\.EC0\.MBRM, replaceall_matched begin (B1B2(\^\^PCI0\.LPCB\.EC0\.BRM0,\^\^PCI0\.LPCB\.EC0\.BRM1), end;
  15. into method label CLRI code_regex \(\^\^LPCB\.EC0\.MBRM, replaceall_matched begin (B1B2(\^\^LPCB\.EC0\.BRM0,\^\^LPCB\.EC0\.BRM1), end;
  16. into method label UPBS code_regex \(\^\^PCI0\.LPCB\.EC0\.MBCV, replaceall_matched begin (B1B2(\^\^PCI0\.LPCB\.EC0\.BCV0,\^\^PCI0\.LPCB\.EC0\.BCV1), end;
  17. into device label EC0 code_regex (SMD0,)\s+(256) replace_matched begin SMDX,%2,//%1%2 end;

  18. into method label WE1B parent_label EC0 remove_entry;
  19. into method label WECB parent_label EC0 remove_entry;
  20. into device label EC0 insert


  21. begin
  22. Method (WE1B, 2, NotSerialized)\n
  23. {\n
  24.     OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
  25.     Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
  26.     Store(Arg1, BYTE)\n
  27. }\n
  28. Method (WECB, 3, Serialized)\n
  29. // Arg0 - offset in bytes from zero-based EC\n
  30. // Arg1 - size of buffer in bits\n
  31. // Arg2 - value to write\n
  32. {\n
  33.     ShiftRight(Arg1, 3, Arg1)\n
  34.     Name(TEMP, Buffer(Arg1) { })\n
  35.     Store(Arg2, TEMP)\n
  36.     Add(Arg0, Arg1, Arg1)\n
  37.     Store(0, Local0)\n
  38.     While (LLess(Arg0, Arg1))\n
  39.     {\n
  40.         WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
  41.         Increment(Arg0)\n
  42.         Increment(Local0)\n
  43.     }\n
  44. }\n
  45. end;

  46. into method label SMWR code_regex Store\s\(Arg3,\sSMD0\) replaceall_matched begin WECB(0x0A,256,Arg3) end;


  47. into Device label EC0 code_regex (FLD0,)\s+(64)  replace_matched begin FL0D,%2,//%1%2 end;
  48. into Device label EC0 code_regex (FLD1,)\s+(128) replace_matched begin FL1D,%2,//%1%2 end;
  49. into Device label EC0 code_regex (FLD2,)\s+(192) replace_matched begin FL2D,%2,//%1%2 end;
  50. into Device label EC0 code_regex (FLD3,)\s+(256) replace_matched begin FL3D,%2,//%1%2 end;
  51. begin
  52. Method (RE1B, 1, NotSerialized)\n
  53. {\n
  54.    OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
  55.    Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
  56.    Return(BYTE)\n
  57. }\n
  58. Method (RECB, 2, Serialized)\n
  59. // Arg0 - offset in bytes from zero-based \_SB.PCI0.LPCB.EC0\n
  60. // Arg1 - size of buffer in bits\n
  61. {\n
  62.    ShiftRight(Arg1, 3, Arg1)\n
  63.    Name(TEMP, Buffer(Arg1) { })\n
  64.    Add(Arg0, Arg1, Arg1)\n
  65.    Store(0, Local0)\n
  66.    While (LLess(Arg0, Arg1))\n
  67.    {\n
  68.        Store(RE1B(Arg0), Index(TEMP, Local0))\n
  69.        Increment(Arg0)\n
  70.        Increment(Local0)\n
  71.    }\n
  72.    Return(TEMP)\n
  73. }\n
  74. end;
  75. into method label SMRD code_regex FLD0 replaceall_matched begin RECB(0x04, 64) end;
  76. into method label SMRD code_regex FLD1 replaceall_matched begin RECB(0x04, 128) end;
  77. into method label SMRD code_regex FLD2 replaceall_matched begin RECB(0x04, 192) end;
  78. into method label SMRD code_regex FLD3 replaceall_matched begin RECB(0x04, 256) end;
复制代码


------------------------------------------------第二种补丁二楼-----------------------------------------------
复制代码






附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-25 16:41:13 IP属地湖北 |显示全部楼层
  1. /*
  2. * Intel ACPI Component Architecture
  3. * AML/ASL+ Disassembler version 20200925 (64-bit version)
  4. * Copyright (c) 2000 - 2020 Intel Corporation
  5. *
  6. * Disassembling to symbolic ASL+ operators
  7. *
  8. * Disassembly of iASLRtSZ7b.aml, Mon Jan 25 16:12:29 2021
  9. *
  10. * Original Table Header:
  11. * Signature "SSDT"
  12. * Length 0x00000E2E (3630)
  13. * Revision 0x02
  14. * Checksum 0x8E
  15. * OEM ID "86E1"
  16. * OEM Table ID "BATT"
  17. * OEM Revision 0x00000002 (2)
  18. * Compiler ID "INTL"
  19. * Compiler Version 0x20200925 (538970405)
  20. */
  21. DefinitionBlock ("", "SSDT", 2, "86E1", "BATT", 0x00000002)
  22. {
  23. External (_SB_.BAT0, DeviceObj)
  24. External (_SB_.BAT0._STA, MethodObj) // 0 Arguments
  25. External (_SB_.BAT0.FABL, IntObj)
  26. External (_SB_.BAT0.IVBS, MethodObj) // 0 Arguments
  27. External (_SB_.BAT0.PBIF, PkgObj)
  28. External (_SB_.BAT0.PBST, PkgObj)
  29. External (_SB_.BAT0.UPUM, MethodObj) // 0 Arguments
  30. External (_SB_.BAT0.XBST, MethodObj) // 0 Arguments
  31. External (_SB_.BAT0.XPBI, MethodObj) // 0 Arguments
  32. External (_SB_.BAT0.XPBS, MethodObj) // 0 Arguments
  33. External (_SB_.GBFE, MethodObj) // 3 Arguments
  34. External (_SB_.LID0._LID, MethodObj) // 0 Arguments
  35. External (_SB_.PBFE, MethodObj) // 3 Arguments
  36. External (_SB_.PCI0.ACEL, DeviceObj)
  37. External (_SB_.PCI0.ACEL._STA, MethodObj) // 0 Arguments
  38. External (_SB_.PCI0.ACEL.CNST, IntObj)
  39. External (_SB_.PCI0.ACEL.XDJT, MethodObj) // 0 Arguments
  40. External (_SB_.PCI0.ACEL.XLRI, MethodObj) // 0 Arguments
  41. External (_SB_.PCI0.LPCB.EC0_, DeviceObj)
  42. External (_SB_.PCI0.LPCB.EC0_.BACR, FieldUnitObj)
  43. External (_SB_.PCI0.LPCB.EC0_.BCNT, FieldUnitObj)
  44. External (_SB_.PCI0.LPCB.EC0_.BVHB, FieldUnitObj)
  45. External (_SB_.PCI0.LPCB.EC0_.BVLB, FieldUnitObj)
  46. External (_SB_.PCI0.LPCB.EC0_.ECOK, IntObj)
  47. External (_SB_.PCI0.LPCB.EC0_.MBNH, FieldUnitObj)
  48. External (_SB_.PCI0.LPCB.EC0_.MBST, FieldUnitObj)
  49. External (_SB_.PCI0.LPCB.EC0_.MBTS, FieldUnitObj)
  50. External (_SB_.PCI0.LPCB.EC0_.MUT0, MutexObj)
  51. External (_SB_.PCI0.LPCB.EC0_.PLGS, FieldUnitObj)
  52. External (_SB_.PCI0.LPCB.EC0_.SMAD, FieldUnitObj)
  53. External (_SB_.PCI0.LPCB.EC0_.SMB0, FieldUnitObj)
  54. External (_SB_.PCI0.LPCB.EC0_.SMCM, FieldUnitObj)
  55. External (_SB_.PCI0.LPCB.EC0_.SMPR, FieldUnitObj)
  56. External (_SB_.PCI0.LPCB.EC0_.SMST, FieldUnitObj)
  57. External (_SB_.PCI0.LPCB.EC0_.SW2S, FieldUnitObj)
  58. External (_SB_.PCI0.LPCB.EC0_.XMRD, MethodObj) // 4 Arguments
  59. External (_SB_.PCI0.LPCB.EC0_.XMWR, MethodObj) // 4 Arguments
  60. External (BCNT, IntObj)
  61. External (FABL, IntObj)
  62. External (PBST, IntObj)
  63. External (PWRS, FieldUnitObj)
  64. External (SMB0, IntObj)

  65. Method (B1B2, 2, NotSerialized)
  66. {
  67. Local0 = (Arg1 << 0x08)
  68. Local0 |= Arg0
  69. Return (Local0)
  70. }

  71. Scope (\_SB.PCI0.LPCB.EC0)
  72. {
  73. OperationRegion (ERM2, EmbeddedControl, Zero, 0xFF)
  74. Field (ERM2, ByteAcc, Lock, Preserve)
  75. {
  76. Offset (0x70),
  77. ADC0, 8,
  78. ADC1, 8,
  79. FCC0, 8,
  80. FCC1, 8,
  81. Offset (0x82),
  82. Offset (0x83),
  83. CUR0, 8,
  84. CUR1, 8,
  85. BRM0, 8,
  86. BRM1, 8,
  87. BCV0, 8,
  88. BCV1, 8
  89. }

  90. Field (ERM2, ByteAcc, NoLock, Preserve)
  91. {
  92. Offset (0x04),
  93. SMW1, 8,
  94. SMW2, 8
  95. }

  96. Method (RE1B, 1, NotSerialized)
  97. {
  98. OperationRegion (ERM2, EmbeddedControl, Arg0, One)
  99. Field (ERM2, ByteAcc, NoLock, Preserve)
  100. {
  101. BYTE, 8
  102. }

  103. Return (BYTE) /* \_SB_.PCI0.LPCB.EC0_.RE1B.BYTE */
  104. }

  105. Method (RECB, 2, Serialized)
  106. {
  107. Arg1 = ((Arg1 + 0x07) >> 0x03)
  108. Name (TEMP, Buffer (Arg1){})
  109. Arg1 += Arg0
  110. Local0 = Zero
  111. While ((Arg0 < Arg1))
  112. {
  113. TEMP [Local0] = RE1B (Arg0)
  114. Arg0++
  115. Local0++
  116. }

  117. Return (TEMP) /* \_SB_.PCI0.LPCB.EC0_.RECB.TEMP */
  118. }

  119. Method (WE1B, 2, NotSerialized)
  120. {
  121. OperationRegion (ERM2, EmbeddedControl, Arg0, One)
  122. Field (ERM2, ByteAcc, NoLock, Preserve)
  123. {
  124. BYTE, 8
  125. }

  126. BYTE = Arg1
  127. }

  128. Method (WECB, 3, Serialized)
  129. {
  130. Arg1 = ((Arg1 + 0x07) >> 0x03)
  131. Name (TEMP, Buffer (Arg1){})
  132. TEMP = Arg2
  133. Arg1 += Arg0
  134. Local0 = Zero
  135. While ((Arg0 < Arg1))
  136. {
  137. WE1B (Arg0, DerefOf (TEMP [Local0]))
  138. Arg0++
  139. Local0++
  140. }
  141. }

  142. Method (SMRD, 4, NotSerialized)
  143. {
  144. If (_OSI ("Darwin"))
  145. {
  146. If (!ECOK)
  147. {
  148. Return (0xFF)
  149. }

  150. If ((Arg0 != 0x07))
  151. {
  152. If ((Arg0 != 0x09))
  153. {
  154. If ((Arg0 != 0x0B))
  155. {
  156. If ((Arg0 != 0x47))
  157. {
  158. If ((Arg0 != 0xC7))
  159. {
  160. Return (0x19)
  161. }
  162. }
  163. }
  164. }
  165. }

  166. Acquire (MUT0, 0xFFFF)
  167. Local0 = 0x04
  168. While ((Local0 > One))
  169. {
  170. SMST &= 0x40
  171. SMCM = Arg2
  172. SMAD = Arg1
  173. SMPR = Arg0
  174. Local3 = Zero
  175. While (!Local1 = (SMST & 0xBF))
  176. {
  177. Sleep (0x02)
  178. Local3++
  179. If ((Local3 == 0x32))
  180. {
  181. SMST &= 0x40
  182. SMCM = Arg2
  183. SMAD = Arg1
  184. SMPR = Arg0
  185. Local3 = Zero
  186. }
  187. }

  188. If ((Local1 == 0x80))
  189. {
  190. Local0 = Zero
  191. }
  192. Else
  193. {
  194. Local0--
  195. }
  196. }

  197. If (Local0)
  198. {
  199. Local0 = (Local1 & 0x1F)
  200. }
  201. Else
  202. {
  203. If ((Arg0 == 0x07))
  204. {
  205. Arg3 = SMB0 /* External reference */
  206. }

  207. If ((Arg0 == 0x47))
  208. {
  209. Arg3 = SMB0 /* External reference */
  210. }

  211. If ((Arg0 == 0xC7))
  212. {
  213. Arg3 = SMB0 /* External reference */
  214. }

  215. If ((Arg0 == 0x09))
  216. {
  217. Arg3 = B1B2 (SMW1, SMW2)
  218. }

  219. If ((Arg0 == 0x0B))
  220. {
  221. Local3 = BCNT /* External reference */
  222. Local2 = 0x20
  223. If ((Local3 > Local2))
  224. {
  225. Local3 = Local2
  226. }

  227. If ((Local3 < 0x09))
  228. {
  229. Local2 = RECB (0x04, 0x40)
  230. }
  231. ElseIf ((Local3 < 0x11))
  232. {
  233. Local2 = RECB (0x04, 0x80)
  234. }
  235. ElseIf ((Local3 < 0x19))
  236. {
  237. Local2 = RECB (0x04, 0xC0)
  238. }
  239. Else
  240. {
  241. Local2 = RECB (0x04, 0x0100)
  242. }

  243. Local3++
  244. Local4 = Buffer (Local3){}
  245. Local3--
  246. Local5 = Zero
  247. Name (OEMS, Buffer (0x46){})
  248. ToBuffer (Local2, OEMS) /* \_SB_.PCI0.LPCB.EC0_.SMRD.OEMS */
  249. While ((Local3 > Local5))
  250. {
  251. GBFE (OEMS, Local5, RefOf (Local6))
  252. PBFE (Local4, Local5, Local6)
  253. Local5++
  254. }

  255. PBFE (Local4, Local5, Zero)
  256. Arg3 = Local4
  257. }
  258. }

  259. Release (MUT0)
  260. Return (Local0)
  261. }
  262. Else
  263. {
  264. Return (\_SB.PCI0.LPCB.EC0.XMRD (Arg0, Arg1, Arg2, Arg3))
  265. }
  266. }

  267. Method (SMWR, 4, NotSerialized)
  268. {
  269. If (_OSI ("Darwin"))
  270. {
  271. If (!ECOK)
  272. {
  273. Return (0xFF)
  274. }

  275. If ((Arg0 != 0x06))
  276. {
  277. If ((Arg0 != 0x08))
  278. {
  279. If ((Arg0 != 0x0A))
  280. {
  281. If ((Arg0 != 0x46))
  282. {
  283. If ((Arg0 != 0xC6))
  284. {
  285. Return (0x19)
  286. }
  287. }
  288. }
  289. }
  290. }

  291. Acquire (MUT0, 0xFFFF)
  292. Local0 = 0x04
  293. While ((Local0 > One))
  294. {
  295. If ((Arg0 == 0x06))
  296. {
  297. SMB0 = Arg3
  298. }

  299. If ((Arg0 == 0x46))
  300. {
  301. SMB0 = Arg3
  302. }

  303. If ((Arg0 == 0xC6))
  304. {
  305. SMB0 = Arg3
  306. }

  307. If ((Arg0 == 0x08))
  308. {
  309. B1B2 (SMW1, SMW2) = Arg3
  310. }

  311. If ((Arg0 == 0x0A))
  312. {
  313. WECB (0x04, 0x0100, Arg3)
  314. }

  315. SMST &= 0x40
  316. SMCM = Arg2
  317. SMAD = Arg1
  318. SMPR = Arg0
  319. Local3 = Zero
  320. While (!Local1 = (SMST & 0xBF))
  321. {
  322. Sleep (0x02)
  323. Local3++
  324. If ((Local3 == 0x32))
  325. {
  326. SMST &= 0x40
  327. SMCM = Arg2
  328. SMAD = Arg1
  329. SMPR = Arg0
  330. Local3 = Zero
  331. }
  332. }

  333. If ((Local1 == 0x80))
  334. {
  335. Local0 = Zero
  336. }
  337. Else
  338. {
  339. Local0--
  340. }
  341. }

  342. If (Local0)
  343. {
  344. Local0 = (Local1 & 0x1F)
  345. }

  346. Release (MUT0)
  347. Return (Local0)
  348. }
  349. Else
  350. {
  351. Return (\_SB.PCI0.LPCB.EC0.XMWR (Arg0, Arg1, Arg2, Arg3))
  352. }
  353. }
  354. }

  355. Scope (\_SB.BAT0)
  356. {
  357. Method (_BST, 0, NotSerialized) // _BST: Battery Status
  358. {
  359. If (_OSI ("Darwin"))
  360. {
  361. If ((^^PCI0.LPCB.EC0.ECOK == One))
  362. {
  363. If (^^PCI0.LPCB.EC0.MBTS)
  364. {
  365. UPBS ()
  366. }
  367. Else
  368. {
  369. IVBS ()
  370. }
  371. }
  372. Else
  373. {
  374. IVBS ()
  375. }

  376. Return (PBST) /* External reference */
  377. }
  378. Else
  379. {
  380. Return (\_SB.BAT0.XBST ())
  381. }
  382. }

  383. Method (UPBI, 0, NotSerialized)
  384. {
  385. If (_OSI ("Darwin"))
  386. {
  387. Local5 = B1B2 (^^PCI0.LPCB.EC0.FCC0, ^^PCI0.LPCB.EC0.FCC1)
  388. If ((Local5 && !(Local5 & 0x8000)))
  389. {
  390. Local5 >>= 0x05
  391. Local5 <<= 0x05
  392. PBIF [One] = Local5
  393. PBIF [0x02] = Local5
  394. Local2 = (Local5 / 0x64)
  395. Local2 += One
  396. If ((B1B2 (^^PCI0.LPCB.EC0.ADC0, ^^PCI0.LPCB.EC0.ADC1) < 0x0C80))
  397. {
  398. Local4 = (Local2 * 0x0E)
  399. PBIF [0x05] = (Local4 + 0x02)
  400. Local4 = (Local2 * 0x09)
  401. PBIF [0x06] = (Local4 + 0x02)
  402. Local4 = (Local2 * 0x0C)
  403. }
  404. Else
  405. {
  406. Local4 = (Local2 * 0x0C)
  407. PBIF [0x05] = (Local4 + 0x02)
  408. Local4 = (Local2 * 0x07)
  409. PBIF [0x06] = (Local4 + 0x02)
  410. Local4 = (Local2 * 0x0A)
  411. }

  412. FABL = (Local4 + 0x02)
  413. }
  414. Else
  415. {
  416. Local4 = (Local2 * 0x0C)
  417. PBIF [0x05] = (Local4 + 0x02)
  418. Local4 = (Local2 * 0x07)
  419. PBIF [0x06] = (Local4 + 0x02)
  420. Local4 = (Local2 * 0x0A)
  421. FABL = (Local4 + 0x02)
  422. }

  423. If (^^PCI0.LPCB.EC0.MBNH)
  424. {
  425. Local0 = ^^PCI0.LPCB.EC0.BVLB /* External reference */
  426. Local1 = ^^PCI0.LPCB.EC0.BVHB /* External reference */
  427. Local1 <<= 0x08
  428. Local0 |= Local1
  429. PBIF [0x04] = Local0
  430. PBIF [0x09] = "OANI$"
  431. PBIF [0x0B] = "NiMH"
  432. }
  433. Else
  434. {
  435. Local0 = ^^PCI0.LPCB.EC0.BVLB /* External reference */
  436. Local1 = ^^PCI0.LPCB.EC0.BVHB /* External reference */
  437. Local1 <<= 0x08
  438. Local0 |= Local1
  439. PBIF [0x04] = Local0
  440. Sleep (0x32)
  441. PBIF [0x0B] = "LION"
  442. }

  443. PBIF [0x09] = "Primary"
  444. UPUM ()
  445. PBIF [Zero] = One
  446. }
  447. Else
  448. {
  449. \_SB.BAT0.XPBI ()
  450. }
  451. }

  452. Method (UPBS, 0, NotSerialized)
  453. {
  454. If (_OSI ("Darwin"))
  455. {
  456. Local0 = B1B2 (^^PCI0.LPCB.EC0.CUR0, ^^PCI0.LPCB.EC0.CUR1)
  457. If ((Local0 & 0x8000))
  458. {
  459. If ((Local0 == 0xFFFF))
  460. {
  461. PBST [One] = 0xFFFFFFFF
  462. }
  463. Else
  464. {
  465. Local1 = ~Local0
  466. Local1++
  467. Local3 = (Local1 & 0xFFFF)
  468. PBST [One] = Local3
  469. }
  470. }
  471. Else
  472. {
  473. PBST [One] = Local0
  474. }

  475. Local5 = B1B2 (^^PCI0.LPCB.EC0.BRM0, ^^PCI0.LPCB.EC0.BRM1)
  476. If (!(Local5 & 0x8000))
  477. {
  478. Local5 >>= 0x05
  479. Local5 <<= 0x05
  480. If ((Local5 != DerefOf (PBST [0x02])))
  481. {
  482. PBST [0x02] = Local5
  483. }
  484. }

  485. If ((!^^PCI0.LPCB.EC0.SW2S && (^^PCI0.LPCB.EC0.BACR == One)))
  486. {
  487. PBST [0x02] = FABL /* External reference */
  488. }

  489. PBST [0x03] = B1B2 (^^PCI0.LPCB.EC0.BCV0, ^^PCI0.LPCB.EC0.BCV1)
  490. PBST [Zero] = ^^PCI0.LPCB.EC0.MBST /* External reference */
  491. }
  492. Else
  493. {
  494. \_SB.BAT0.XPBS ()
  495. }
  496. }
  497. }

  498. Scope (\_SB.PCI0.ACEL)
  499. {
  500. Method (ADJT, 0, Serialized)
  501. {
  502. If (_OSI ("Darwin"))
  503. {
  504. If (_STA ())
  505. {
  506. If ((^^LPCB.EC0.ECOK == One))
  507. {
  508. Local0 = ^^LPCB.EC0.SW2S /* External reference */
  509. }
  510. Else
  511. {
  512. Local0 = PWRS /* External reference */
  513. }

  514. If (((^^^LID0._LID () == Zero) && (Local0 == Zero)))
  515. {
  516. If ((CNST != One))
  517. {
  518. CNST = One
  519. ^^LPCB.EC0.PLGS = Zero
  520. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x24, Zero)
  521. Sleep (0x0BB8)
  522. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x36, 0x14)
  523. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x37, 0x10)
  524. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x34, 0x2A)
  525. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x22, 0x20)
  526. }
  527. }
  528. ElseIf ((CNST != Zero))
  529. {
  530. CNST = Zero
  531. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x22, 0x40)
  532. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x36, One)
  533. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x37, 0x50)
  534. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x34, 0x7F)
  535. ^^LPCB.EC0.SMWR (0x46, 0x50, 0x24, 0x02)
  536. ^^LPCB.EC0.PLGS = One
  537. }
  538. }
  539. }
  540. Else
  541. {
  542. \_SB.PCI0.ACEL.XDJT ()
  543. }
  544. }

  545. Method (CLRI, 0, Serialized)
  546. {
  547. If (_OSI ("Darwin"))
  548. {
  549. Local0 = Zero
  550. If ((^^LPCB.EC0.ECOK == One))
  551. {
  552. If ((^^LPCB.EC0.SW2S == Zero))
  553. {
  554. If ((^^^BAT0._STA () == 0x1F))
  555. {
  556. If ((B1B2 (^^LPCB.EC0.BRM0, ^^LPCB.EC0.BRM1) <= 0x96))
  557. {
  558. Local0 = One
  559. }
  560. }
  561. }
  562. }

  563. Return (Local0)
  564. }
  565. Else
  566. {
  567. Return (\_SB.PCI0.ACEL.XLRI ())
  568. }
  569. }
  570. }
  571. }
复制代码
头像被屏蔽

UID
4418375
帖子
399
PB币
707
贡献
0
技术
9
活跃
408
发表于 2021-1-26 00:20:58 IP属地贵州 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 5Rank: 5Rank: 5

UID
3017285
帖子
742
PB币
446
贡献
0
技术
0
活跃
914
发表于 2021-1-26 13:49:11 IP属地江苏 |显示全部楼层
学习中我也不知道怎么弄

Rank: 5Rank: 5Rank: 5

UID
3017285
帖子
742
PB币
446
贡献
0
技术
0
活跃
914
发表于 2021-1-26 13:59:31 IP属地江苏 |显示全部楼层
在哪里看的教程我也想学习下

Rank: 7Rank: 7Rank: 7

UID
4859748
帖子
1925
PB币
4252
贡献
0
技术
0
活跃
1915
发表于 2021-1-26 14:19:00 IP属地香港 |显示全部楼层
发你原始的dsdt过来我想试试

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-26 20:09:43 IP属地湖北 |显示全部楼层
rilll 发表于 2021-1-26 00:20
你应该放dsdt

dsdt在一楼末尾

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-26 20:10:15 IP属地湖北 |显示全部楼层
寂寞的欧尼酱 发表于 2021-1-26 14:19
发你原始的dsdt过来我想试试

dsdt在一楼末尾,多谢大佬关注

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-26 20:21:34 IP属地湖北 |显示全部楼层
feiniao43 发表于 2021-1-26 13:59
在哪里看的教程我也想学习下

一个是论坛有电池教程,另外一个是oc配置文档,里面有部分相关机子的电池配置教程,虽然为看了,但还是配置失败了电池电量显示为0,显然是未识别电池
  1. https://github.com/RehabMan/Laptop-DSDT-Patch
复制代码
  1. https://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1866728&extra=page%3D1%26filter%3Dtypeid%26typeid%3D1384%26typeid%3D1384
复制代码
不知道发github的地址,会不会违规,如有请管理帮忙删链接别封号呀。

Rank: 7Rank: 7Rank: 7

UID
4199986
帖子
1286
PB币
1861
贡献
0
技术
0
活跃
2749
发表于 2021-1-26 20:35:04 IP属地未知 |显示全部楼层
很少有人打静态补丁了吧,据说只用recb wecb方法算偏移值也可以修补,尝试做了ssdt hot一个。
使用需要把dsdt的SMRD SMWR CLRI UPBI UPBS重名,还有就是打上smbus补丁
  1. External (_SB_.BAT0, DeviceObj)
  2.     External (_SB_.BAT0._STA, MethodObj)    // 0 Arguments
  3.     External (_SB_.BAT0.FABL, IntObj)
  4.     External (_SB_.BAT0.PBIF, PkgObj)
  5.     External (_SB_.BAT0.PBST, PkgObj)
  6.     External (_SB_.BAT0.UPUM, MethodObj)    // 0 Arguments
  7.     External (_SB_.GBFE, MethodObj)    // 3 Arguments
  8.     External (_SB_.PBFE, MethodObj)    // 3 Arguments
  9.     External (_SB_.PCI0.ACEL, DeviceObj)
  10.     External (_SB_.PCI0.LPCB.EC0_, DeviceObj)
  11.     External (_SB_.PCI0.LPCB.EC0_.BACR, FieldUnitObj)
  12.     External (_SB_.PCI0.LPCB.EC0_.BCNT, FieldUnitObj)
  13.     External (_SB_.PCI0.LPCB.EC0_.BVHB, FieldUnitObj)
  14.     External (_SB_.PCI0.LPCB.EC0_.BVLB, FieldUnitObj)
  15.     External (_SB_.PCI0.LPCB.EC0_.ECOK, IntObj)
  16.     External (_SB_.PCI0.LPCB.EC0_.MBNH, FieldUnitObj)
  17.     External (_SB_.PCI0.LPCB.EC0_.MBST, FieldUnitObj)
  18.     External (_SB_.PCI0.LPCB.EC0_.MUT0, MutexObj)
  19.     External (_SB_.PCI0.LPCB.EC0_.SMAD, FieldUnitObj)
  20.     External (_SB_.PCI0.LPCB.EC0_.SMB0, FieldUnitObj)
  21.     External (_SB_.PCI0.LPCB.EC0_.SMCM, FieldUnitObj)
  22.     External (_SB_.PCI0.LPCB.EC0_.SMPR, FieldUnitObj)
  23.     External (_SB_.PCI0.LPCB.EC0_.SMST, FieldUnitObj)
  24.     External (_SB_.PCI0.LPCB.EC0_.SW2S, FieldUnitObj)
  25.     External (DTPY, FieldUnitObj)

  26.     Scope (_SB.PCI0.LPCB.EC0)
  27.     {
  28.         Method (RE1B, 1, NotSerialized)
  29.         {
  30.             OperationRegion (ERAM, EmbeddedControl, Arg0, One)
  31.             Field (ERAM, ByteAcc, NoLock, Preserve)
  32.             {
  33.                 BYTE,   8
  34.             }

  35.             Return (BYTE) /* \_SB_.PCI0.LPCB.EC0_.RE1B.BYTE */
  36.         }

  37.         Method (RECB, 2, Serialized)
  38.         {
  39.             Arg1 >>= 0x03
  40.             Name (TEMP, Buffer (Arg1){})
  41.             Arg1 += Arg0
  42.             Local0 = Zero
  43.             While ((Arg0 < Arg1))
  44.             {
  45.                 TEMP [Local0] = RE1B (Arg0)
  46.                 Arg0++
  47.                 Local0++
  48.             }

  49.             Return (TEMP) /* \_SB_.PCI0.LPCB.EC0_.RECB.TEMP */
  50.         }

  51.         Method (WE1B, 2, NotSerialized)
  52.         {
  53.             OperationRegion (ERAM, EmbeddedControl, Arg0, One)
  54.             Field (ERAM, ByteAcc, NoLock, Preserve)
  55.             {
  56.                 BYTE,   8
  57.             }

  58.             BYTE = Arg1
  59.         }

  60.         Method (WECB, 3, Serialized)
  61.         {
  62.             Arg1 >>= 0x03
  63.             Name (TEMP, Buffer (Arg1){})
  64.             TEMP = Arg2
  65.             Arg1 += Arg0
  66.             Local0 = Zero
  67.             While ((Arg0 < Arg1))
  68.             {
  69.                 WE1B (Arg0, DerefOf (TEMP [Local0]))
  70.                 Arg0++
  71.                 Local0++
  72.             }
  73.         }

  74.         Method (SMRD, 4, NotSerialized)
  75.         {
  76.             If (!ECOK)
  77.             {
  78.                 Return (0xFF)
  79.             }

  80.             If ((Arg0 != 0x07))
  81.             {
  82.                 If ((Arg0 != 0x09))
  83.                 {
  84.                     If ((Arg0 != 0x0B))
  85.                     {
  86.                         If ((Arg0 != 0x47))
  87.                         {
  88.                             If ((Arg0 != 0xC7))
  89.                             {
  90.                                 Return (0x19)
  91.                             }
  92.                         }
  93.                     }
  94.                 }
  95.             }

  96.             Acquire (MUT0, 0xFFFF)
  97.             Local0 = 0x04
  98.             While ((Local0 > One))
  99.             {
  100.                 SMST &= 0x40
  101.                 SMCM = Arg2
  102.                 SMAD = Arg1
  103.                 SMPR = Arg0
  104.                 Local3 = Zero
  105.                 While (!Local1 = (SMST & 0xBF))
  106.                 {
  107.                     Sleep (0x02)
  108.                     Local3++
  109.                     If ((Local3 == 0x32))
  110.                     {
  111.                         SMST &= 0x40
  112.                         SMCM = Arg2
  113.                         SMAD = Arg1
  114.                         SMPR = Arg0
  115.                         Local3 = Zero
  116.                     }
  117.                 }

  118.                 If ((Local1 == 0x80))
  119.                 {
  120.                     Local0 = Zero
  121.                 }
  122.                 Else
  123.                 {
  124.                     Local0--
  125.                 }
  126.             }

  127.             If (Local0)
  128.             {
  129.                 Local0 = (Local1 & 0x1F)
  130.             }
  131.             Else
  132.             {
  133.                 If ((Arg0 == 0x07))
  134.                 {
  135.                     Arg3 = SMB0 /* External reference */
  136.                 }

  137.                 If ((Arg0 == 0x47))
  138.                 {
  139.                     Arg3 = SMB0 /* External reference */
  140.                 }

  141.                 If ((Arg0 == 0xC7))
  142.                 {
  143.                     Arg3 = SMB0 /* External reference */
  144.                 }

  145.                 If ((Arg0 == 0x09))
  146.                 {
  147.                     Arg3 = RECB (0x04, 0x10)
  148.                 }

  149.                 If ((Arg0 == 0x0B))
  150.                 {
  151.                     Local3 = BCNT /* External reference */
  152.                     Local2 = 0x20
  153.                     If ((Local3 > Local2))
  154.                     {
  155.                         Local3 = Local2
  156.                     }

  157.                     If ((Local3 < 0x09))
  158.                     {
  159.                         Local2 = RECB (0x04, 0x40)
  160.                     }
  161.                     ElseIf ((Local3 < 0x11))
  162.                     {
  163.                         Local2 = RECB (0x04, 0x80)
  164.                     }
  165.                     ElseIf ((Local3 < 0x19))
  166.                     {
  167.                         Local2 = RECB (0x04, 0xC0)
  168.                     }
  169.                     Else
  170.                     {
  171.                         Local2 = RECB (0x04, 0x0100)
  172.                     }

  173.                     Local3++
  174.                     Local4 = Buffer (Local3){}
  175.                     Local3--
  176.                     Local5 = Zero
  177.                     Name (OEMS, Buffer (0x46){})
  178.                     ToBuffer (Local2, OEMS) /* \_SB_.PCI0.LPCB.EC0_.SMRD.OEMS */
  179.                     While ((Local3 > Local5))
  180.                     {
  181.                         GBFE (OEMS, Local5, RefOf (Local6))
  182.                         PBFE (Local4, Local5, Local6)
  183.                         Local5++
  184.                     }

  185.                     PBFE (Local4, Local5, Zero)
  186.                     Arg3 = Local4
  187.                 }
  188.             }

  189.             Release (MUT0)
  190.             Return (Local0)
  191.         }

  192.         Method (SMWR, 4, NotSerialized)
  193.         {
  194.             If (!ECOK)
  195.             {
  196.                 Return (0xFF)
  197.             }

  198.             If ((Arg0 != 0x06))
  199.             {
  200.                 If ((Arg0 != 0x08))
  201.                 {
  202.                     If ((Arg0 != 0x0A))
  203.                     {
  204.                         If ((Arg0 != 0x46))
  205.                         {
  206.                             If ((Arg0 != 0xC6))
  207.                             {
  208.                                 Return (0x19)
  209.                             }
  210.                         }
  211.                     }
  212.                 }
  213.             }

  214.             Acquire (MUT0, 0xFFFF)
  215.             Local0 = 0x04
  216.             While ((Local0 > One))
  217.             {
  218.                 If ((Arg0 == 0x06))
  219.                 {
  220.                     SMB0 = Arg3
  221.                 }

  222.                 If ((Arg0 == 0x46))
  223.                 {
  224.                     SMB0 = Arg3
  225.                 }

  226.                 If ((Arg0 == 0xC6))
  227.                 {
  228.                     SMB0 = Arg3
  229.                 }

  230.                 If ((Arg0 == 0x08))
  231.                 {
  232.                     WECB (0x04, 0x10, Arg3)
  233.                 }

  234.                 If ((Arg0 == 0x0A))
  235.                 {
  236.                     WECB (0x04, 0x0100, Arg3)
  237.                 }

  238.                 SMST &= 0x40
  239.                 SMCM = Arg2
  240.                 SMAD = Arg1
  241.                 SMPR = Arg0
  242.                 Local3 = Zero
  243.                 While (!Local1 = (SMST & 0xBF))
  244.                 {
  245.                     Sleep (0x02)
  246.                     Local3++
  247.                     If ((Local3 == 0x32))
  248.                     {
  249.                         SMST &= 0x40
  250.                         SMCM = Arg2
  251.                         SMAD = Arg1
  252.                         SMPR = Arg0
  253.                         Local3 = Zero
  254.                     }
  255.                 }

  256.                 If ((Local1 == 0x80))
  257.                 {
  258.                     Local0 = Zero
  259.                 }
  260.                 Else
  261.                 {
  262.                     Local0--
  263.                 }
  264.             }

  265.             If (Local0)
  266.             {
  267.                 Local0 = (Local1 & 0x1F)
  268.             }

  269.             Release (MUT0)
  270.             Return (Local0)
  271.         }
  272.     }

  273.     Scope (_SB.PCI0.ACEL)
  274.     {
  275.         Method (CLRI, 0, Serialized)
  276.         {
  277.             Local0 = Zero
  278.             If ((^^LPCB.EC0.ECOK == One))
  279.             {
  280.                 If ((^^LPCB.EC0.SW2S == Zero))
  281.                 {
  282.                     If ((^^^BAT0._STA () == 0x1F))
  283.                     {
  284.                         If ((^^LPCB.EC0.RECB (0x85, 0x10) <= 0x96))
  285.                         {
  286.                             Local0 = One
  287.                         }
  288.                     }
  289.                 }
  290.             }

  291.             Return (Local0)
  292.         }
  293.     }

  294.     Scope (_SB.BAT0)
  295.     {
  296.         Method (UPBI, 0, NotSerialized)
  297.         {
  298.             Local5 = ^^PCI0.LPCB.EC0.RECB (0x72, 0x10)
  299.             If ((Local5 && !(Local5 & 0x8000)))
  300.             {
  301.                 Local5 >>= 0x05
  302.                 Local5 <<= 0x05
  303.                 PBIF [One] = Local5
  304.                 PBIF [0x02] = Local5
  305.                 Local2 = (Local5 / 0x64)
  306.                 Local2 += One
  307.                 If (((DTPY >= Zero) || (DTPY <= 0x03)))
  308.                 {
  309.                     If ((^^PCI0.LPCB.EC0.RECB (0x70, 0x10) < 0x0C80))
  310.                     {
  311.                         Local4 = (Local2 * 0x0E)
  312.                         PBIF [0x05] = (Local4 + 0x02)
  313.                         Local4 = (Local2 * 0x09)
  314.                         PBIF [0x06] = (Local4 + 0x02)
  315.                         Local4 = (Local2 * 0x0C)
  316.                     }
  317.                     Else
  318.                     {
  319.                         Local4 = (Local2 * 0x0C)
  320.                         PBIF [0x05] = (Local4 + 0x02)
  321.                         Local4 = (Local2 * 0x07)
  322.                         PBIF [0x06] = (Local4 + 0x02)
  323.                         Local4 = (Local2 * 0x0A)
  324.                     }

  325.                     FABL = (Local4 + 0x02)
  326.                 }
  327.                 Else
  328.                 {
  329.                     Local4 = (Local2 * 0x0C)
  330.                     PBIF [0x05] = (Local4 + 0x02)
  331.                     Local4 = (Local2 * 0x07)
  332.                     PBIF [0x06] = (Local4 + 0x02)
  333.                     Local4 = (Local2 * 0x0A)
  334.                     FABL = (Local4 + 0x02)
  335.                 }
  336.             }

  337.             If (^^PCI0.LPCB.EC0.MBNH)
  338.             {
  339.                 Local0 = ^^PCI0.LPCB.EC0.BVLB /* External reference */
  340.                 Local1 = ^^PCI0.LPCB.EC0.BVHB /* External reference */
  341.                 Local1 <<= 0x08
  342.                 Local0 |= Local1
  343.                 PBIF [0x04] = Local0
  344.                 PBIF [0x09] = "OANI$"
  345.                 PBIF [0x0B] = "NiMH"
  346.             }
  347.             Else
  348.             {
  349.                 Local0 = ^^PCI0.LPCB.EC0.BVLB /* External reference */
  350.                 Local1 = ^^PCI0.LPCB.EC0.BVHB /* External reference */
  351.                 Local1 <<= 0x08
  352.                 Local0 |= Local1
  353.                 PBIF [0x04] = Local0
  354.                 Sleep (0x32)
  355.                 PBIF [0x0B] = "LION"
  356.             }

  357.             PBIF [0x09] = "Primary"
  358.             UPUM ()
  359.             PBIF [Zero] = One
  360.         }

  361.         Method (UPBS, 0, NotSerialized)
  362.         {
  363.             Local0 = ^^PCI0.LPCB.EC0.RECB (0x83, 0x10)
  364.             If ((Local0 & 0x8000))
  365.             {
  366.                 If ((Local0 == 0xFFFF))
  367.                 {
  368.                     PBST [One] = Ones
  369.                 }
  370.                 Else
  371.                 {
  372.                     Local1 = ~Local0
  373.                     Local1++
  374.                     Local3 = (Local1 & 0xFFFF)
  375.                     PBST [One] = Local3
  376.                 }
  377.             }
  378.             Else
  379.             {
  380.                 PBST [One] = Local0
  381.             }

  382.             Local5 = ^^PCI0.LPCB.EC0.RECB (0x85, 0x10)
  383.             If (!(Local5 & 0x8000))
  384.             {
  385.                 Local5 >>= 0x05
  386.                 Local5 <<= 0x05
  387.                 If ((Local5 != DerefOf (PBST [0x02])))
  388.                 {
  389.                     PBST [0x02] = Local5
  390.                 }
  391.             }

  392.             If ((!^^PCI0.LPCB.EC0.SW2S && (^^PCI0.LPCB.EC0.BACR == One)))
  393.             {
  394.                 PBST [0x02] = FABL /* External reference */
  395.             }

  396.             PBST [0x03] = ^^PCI0.LPCB.EC0.RECB (0x87, 0x10)
  397.             PBST [Zero] = ^^PCI0.LPCB.EC0.MBST /* External reference */
  398.         }
  399.     }
复制代码

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-27 09:31:06 IP属地湖北 |显示全部楼层
lovest.fdh 发表于 2021-1-26 20:35
很少有人打静态补丁了吧,据说只用recb wecb方法算偏移值也可以修补,尝试做了ssdt hot一个。
使用需要把d ...

多谢大神,我试试
头像被屏蔽

UID
4418375
帖子
399
PB币
707
贡献
0
技术
9
活跃
408
发表于 2021-1-28 21:33:48 IP属地贵州 来自手机 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-28 22:24:22 IP属地湖北 |显示全部楼层
rilll 发表于 2021-1-28 21:33
请问解决了吗

用了第二个热补丁,然后config中改名了,还是没办法解决,不知道怎么搞了,大神指点下

Rank: 7Rank: 7Rank: 7

UID
4859748
帖子
1925
PB币
4252
贡献
0
技术
0
活跃
1915
发表于 2021-1-29 11:37:27 IP属地日本 |显示全部楼层
你解决了吗,我试着弄了一个,有错误


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

点评

lovest.fdh  这个还需多加学习。Method (REC0B, 2, Serialized)把0***语法上应该是没有错,把各部分代码方法路径修正下,再把调用的添加上即可消除错误  发表于 2021-1-29 13:53 IP属地美国

Rank: 7Rank: 7Rank: 7

UID
1843588
帖子
965
PB币
47
贡献
0
技术
0
活跃
611
发表于 2021-1-29 12:33:09 IP属地广东 |显示全部楼层
几代的本子啊?
头像被屏蔽

UID
4418375
帖子
399
PB币
707
贡献
0
技术
9
活跃
408
发表于 2021-1-29 13:06:13 IP属地贵州 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 7Rank: 7Rank: 7

UID
4199986
帖子
1286
PB币
1861
贡献
0
技术
0
活跃
2749
发表于 2021-1-29 13:29:36 IP属地美国 |显示全部楼层
keeyaom 发表于 2021-1-28 22:24
用了第二个热补丁,然后config中改名了,还是没办法解决,不知道怎么搞了,大神指点下


附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-29 17:19:02 IP属地湖北 |显示全部楼层
rilll 发表于 2021-1-29 13:06
随便添加一个电池驱动

添加重命名:

多谢了,谢谢谢谢,已经解决,谢谢大佬
头像被屏蔽

UID
4418375
帖子
399
PB币
707
贡献
0
技术
9
活跃
408
发表于 2021-1-29 17:27:59 IP属地贵州 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 1

UID
4809429
帖子
121
PB币
21
贡献
0
技术
0
活跃
386
发表于 2021-1-29 17:35:07 IP属地湖北 |显示全部楼层
rilll 发表于 2021-1-29 17:27
用的我给你的ssdt吗?

还没有,刚测试了下17楼大神的,驱动成功,我再试试你的,嘿嘿,多谢撒
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛