- 积分
- 215
- 最后登录
- 2022-5-18
- 精华
- 0
- 阅读权限
- 30
- 主题
- 49
- UID
- 633916
- 帖子
- 538
- PB币
- 621
- 威望
- 0
- 贡献
- 0
- 技术
- 0
- 活跃
- 601
- UID
- 633916
- 帖子
- 538
- PB币
- 621
- 贡献
- 0
- 技术
- 0
- 活跃
- 601
|
发表于 2017-1-2 18:54:52
IP属地广东
|显示全部楼层
本帖最后由 neroxps 于 2017-1-3 16:29 编辑
经坛友 seeyou001 提醒,不改DSDT直接放驱动进去就可以了。
感谢🙏
=================分割线====================
参考了下面几个修改电池电量的帖子,着手修改DSDT电量问题。
https://bbs.pcbeta.com/viewthread-935582-1-1.html
https://bbs.pcbeta.com/viewthread-1521462-1-1.html
后面自己做了个补丁,修改后成功编译,丢了最新的ACPIBatteryManager.kext 在四叶草驱动目录下,重启是有电量图标了,但是显示没有检查到电池。
我的DSDT是从 Ubuntu 提取的,按道理是没有问题。
但是无法找到第二个帖子所说的 EmbeddedControl,后来我看到帖子后面说某些主板的特殊情况,就搜Device (EC)就找到疑似要找的代码
- Device (EC)
- {
- Name (_HID, EisaId ("PNP0C09")) // _HID: Hardware ID
- Name (_UID, One) // _UID: Unique ID
- Method (_STA, 0, NotSerialized) // _STA: Status
- {
- Return (Zero)
- }
- Name (ECNT, Zero)
- Name (DAHA, Buffer (0x03)
- {
- 0x00, 0x00, 0x55
- })
- CreateByteField (DAHA, Zero, DCK0)
- CreateByteField (DAHA, One, DCK1)
- CreateByteField (DAHA, 0x02, DCK2)
- OperationRegion (MMBX, SystemMemory, 0xFE800000, 0x2000)
- Field (MMBX, AnyAcc, Lock, Preserve)
- {
- Offset (0x1000),
- MZ00, 8,
- MZ01, 8,
- MZ02, 8,
- MZ03, 32,
- MZ04, 32,
- MZ05, 32,
- MZ06, 32,
- MZ07, 32,
- MZ08, 32,
- MZ11, 32,
- MZ12, 32,
- Offset (0x104B),
- MZ09, 32,
- MZ10, 32
- }
- Method (ECRB, 1, NotSerialized)
- {
- Store (Zero, Local0)
- If (LEqual (Arg0, Zero))
- {
- Store (MZ00, Local0)
- }
- ElseIf (LEqual (Arg0, One))
- {
- Store (MZ01, Local0)
- }
- ElseIf (LEqual (Arg0, 0x02))
- {
- Store (MZ02, Local0)
- }
- ElseIf (LEqual (Arg0, 0x03))
- {
- Store (MZ03, Local0)
- }
- ElseIf (LEqual (Arg0, 0x04))
- {
- Store (MZ04, Local0)
- }
- ElseIf (LEqual (Arg0, 0x05))
- {
- Store (MZ05, Local0)
- }
- ElseIf (LEqual (Arg0, 0x06))
- {
- Store (MZ06, Local0)
- }
- ElseIf (LEqual (Arg0, 0x07))
- {
- Store (MZ07, Local0)
- }
- ElseIf (LEqual (Arg0, 0x08))
- {
- Store (MZ08, Local0)
- }
- ElseIf (LEqual (Arg0, 0x0B))
- {
- Store (MZ11, Local0)
- }
- ElseIf (LEqual (Arg0, 0x0C))
- {
- Store (MZ12, Local0)
- }
- ElseIf (LEqual (Arg0, 0x09))
- {
- Store (MZ09, Local0)
- }
- ElseIf (LEqual (Arg0, 0x0A))
- {
- Store (MZ10, Local0)
- }
- Return (Local0)
- }
- Method (ECWB, 2, NotSerialized)
- {
- If (LEqual (Arg0, Zero))
- {
- Store (Arg1, MZ00)
- }
- ElseIf (LEqual (Arg0, One))
- {
- Store (Arg1, MZ01)
- }
- ElseIf (LEqual (Arg0, 0x02))
- {
- Store (Arg1, MZ02)
- }
- ElseIf (LEqual (Arg0, 0x03))
- {
- Store (Arg1, MZ03)
- }
- ElseIf (LEqual (Arg0, 0x07))
- {
- Store (Arg1, MZ04)
- }
- ElseIf (LEqual (Arg0, 0x04))
- {
- Store (Arg1, MZ10)
- }
- }
复制代码 我就按照帖子的方法修改好,把电量驱动放到四叶草里。可是重启后有电量图标,但是是显示0%,打上了Fix Mutex with non-zero SyncLevel 补丁依旧。
求解,如果好心大侠帮忙修改好DSDT,请提供dsl来学习下。谢谢!
修改前的全套ACPI:
修改后的全套ACPI:
|
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|