Win10论坛

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

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

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

搜索
楼主: VIVXIX

[教程] (重新修正)<Lion>dsdt之BAT修改 for AppleACPIBatteryManager.kext     [复制链接]

Rank: 2Rank: 2

UID
2189968
帖子
200
PB币
3
贡献
0
技术
18
活跃
55

8周年庆典勋章

发表于 2012-11-12 12:35:13
一小舟 发表于 2011-10-25 08:29
谢谢楼主,学习了,还得再研究研究。

谢谢楼主,学习了,还得再研

Rank: 2Rank: 2

UID
2189968
帖子
200
PB币
3
贡献
0
技术
18
活跃
55

8周年庆典勋章

发表于 2012-11-12 20:44:24
马上进行修改测试

Rank: 7Rank: 7Rank: 7

UID
1496643
帖子
313
PB币
195
贡献
0
技术
24
活跃
306
发表于 2012-11-13 23:39:26
请教楼主版主:

                   Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0),
                        SBCH,   32
……
                        Store (SBCH, BTYP)

以及

                   Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0),
                        SBMN,   128
                    }
                    Field (ECOR, ByteAcc, NoLock, Preserve)
                    {
                        Offset (0xA0),
                        SBDN,   128
                    }

……
                  Store (SBMN, Index (Arg1, 0x0C))
                  Store (SBDN, Index (Arg1, 0x09))



如何修改呀!请为32位和128位举个例子好吗?我DSDT里恰巧有这两个变量。也请其他知道的朋友不吝赐教!非常感谢!

另,用1.4以上的AppleACPIPlatform.kext后睡眠唤醒比较缓慢,FN唤醒后,需要再两次按键盘。不然黑屏状态重新进入睡眠。好容易醒来了结果USB外接口全部失效,USB鼠标重启前无法使用。不知大家是否有好办法呀!

Rank: 2Rank: 2

UID
1521882
帖子
210
PB币
148
贡献
0
技术
0
活跃
8
发表于 2012-11-20 20:04:05
希望能改好!!!!!

Rank: 2Rank: 2

UID
1521882
帖子
210
PB币
148
贡献
0
技术
0
活跃
8
发表于 2012-11-20 20:06:34
我再次修改一些漏掉的,这次我所有修改的地方都有注释。

Rank: 2Rank: 2

UID
2614568
帖子
332
PB币
0
贡献
0
技术
0
活跃
86
发表于 2012-11-25 17:50:42
谢谢分享……

Rank: 2Rank: 2

UID
2614568
帖子
332
PB币
0
贡献
0
技术
0
活跃
86
发表于 2012-11-25 17:51:19
谢谢分享……

Rank: 1

UID
2630463
帖子
14
PB币
1
贡献
0
技术
0
活跃
0
发表于 2012-11-25 18:01:58
很有用,谢谢

Rank: 1

UID
3264305
帖子
22
PB币
44
贡献
0
技术
0
活跃
0
发表于 2012-12-6 19:46:22
楼主好啊,我在我点dsdt中未找到你提到点这些变量,请问我的该怎么改?

Rank: 2Rank: 2

UID
1521882
帖子
210
PB币
148
贡献
0
技术
0
活跃
8
发表于 2012-12-7 18:30:18
很有用,谢谢

Rank: 2Rank: 2

UID
3162278
帖子
113
PB币
570
贡献
0
技术
6
活跃
15
发表于 2012-12-10 23:58:27
我和楼主的机型差不多装的是10.8.2,翻了好多你的帖子,现在已解决显卡 声卡 键盘 电池的驱动,感谢楼主的无私贡献,让我少走了许多弯路 ````` 可惜我的无线是5100 基本没救了

Rank: 2Rank: 2

UID
2951741
帖子
121
PB币
454
贡献
0
技术
10
活跃
40
发表于 2012-12-22 16:44:39
楼主,帮忙看看,貌似我的dsdt中全部是“Store (^^SBRG.EC0.BSTS (), Local0)”这种类型的,函数嵌套函数,这种怎么改?
    Scope (_SB.PCI0)
    {
        Device (BAT0)
        {
            Name (_HID, EisaId ("PNP0C0A"))
            Name (_UID, Zero)
            Name (_PCL, Package (0x01)
            {
                PCI0
            })
            Method (_STA, 0, NotSerialized)
            {
                If (^^SBRG.EC0.BATP (Zero))
                {
                    Return (0x1F)
                }
                Else
                {
                    Return (0x0F)
                }
            }
            Name (LOW2, 0x012C)
            Name (DVOT, 0x0E)
            Name (PUNT, One)
            Name (LFCC, 0x1770)
            Name (NBIF, Package (0x0D)
            {
                Zero,
                Ones,
                Ones,
                One,
                Ones,
                Ones,
                Ones,
                Ones,
                Ones,
                "",
                "",
                "",
                ""
            })
            Name (PBIF, Package (0x0D)
            {
                One,
                0x1770,
                0x1770,
                One,
                0x39D0,
                0x0258,
                0x012C,
                0x3C,
                0x3C,
                "M3N",
                " ",
                "LIon",
                "ASUSTek"
            })
            Name (PBST, Package (0x04)
            {
                Zero,
                Ones,
                Ones,
                Ones
            })
            Method (FBIF, 5, NotSerialized)
            {
                Store (Arg0, PUNT)
                Store (Arg1, Local1)
                Store (Arg2, Local2)
                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local1, 0x0A, Local1)
                    Multiply (Local2, 0x0A, Local2)
                }
                Store (Arg0, Index (PBIF, Zero))
                Store (Local1, Index (PBIF, One))
                Store (Local2, Index (PBIF, 0x02))
                Store (Local2, LFCC)
                Store (Arg3, Index (PBIF, 0x03))
                Store (Arg4, Index (PBIF, 0x04))
                Divide (Local1, 0x0A, Local3, Local5)
                Store (Local5, Index (PBIF, 0x05))
                Divide (Local1, 0x64, Local3, Local6)
                Store (Local6, Index (PBIF, 0x06))
                Store (Local6, LOW2)
                Divide (Local1, 0x64, Local3, Local7)
                Store (Local7, Index (PBIF, 0x07))
                Store (Local7, Index (PBIF, 0x08))
            }
            Method (CBIF, 0, NotSerialized)
            {
                If (PUNT)
                {
                    Store (DerefOf (Index (PBIF, 0x04)), Local0)
                    Add (Local0, 0x01F4, Local0)
                    Divide (Local0, 0x03E8, Local1, DVOT)
                    Store (Zero, Index (PBIF, Zero))
                    Multiply (DerefOf (Index (PBIF, One)), DVOT, Index (PBIF, One
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x02)), DVOT, Index (PBIF, 0x02
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x05)), DVOT, Index (PBIF, 0x05
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x06)), DVOT, Index (PBIF, 0x06
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x07)), DVOT, Index (PBIF, 0x07
                        ))
                    Multiply (DerefOf (Index (PBIF, 0x08)), DVOT, Index (PBIF, 0x08
                        ))
                }
            }
            Method (_BIF, 0, NotSerialized)
            {
                If (LNot (^^SBRG.EC0.BATP (Zero)))
                {
                    Return (NBIF)
                }
                If (LEqual (^^SBRG.EC0.GBTT (Zero), 0xFF))
                {
                    Return (NBIF)
                }
                BATO ()
                BATS (Zero)
                Store (^^SBRG.EC0.BIF9 (), Index (PBIF, 0x09))
                Store (ONAM, Index (PBIF, 0x0C))
                Store (^^SBRG.EC0.BIF0 (), Local0)
                Store (^^SBRG.EC0.BIF1 (), Local1)
                Store (^^SBRG.EC0.BIF2 (), Local2)
                Store (^^SBRG.EC0.BIF3 (), Local3)
                Store (^^SBRG.EC0.BIF4 (), Local4)
                If (LNotEqual (Local0, Ones))
                {
                    If (LNotEqual (Local1, Ones))
                    {
                        If (LNotEqual (Local2, Ones))
                        {
                            If (LNotEqual (Local3, Ones))
                            {
                                If (LNotEqual (Local4, Ones))
                                {
                                    FBIF (Local0, Local1, Local2, Local3, Local4)
                                    CBIF ()
                                }
                            }
                        }
                    }
                }
                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local2, 0x0A, Local2)
                }
                Store (Local2, LFCC)
                BATR ()
                Return (PBIF)
            }
            Method (FBST, 4, NotSerialized)
            {
                And (Arg1, 0xFFFF, Local1)
                Store (Zero, Local0)
                If (^^SBRG.EC0.ACAP ())
                {
                    Store (One, Local0)
                }
                If (Local0)
                {
                    If (CHGS (Zero))
                    {
                        Store (0x02, Local0)
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }
                Else
                {
                    Store (One, Local0)
                }
                If (BLLO)
                {
                    ShiftLeft (One, 0x02, Local2)
                    Or (Local0, Local2, Local0)
                }
                If (LLessEqual (^^SBRG.EC0.RRAM (0x03B0), One))
                {
                    ShiftLeft (One, 0x02, Local2)
                    Or (Local0, Local2, Local0)
                }
                If (LGreaterEqual (Local1, 0x8000))
                {
                    Subtract (0xFFFF, Local1, Local1)
                }
                Store (Arg2, Local2)
                If (LEqual (PUNT, Zero))
                {
                    Multiply (Local1, DVOT, Local1)
                    Multiply (Local2, 0x0A, Local2)
                }
                And (Local0, 0x02, Local3)
                If (LNot (Local3))
                {
                    Subtract (LFCC, Local2, Local3)
                    Divide (LFCC, 0xC8, Local4, Local5)
                    If (LLess (Local3, Local5))
                    {
                        Store (LFCC, Local2)
                    }
                }
                Else
                {
                    Divide (LFCC, 0xC8, Local4, Local5)
                    Subtract (LFCC, Local5, Local4)
                    If (LGreater (Local2, Local4))
                    {
                        Store (Local4, Local2)
                    }
                }
                If (LNot (^^SBRG.EC0.ACAP ()))
                {
                    Divide (Local2, MBLF, Local3, Local4)
                    If (LLess (Local1, Local4))
                    {
                        Store (Local4, Local1)
                    }
                }
                Store (Local0, Index (PBST, Zero))
                Store (Local1, Index (PBST, One))
                Store (Local2, Index (PBST, 0x02))
                Store (Arg3, Index (PBST, 0x03))
            }
            Method (CBST, 0, NotSerialized)
            {
                If (PUNT)
                {
                    Multiply (DerefOf (Index (PBST, One)), DVOT, Index (PBST, One
                        ))
                    Multiply (DerefOf (Index (PBST, 0x02)), DVOT, Index (PBST, 0x02
                        ))
                }
            }
            Method (_BST, 0, NotSerialized)
            {
                Store (Zero, Index (PBST, Zero))
                Store (Ones, Index (PBST, One))
                Store (Ones, Index (PBST, 0x02))
                Store (Ones, Index (PBST, 0x03))
                If (LNot (^^SBRG.EC0.BATP (Zero)))
                {
                    Return (PBST)
                }
                If (LEqual (^^SBRG.EC0.GBTT (Zero), 0xFF))
                {
                    Return (PBST)
                }
                If (MES4)
                {
                    Decrement (MES4)
                    Return (PBST)
                }
                BATO ()
                BATS (Zero)
                Store (^^SBRG.EC0.BSTS (), Local0)
                Store (^^SBRG.EC0.BCRT (), Local1)
                Store (^^SBRG.EC0.BRCP (), Local2)
                Store (^^SBRG.EC0.BVOT (), Local3)
                If (LNotEqual (Local0, Ones))
                {
                    If (LNotEqual (Local1, Ones))
                    {
                        If (LNotEqual (Local2, Ones))
                        {
                            If (LNotEqual (Local3, Ones))
                            {
                                FBST (Local0, Local1, Local2, Local3)
                                CBST ()
                            }
                        }
                    }
                }
                BATR ()
                Return (PBST)
            }
        }
    }
附上完整的dsdt,楼主帮我看看 dsdt.dsl.zip (135.94 KB, 下载次数: 0)

Rank: 1

UID
3343893
帖子
58
PB币
75
贡献
0
技术
1
活跃
17
发表于 2012-12-26 17:51:09
天啊,看不懂啊,电源问题都快逼疯我了
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件