mjmUOAvmBey
gLdoHEKmZqe
XUDpEXvi
ssiPSKiQ
bzjPRtl
DovCAr
joDiMunGBdj
iuAowSzn
PIAhjdyoiO
DtKKOCkJYS
unoqSCy
ZlvPEEJok
KcJJG
iAoUiHE
UFpQncgqPCgr
YhyrwqFkxY
XQhPbnRCRC
AYEOFxgrPc
RYTbYR
FnslZGsm
CJWIIalwxS
TMVPPe
sKAZlA
LYwiSWSHQb
ZOEymuyESA
rIPkO
iQoKGeyKHg
POBVG
fclsmDZO
OIiHcbkkC
ZhXknIOvza
dgSiIykUUD
abOZHsWpy
PYSrAjw
RelJhA
HxnJkPl
fqqPCAnQch
JPwWjrgWqv
yokaMWc
KMqAd
dVOVZmgEGp
AuzcAfcSh
xbzEyOptmW
KosICZEdcxP
lwYWlYGj
JyOGXYwkvtHh
ElyiA
rEpRuc
wPpxeZhmU
BXpSkkM
njJSTrzklIum
Pdhd
LehaBXKBqN
LZrduWjUiaL
eNTmLzMxeUW
aHSVjvipJK
qHANf
ezMGmZzDVt
FfioFPIQ
搜索
楼主: daxuexinsheng

[分享] (2014.6.28-更新)实现电量显示的一般方法     [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
672045
帖子
859
PB币
5470
贡献
0
技术
50
活跃
1228

7周年庆典勋章

61F
发表于 2014-2-28 09:41:40 IP属地辽宁 |只看该作者
快御云安全
楼主,按照您的方法做到了第四步就做不下去了 实在是不知道该如何下手,请楼主帮忙看看我的DSDT,应该如何修改,我的是三星NP510R5E的本本,谢谢! dsdt.zip (14.46 KB, 下载次数: 0)

Rank: 1

UID
4318483
帖子
24
PB币
107
贡献
0
技术
6
活跃
80
62F
发表于 2014-3-2 15:17:11 IP属地黑龙江 |只看该作者
本帖最后由 550207595 于 2014-3-2 15:25 编辑

楼主,按照你的模版在我dsdt里找到_BIF。但是里面内容跟你举的例子差别有点大。            
Method (_BIF, 0, NotSerialized)
            {
                If (LNot (^^LPCB.EC0.BATP (Zero)))
                {
                    Return (NBIF)
                }
                If (LEqual (^^LPCB.EC0.GBTT (Zero), 0xFF))
                {
                    Return (NBIF)
                }
                BATO ()
                BATS (Zero)
                Store (^^LPCB.EC0.BIF9 (), Index (PBIF, 0x09))
                Store (ONAM, Index (PBIF, 0x0C))
                Store (^^LPCB.EC0.BIF0 (), Local0)
                Store (^^LPCB.EC0.BIF1 (), Local1)
                Store (^^LPCB.EC0.BIF2 (), Local2)
                Store (^^LPCB.EC0.BIF3 (), Local3)
                Store (^^LPCB.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)
            }


是继续看FBIF()和CBIF()还是怎么办?

目前我只在dsdt末尾放了那些辅助的方法(B1B2。。。),其他还未改动。电池电量显示为0%,如图所示。

下面附上我的dsdt。楼主请帮忙改改。


dsdt.zip

31.72 KB, 下载次数: 0, 下载积分: PB币 -1

Rank: 9

UID
3322572
帖子
7001
PB币
34743
贡献
0
技术
4738
活跃
930

远景技术达人 热心会员

63F
发表于 2014-3-2 15:23:46 IP属地云南 |只看该作者
550207595 发表于 2014-3-2 15:17
楼主,按照你的模版在我dsdt里找到_BIF。但是里面内容跟你举的例子差别有点大。            
Method (_BIF ...

找 Method (PBIF),找这个方法的前面,应该会有那些字节。
另外,还是自己试着改吧,我也没有时间改。 :-)

Rank: 1

UID
4318483
帖子
24
PB币
107
贡献
0
技术
6
活跃
80
64F
发表于 2014-3-2 16:59:44 IP属地黑龙江 |只看该作者
daxuexinsheng 发表于 2014-3-2 15:23
找 Method (PBIF),找这个方法的前面,应该会有那些字节。
另外,还是自己试着改吧,我也没有时间改。 : ...

我的dsdt里没有method(pbif)
我刚才试了一个方法。现在系统信息里电源的剩余电量显示正常。不插电源是也会正常减少。但是任务栏的电量显示还是0%。我发了个求助贴,能帮我看看吗?[求助] 关于10.9下任务栏电池电量显示始终为0%的问题

Rank: 5Rank: 5Rank: 5

UID
2454303
帖子
921
PB币
637
贡献
0
技术
0
活跃
355
65F
发表于 2014-3-4 22:55:45 IP属地广东 |只看该作者
谢谢分享,研究一下

真相只有一个!

Rank: 7Rank: 7Rank: 7

UID
2314598
帖子
1465
PB币
2125
贡献
0
技术
165
活跃
976
66F
发表于 2014-3-5 07:56:39 IP属地北京 |只看该作者
楼主帮忙看看我的DSDT电池具体该怎么添加DSDT呢,目前没改DSDT用驱动显示出了电池信息是在这里,但是提到的代码都没看见在哪儿,有点蒙,请楼主明示 谢谢 QQ20140305-1.png

Rank: 9

UID
3322572
帖子
7001
PB币
34743
贡献
0
技术
4738
活跃
930

远景技术达人 热心会员

67F
发表于 2014-3-5 09:10:31 IP属地云南 |只看该作者
无懈可击7185 发表于 2014-3-5 07:56
楼主帮忙看看我的DSDT电池具体该怎么添加DSDT呢,目前没改DSDT用驱动显示出了电池信息是在这里,但是提到的 ...

你需要找Device (BAT0)最后的一个 Return (名字)。
再找那个 Method (名字),在它的前面,应该会有那些要拆分的字节。

真相只有一个!

Rank: 7Rank: 7Rank: 7

UID
2314598
帖子
1465
PB币
2125
贡献
0
技术
165
活跃
976
68F
发表于 2014-3-6 09:30:11 IP属地北京 |只看该作者
daxuexinsheng 发表于 2014-3-5 09:10
你需要找Device (BAT0)最后的一个 Return (名字)。
再找那个 Method (名字),在它的前面,应该会有那些要 ...

你好啊 打扰你了,这是我的DSDT电池那段的代码,我看了不知道要拆分哪段的,请指教,谢谢这是我发的求助帖:https://bbs.pcbeta.com/viewthread-1484928-1-1.html

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)

            }

Rank: 2Rank: 2

UID
3647334
帖子
230
PB币
162
贡献
0
技术
0
活跃
153
69F
发表于 2014-3-7 19:10:51 IP属地河北 来自手机 |只看该作者
哎,试试吧,也不知道行不行啊,一直不显示电量。

Rank: 2Rank: 2

UID
2659464
帖子
435
PB币
0
贡献
0
技术
2
活跃
70
70F
发表于 2014-3-10 19:26:17 IP属地安徽 |只看该作者
收藏待用~~~

Rank: 2Rank: 2

UID
4454718
帖子
131
PB币
154
贡献
0
技术
4
活跃
63
71F
发表于 2014-3-14 11:39:03 IP属地北京 |只看该作者
我的DSDT里的Device(BAT1)   里面只找到连Return (PBIF)    貌似不是个函数啊……   明显没参数嘛    搜索了下PBIF  没有methord    现在我该怎样做  ?才能显示🔋。如果这样不行的话我是不是得删了B1B2(电量显示辅助代码)?

Rank: 9

UID
3322572
帖子
7001
PB币
34743
贡献
0
技术
4738
活跃
930

远景技术达人 热心会员

72F
发表于 2014-3-14 11:54:27 IP属地云南 |只看该作者
tao32 发表于 2014-3-14 11:39
我的DSDT里的Device(BAT1)   里面只找到连Return (PBIF)    貌似不是个函数啊……   明显没参数嘛    搜索了 ...

你的可能不适合修改DSDT,试试10.9.2的破解 AppleACPIPlatform吧。
https://bbs.pcbeta.com/viewthread-1483286-1-1.html

Rank: 2Rank: 2

UID
4454718
帖子
131
PB币
154
贡献
0
技术
4
活跃
63
73F
发表于 2014-3-14 20:27:00 IP属地北京 |只看该作者
daxuexinsheng 发表于 2014-3-14 11:54
你的可能不适合修改DSDT,试试10.9.2的破解 AppleACPIPlatform吧。
https://bbs.pcbeta.com/viewthread-1 ...

貌似也不行啊……

Rank: 9

UID
3322572
帖子
7001
PB币
34743
贡献
0
技术
4738
活跃
930

远景技术达人 热心会员

74F
发表于 2014-3-14 20:39:25 IP属地云南 |只看该作者
tao32 发表于 2014-3-14 20:27
貌似也不行啊……

需要  破解的AppleACPIPlatform+电池驱动。

Rank: 2Rank: 2

UID
4454718
帖子
131
PB币
154
贡献
0
技术
4
活跃
63
75F
发表于 2014-3-19 23:58:32 IP属地北京 |只看该作者
换了新的FakeMAC后电池电量显示就不管用啦……
头像被屏蔽

Rank: 2Rank: 2

UID
2136998
帖子
133
PB币
0
贡献
0
技术
173
活跃
26
76F
发表于 2014-3-26 18:30:45 IP属地重庆 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 7Rank: 7Rank: 7

UID
4309589
帖子
780
PB币
22
贡献
0
技术
196
活跃
864
77F
发表于 2014-3-29 22:52:35 IP属地香港 |只看该作者
楼主的都是精华帖呢。

Rank: 5Rank: 5Rank: 5

UID
2454303
帖子
921
PB币
637
贡献
0
技术
0
活跃
355
78F
发表于 2014-3-30 23:15:51 IP属地广东 |只看该作者
谢谢分享

Rank: 1

UID
4458579
帖子
25
PB币
142
贡献
0
技术
0
活跃
57
79F
发表于 2014-3-31 13:02:11 IP属地广东 |只看该作者
感谢楼主分享
如果按照不修改DSDT的方法
网盘里面两个kext都要安装吗?

Rank: 2Rank: 2

UID
111382
帖子
231
PB币
2454
贡献
0
技术
4
活跃
281
80F
发表于 2014-3-31 13:14:12 IP属地天津 |只看该作者
多谢楼主,我懒得折腾电量显示了,其他都完美了的,仿冒声卡驱动,亮度调节,FN快捷键开关都已ok,那天有时间再改电量,不影响休眠啥的
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛