- 积分
- 57
- 最后登录
- 2024-4-4
- 精华
- 0
- 阅读权限
- 20
- 主题
- 12
- UID
- 898127
- 帖子
- 143
- PB币
- 279
- 威望
- 0
- 贡献
- 0
- 技术
- 17
- 活跃
- 170
- UID
- 898127
- 帖子
- 143
- PB币
- 279
- 贡献
- 0
- 技术
- 17
- 活跃
- 170
|
沙发
发表于 2015-8-21 09:28:57
IP属地浙江
|只看该作者
分享下修改DSDT显示电量的做法:
参考了这两个帖子:(重新修正)dsdt之BAT修改 for AppleACPIBatteryManager.kext 我那个dsdt电量修改帖子,很难懂?!!!
我的DSDT和教程内的稍有不同,没有Device(EC),有Device (H_EC)。需要在Device (H_EC)下加入B1B2的方法。
看Device(BAT0)下是这样的
- Device (BAT0)
- {
- Name (_HID, EisaId ("PNP0C0A"))
- Name (_UID, One)
- Method (_STA, 0, NotSerialized)
- {
- Store (^^PCI0.LPCB.H_EC.BSTA (One), Local0)
- Return (Local0)
- }
- Method (_BIF, 0, NotSerialized)
- {
- Return (BTIF (Zero))
- }
- Method (_BST, 0, NotSerialized)
- {
- Return (BTST (Zero))
- }
- Name (_PCL, Package (0x01)
- {
- _SB
- })
- }
复制代码
然后看BTIF这个函数,看到类似的代码,
- If (ECRG)
- {
- Store (Arg0, BSEL)
- While (One)
- {
- Store (Arg0, T_0)
- If (LEqual (T_0, Zero))
- {
- Store (BFC0, Local0)
- Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), One))
- Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02))
- Store (BDV0), Index (DerefOf (Index (NBTI, Arg0)), 0x04))
- }
- Else
- {
- If (LEqual (T_0, One))
- {
- Store (BFC1, Local0)
- Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), One))
- Store (Local0, Index (DerefOf (Index (NBTI, Arg0)), 0x02))
- Store (BDV1, Index (DerefOf (Index (NBTI, Arg0)), 0x04))
- }
- }
- Break
- }
复制代码
我便修改BFC0和BDV0,下面的BFC1和BDV1没改。
同样对BTST相关的数据进行了修改。
凡是用到以上数据的地方我都用B1B2(X0,X1)进行了替换。
|
|