z6will 发表于 2011-10-25 00:46

也就是高位字节乘0xff,然后加低位字节;
把Store (BSDC, Local1)修改为
Multiply (SDC1, 0xFF, Local1)
Add (SDC0, Local1, Local1)

你的意思是把高位左移8位,然后加上低位把?
为何乘以0xff而不是0x100呢?

siriusalive 发表于 2011-10-25 01:35

我的电池信息不是在BAT0下。。。是在BAT1下。。。也没有楼主说的定义啊- -|                Device (BAT1)
                {
                  Name (_HID, EisaId ("PNP0C0A"))
                  Name (_UID, One)
                  Name (_PCL, Package (0x01)
                  {
                        _SB
                  })
                  Method (_STA, 0, NotSerialized)
                  {
                        If (LAnd (ECOK (), LEqual (ECDY, Zero)))
                        {
                            If (^^EC0.BAL0)
                            {
                              Sleep (0x14)
                              Return (0x1F)
                            }
                            Else
                            {
                              Sleep (0x14)
                              Return (0x0F)
                            }
                        }
                        Else
                        {
                            Sleep (0x14)
                            Return (0x1F)
                        }
                  }
                  Method (_BIF, 0, NotSerialized)
                  {
                        Name (STAT, Package (0x0D)
                        {
                            One,
                            0x0FA0,
                            0x0FA0,
                            One,
                            0x2B5C,
                            0x01A4,
                            0x9C,
                            0x0108,
                            0x0EC4,
                            "PABAS024",
                            "3658Q",
                            "LION",
                            "COMPAL"
                        })
                        If (ECOK ())
                        {
                            Store (^^EC0.BDN0, Local0)
                            If (LEqual (Local0, 0x02))
                            {
                              Store ("PA3457U ", Index (STAT, 0x09))
                            }
                            If (LEqual (Local0, 0x08))
                            {
                              Store ("PA3457U ", Index (STAT, 0x09))
                            }
                            Sleep (0x14)
                            Store (^^EC0.BDC0, BFC1)
                            Sleep (0x14)
                            Store (^^EC0.BMF0, Local1)
                            Sleep (0x14)
                            If (LEqual (Local1, One))
                            {
                              Store ("SANYO ", Index (STAT, 0x0C))
                            }
                            Else
                            {
                              If (LEqual (Local1, 0x02))
                              {
                                    Store ("SONY ", Index (STAT, 0x0C))
                              }
                              Else
                              {
                                    If (LEqual (Local1, 0x03))
                                    {
                                        Store ("LG ", Index (STAT, 0x0C))
                                    }
                                    Else
                                    {
                                        If (LEqual (Local1, 0x04))
                                        {
                                          Store ("PANASONIC ", Index (STAT, 0x0C))
                                        }
                                        Else
                                        {
                                          If (LEqual (Local1, 0x05))
                                          {
                                                Store ("SAMSUNG ", Index (STAT, 0x0C))
                                          }
                                          Else
                                          {
                                                Store ("COMPAL ", Index (STAT, 0x0C))
                                          }
                                        }
                                    }
                              }
                            }
                        }
                        Else
                        {
                            Store ("Li-Ion", Index (STAT, 0x0B))
                        }
                        If (^^EC0.BDC0)
                        {
                            Store (^^EC0.BDC0, Local1)
                            Store (Local1, Index (STAT, One))
                            Store (^^EC0.BFC0, Local2)
                            If (LGreater (Local2, Local1))
                            {
                              Store (Local1, Local2)
                            }
                            Store (Local1, Index (STAT, 0x02))
                        }
                        Return (STAT)
                  }
                  Method (_BST, 0, NotSerialized)
                  {
                        Name (PBST, Package (0x04)
                        {
                            Zero,
                            0xFFFFFFFF,
                            0xFFFFFFFF,
                            0x2B5C
                        })
                        If (LAnd (ECOK (), LEqual (ECDY, Zero)))
                        {
                            Sleep (0x14)
                            Store (^^EC0.BST0, BST1)
                            Sleep (0x14)
                            Store (^^EC0.GAU0, BGU1)
                            Sleep (0x14)
                            Store (^^EC0.BPV0, Local3)
                            Sleep (0x14)
                        }
                        If (BFC1)
                        {
                            Multiply (BGU1, BFC1, Local2)
                            Divide (Local2, 0x64, Local4, Local2)
                        }
                        Else
                        {
                            Multiply (BGU1, 0x28, Local2)
                        }
                        If (LGreater (^^EC0.BAC0, 0xFB00))
                        {
                            Store (0xFAFF, Local5)
                        }
                        Else
                        {
                            Store (^^EC0.BAC0, Local5)
                        }
                        And (Local5, 0x8000, Local6)
                        If (LEqual (Local6, 0x8000))
                        {
                            Not (Local5, Local5)
                            And (Local5, 0xFFFF, Local5)
                        }
                        Store (BST1, Index (PBST, Zero))
                        Store (Local5, Index (PBST, One))
                        Store (Local2, Index (PBST, 0x02))
                        Store (Local3, Index (PBST, 0x03))
                        If (LGreater (ECDY, Zero))
                        {
                            Decrement (ECDY)
                            If (LEqual (ECDY, Zero))
                            {
                              Notify (BAT1, 0x80)
                              If (LEqual (OSYS, 0x07D6))
                              {
                                    Store (One, ^^EC0.WINV)
                              }
                              Else
                              {
                                    Store (Zero, ^^EC0.WINV)
                              }
                            }
                        }
                        Return (PBST)
                  }
                }

VIVXIX 发表于 2011-10-25 02:14

{:9_353:}搞定

mingquan84 发表于 2011-10-25 08:12

请问能否把您的IORegistryExplorer上传一个呢?我的也是3820tg的,对比了一下我们两个的DSDT,想更加完美一下。另外请问你的蓝牙能够使用吗?

zenglg1977 发表于 2011-10-25 08:33

z6will 发表于 2011-10-25 00:46 static/image/common/back.gif
你的意思是把高位左移8位,然后加上低位把?
为何乘以0xff而不是0x100呢?

应该乘以0x100,多谢

zenglg1977 发表于 2011-10-25 08:37

siriusalive 发表于 2011-10-25 01:35 static/image/common/back.gif
我的电池信息不是在BAT0下。。。是在BAT1下。。。也没有楼主说的定义啊- -|

看看BDC0或者BFC0是否是16位的?很大可能是。每个机器的DSDT是不一样的,命名方式也是不一样的,因此只能参考,不能照搬

zenglg1977 发表于 2011-10-25 08:38

mingquan84 发表于 2011-10-25 08:12 static/image/common/back.gif
请问能否把您的IORegistryExplorer上传一个呢?我的也是3820tg的,对比了一下我们两个的DSDT,想更加完美一 ...

不能,我的现在蓝牙不能用,不能睡眠,显卡6550M驱动需要EDID覆盖。

harrysh 发表于 2011-10-25 08:38

谢谢,我来试试看!

zenglg1977 发表于 2011-10-25 08:39

z6will 发表于 2011-10-24 23:54 static/image/common/back.gif
能分享source么?

可以,但现在我还在修改,稳定的话就公开

gatwin 发表于 2011-10-25 08:41

能否帮我修改一下。没看懂。

小小虫。 发表于 2011-10-25 08:44

楼主绝对技术派的啊,顶了,回头测试反馈

mingquan84 发表于 2011-10-25 08:48

zenglg1977 发表于 2011-10-25 08:38 static/image/common/back.gif
不能,我的现在蓝牙不能用,不能睡眠,显卡6550M驱动需要EDID覆盖。

能否把你的IORegistryExplorer上传来,对比一下。我看了你的DSDT,没明白帖子里面修改的是哪些地方。

zenglg1977 发表于 2011-10-25 08:51

mingquan84 发表于 2011-10-25 08:48 static/image/common/back.gif
能否把你的IORegistryExplorer上传来,对比一下。我看了你的DSDT,没明白帖子里面修改的是哪些地方。

你比较一下你的DSDT和我的DSDT,然后查找我帖子中的代码,就可以定位的。我现在没有带笔记本,等晚上传给你

williamhzp 发表于 2011-10-25 08:55

很好,用上楼主发的KEXT ,不用修改DSDT 就可以直接显示 电池信息了, 哦也{:5_262:}

mingquan84 发表于 2011-10-25 08:56

zenglg1977 发表于 2011-10-25 08:51 static/image/common/back.gif
你比较一下你的DSDT和我的DSDT,然后查找我帖子中的代码,就可以定位的。我现在没有带笔记本,等晚上传给 ...

我的显卡是直驱的,DSDT中没有加入代码,你可以尝试一下。

fbi527 发表于 2011-10-25 09:06

thx!!!!!!!!!!!!!

daxiawj 发表于 2011-10-25 09:12

非常不错啊
支持学习一下

Ace懂懂 发表于 2011-10-25 09:50

楼主能帮忙看下么= =
Y450直接找不到所描述语句啊。。
麻烦了啊

不修改dsdt的时候电池是x号= =

Ace懂懂 发表于 2011-10-25 09:54

而且很奇怪的是蓝牙也变成了不可用= =

z6will 发表于 2011-10-25 09:57

zenglg1977 发表于 2011-10-25 08:39 static/image/common/back.gif
可以,但现在我还在修改,稳定的话就公开

赞楼主!
不知道楼主有没有关注过IM上hp的关于acpibattery的帖子,那个强人解决了hp笔记本在lion下的电池驱动,而且把acpibattery改名成smartbattery,这样做的话,就可以使用mac下的原生的电池监测软件,而不必用修改过的istat pro
页: 1 [2] 3 4 5 6 7 8 9 10 11
查看完整版本: Lion下的新版AppleACPIBatteryManager/AppleSmartBatteryManager