gpDDOkv
WDWX
eqTumrERL
HOPlHsmdo
HAFsJ
uMBeS
ngEAFPVbqvI
soQMjUnwYA
LesHkM
zWuXmT
xCWXANWPWqUx
WiznSRhKOvEO
vbbjjkAJqn
vGaKoL
pGFPoIpXTYcR
vJaJHgnojF
OFmF
yntAEjwm
aEjWNdRzp
YSLLciQDN
vSNmmBqh
OlnvpUwpZNy
sSOpjMqsWY
gJMdTqcjVu
mThx
EVqXJIFwa
XyPTYzVA
jvQBcRWWLcP
qETIr
jZYpaZHiMQ
nBApJNEBgSl
nLLRzr
XIUcKEMPiCGm
QXSeBTv
aLmB
aFvAgWuAX
paFxV
kAzVWYktOT
soJAdjmvEmP
qXWHFbTM
DAzqNzW
FurLTavdvf
QagrtJfpV
rbCG
brSxHEIvAU
zzwQxEbOOE
cvCAp
FwOorVrWQaF
HkIuVoCDPN
URsAv
VznNtJiPRaM
Vpkgzmuw
nqwKOFjp
UwvPwFN
TqkvDqFDTuFT
yYggHPHWCFg
TkDnfC
cBZdhvstqvMX
MghKRuv
nmQVC
geReMmifHUIv
HsDEl
lWVpdCDz
搜索
楼主: mybabyson617

[已解决] 求大神指导神舟K590S电池电量的显示方法,该死的Store (Local0, Index (PBIF, One) [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
21F
发表于 2014-2-12 16:31:58 IP属地浙江 |只看该作者
快御云安全
erwygew123 发表于 2014-2-12 16:20
楼主装的10.8.3还是10.9啊

最开始是10.9,现在是10.9.2

Rank: 2Rank: 2

UID
350636
帖子
326
PB币
311
贡献
0
技术
3
活跃
276
22F
发表于 2014-2-13 22:05:23 IP属地广西 |只看该作者
Return (PBIF),楼主应该找的是 (PBIF)

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
23F
发表于 2014-2-14 11:23:51 IP属地浙江 |只看该作者
yojoy 发表于 2014-2-13 22:05
Return (PBIF),楼主应该找的是 (PBIF)

Name (PBIF, Package (0x0D)
                {
                    One,
                    0xFFFFFFFF,
                    0xFFFFFFFF,
                    One,
                    0x39D0,
                    Zero,
                    Zero,
                    0x40,
                    0x40,
                    "BAT",
                    "0001",
                    "LION",
                    "NOTEBOOK"
                })


只能找到这个。

Rank: 2Rank: 2

UID
350636
帖子
326
PB币
311
贡献
0
技术
3
活跃
276
24F
发表于 2014-2-14 11:35:19 IP属地广西 |只看该作者
不解,我的dsdt gbif折分了,可是电量显示不对,还不如用1.3.6版驱动!

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
25F
发表于 2014-2-14 16:27:41 IP属地浙江 |只看该作者
yojoy 发表于 2014-2-14 11:35
不解,我的dsdt gbif折分了,可是电量显示不对,还不如用1.3.6版驱动!

我用1.3.6的可以显示电量,但声卡就没了,也会出现其他的小错误。呜呜。我对这个dsdt相当无解

Rank: 2Rank: 2

UID
350636
帖子
326
PB币
311
贡献
0
技术
3
活跃
276
26F
发表于 2014-2-14 16:50:31 IP属地广东 来自手机 |只看该作者
用fakesmc加入声卡信息,应该可以用了,我的sl510可以。

Rank: 2Rank: 2

UID
4225879
帖子
404
PB币
927
贡献
0
技术
34
活跃
583
27F
发表于 2014-2-15 10:54:58 IP属地广东 |只看该作者
电池非常非常的麻烦,除了自己的,我想没谁会帮你修改的

Rank: 2Rank: 2

UID
1665962
帖子
86
PB币
44
贡献
0
技术
0
活跃
599
28F
发表于 2014-2-15 21:56:08 IP属地江西 |只看该作者
楼主能出个装10.9的教程吗。

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
29F
发表于 2014-2-16 10:26:23 IP属地浙江 |只看该作者
yojoy 发表于 2014-2-14 16:50
用fakesmc加入声卡信息,应该可以用了,我的sl510可以。

试过,没效果。我的电池和AppleACPIPlatform有很大的关系。

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
30F
发表于 2014-2-16 10:27:00 IP属地浙江 |只看该作者
超级小霸王 发表于 2014-2-15 10:54
电池非常非常的麻烦,除了自己的,我想没谁会帮你修改的

我是打算自己修改啊,只是希望知道这个问题的大神指导一下

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
31F
发表于 2014-2-16 10:28:57 IP属地浙江 |只看该作者
erwygew123 发表于 2014-2-15 21:56
楼主能出个装10.9的教程吗。

什么教程?安装教程 置顶帖里有啊。驱动嘛,也是置顶帖里有教程啊。你如果需要啥驱动,我可以贴上来的

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

32F
发表于 2014-2-16 10:38:21 IP属地美国 |只看该作者
原理是一样的啊:
  1. And (BDC0, 0xFFFF, Local0)
  2. Store (Local0, Index (PBIF, One))
复制代码
修改后:
  1. BB2W(^^EC0.SDC0,^^EC0.SDC1) 代替BDC0
复制代码
Local0 那行不需要改,因为只有第一行是进行超过8bit 的读写操作(从EC 中提取BDC0,只保留低16位,并保存到Local0)。也就是说,根本问题出在苹果不允许从EC 直接提取BDC0,因为大于8bit。所以只要把BDC0 分步提取即可。Local0 是多少位无所谓,因为它是dsdt 变量,和EC 无关,苹果没有限制。

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
33F
发表于 2014-2-16 11:28:09 IP属地浙江 |只看该作者
lisai9093 发表于 2014-2-16 10:38
原理是一样的啊:修改后:Local0 那行不需要改,因为只有第一行是进行超过8bit 的读写操作(从EC 中提取BDC ...

谢谢版主指导。And (BDC0, 0xFFFF, Local0) 我纠结的地方在这。查了下and的语法,这句的意思是 把BDC0和0xFFFF按位与,存储在Local0。一直没搞明白按位与是干什么的,也一直没搜到类似我这种情况的,所以一直卡着

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

34F
发表于 2014-2-16 11:41:47 IP属地美国 |只看该作者
mybabyson617 发表于 2014-2-15 20:28
谢谢版主指导。And (BDC0, 0xFFFF, Local0) 我纠结的地方在这。查了下and的语法,这句的意思是 把BDC0和0 ...

And 你可以理解为乘法,乘以1表示保留,乘以0表示舍弃。BDC0 是一个32位数,0xFFFF(或者写作0x0000FFFF)是一个只有低16位为1的数,高16位全部为0。所以And 0xFFFF表示只要低16位,高16位全部舍弃。它和Store 的区别只是多做了一个乘法而已。所以原理并没有不同。

Rank: 2Rank: 2

UID
1665962
帖子
86
PB币
44
贡献
0
技术
0
活跃
599
35F
发表于 2014-2-16 12:24:40 IP属地江西 |只看该作者
mybabyson617 发表于 2014-2-16 10:28
什么教程?安装教程 置顶帖里有啊。驱动嘛,也是置顶帖里有教程啊。你如果需要啥驱动,我可以贴上来的

对,就是相关的驱动文件,原帖的文件在10.9下安装后会电源管理出错启动不了

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
36F
发表于 2014-2-16 14:17:05 IP属地浙江 |只看该作者
erwygew123 发表于 2014-2-16 12:24
对,就是相关的驱动文件,原帖的文件在10.9下安装后会电源管理出错启动不了

不知道你的电脑是啥型号,做了哪些修改,我就先传以下的几个。
AppleACPIBatteryManager.kext(这个我还在弄dsdt,先传,仅供参考)
AppleACPIPlatform.kext
AppleACPIPS2Nub.kext
AppleHDA.kext(声卡)
AppleIntelCPUPowerManagement.kext
AppleIntelCPUPowerManagementClient.kext
ApplePS2Controller.kext
FakeSMC.kext(这个用的是比较新的版本)
RealtekRTL81xx.kext(网卡)

我的是10.9.2的系统,有些驱动比较新,你选择性安装。dsdt目前就是这个帖子中的。我修改的有些地方,建议根据自己的配置,选择性修改。
归档.zip (1.59 MB, 下载次数: 23)

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
37F
发表于 2014-2-16 15:31:35 IP属地浙江 |只看该作者
本帖最后由 mybabyson617 于 2014-2-16 16:38 编辑

lisai9093 版主的耐心解答下,现在能正常显示电池电量了.

先以And (BDC0, 0xFFFF,Local0)为例,说明解决方法

找到BDC0的定义  BDC0,  32,

说明我的是32位的,需要拆分成如下:

  1.         ​//原来的定义要注释掉啊
  2.     ​    ​//BDC0,  32,
  3.                 SDC0,   8,
  4.                 SDC1,   8,
  5.                 SDC2,   8,
  6.                 SDC3,   8,
复制代码




在DTDG函数下方(,即DTDG右大括号下边,不是在DTDG函数内)自定义一个函数

  1. Method (B1B4, 4, NotSerialized)
  2.     {
  3.         Or (ShiftLeft (Arg1, 0x08), Arg0, Local0)
  4.         Or (ShiftLeft (Arg2, 0x10), Local0, Local0)
  5.         Or (ShiftLeft (Arg3, 0x18), Local0, Local0)
  6.         Return (Local0)
  7.     }
复制代码


将And (BDC0, 0xFFFF,Local0)改成这个样子: And (B1B4 (SDC0, SDC1, SDC2, SDC3), 0xFFFF, Local0)

全部改完之后是这个样子的:

  1. Method (UPBI, 0, NotSerialized)
  2.                 {
  3.                     If (BAT0)
  4.                     {
  5.                         And (B1B4 (SDC0, SDC1, SDC2, SDC3), 0xFFFF, Local0)
  6.                         Store (Local0, Index (PBIF, One))
  7.                         And (B1B4 (SFC0, SFC1, SFC2, SFC3), 0xFFFF, Local0)
  8.                         Store (Local0, Index (PBIF, 0x02))
  9.                         And (B1B4 (SDV0, SDV1, SDV2, SDV3), 0xFFFF, Local0)
  10.                         Store (Local0, Index (PBIF, 0x04))
  11.                         And (B1B4 (SCW0, SCW1, SCW2, SCW3), 0xFFFF, Local0)
  12.                         Store (Local0, Index (PBIF, 0x05))
  13.                         And (B1B4 (SCL0, SCL1, SCL2, SCL3), 0xFFFF, Local0)
  14.                         Store (Local0, Index (PBIF, 0x06))
  15.                         Store ("BAT", Index (PBIF, 0x09))
  16.                         Store ("0001", Index (PBIF, 0x0A))
  17.                         Store ("LION", Index (PBIF, 0x0B))
  18.                         Store ("NOTEBOOK", Index (PBIF, 0x0C))
  19.                     }
  20.                     Else
  21.                     {
  22.                         IVBI ()
  23.                     }
  24.                 }
复制代码

  1. Method (UPBS, 0, NotSerialized)
  2.                 {
  3.                     If (BAT0)
  4.                     {
  5.                         Store (Zero, Local0)
  6.                         Store (Zero, Local1)
  7.                         If (ADP)
  8.                         {
  9.                             If (LEqual (And (B1B4 (SST0, SST1, SST2, SST3), 0x02),
  10.                                 0x02))
  11.                             {
  12.                                 Or (Local0, 0x02, Local0)
  13.                                 And (B1B4 (SPR0, SPR1, SPR2, SPR3), 0xFFFF, Local1)
  14.                             }
  15.                         }
  16.                         Else
  17.                         {
  18.                             Or (Local0, One, Local0)
  19.                             And (B1B4 (SPR0, SPR1, SPR2, SPR3), 0xFFFF, Local1)
  20.                         }
  21.                         And (Local1, 0x8000, Local7)
  22.                         If (LEqual (Local7, 0x8000))
  23.                         {
  24.                             Store (0xFFFFFFFF, Local1)
  25.                         }
  26.                         And (B1B4 (SRC0, SRC1, SRC2, SRC3), 0xFFFF, Local2)
  27.                         And (B1B4 (SPV0, SPV1, SPV2, SPV3), 0xFFFF, Local3)
  28.                         Store (Local0, Index (PBST, Zero))
  29.                         Store (Local1, Index (PBST, One))
  30.                         Store (Local2, Index (PBST, 0x02))
  31.                         Store (Local3, Index (PBST, 0x03))
  32.                     }
  33.                     Else
  34.                     {
  35.                         IVBS ()
  36.                     }
  37.                 }
复制代码



编译后还有2个错误,同样的方法,修改下就可以了

屏幕快照 2014-02-16 下午2.40.08.png

屏幕快照 2014-02-16 下午2.40.41.png


电池显示成功后的截图:

屏幕快照 2014-02-16 下午3.03.42.png

屏幕快照 2014-02-16 下午3.15.33.png

屏幕快照 2014-02-16 下午3.04.21.png

屏幕快照 2014-02-16 下午3.05.04.png



1

查看全部评分

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
38F
发表于 2014-2-16 15:43:13 IP属地浙江 |只看该作者
lisai9093 发表于 2014-2-16 11:41
And 你可以理解为乘法,乘以1表示保留,乘以0表示舍弃。BDC0 是一个32位数,0xFFFF(或者写作0x0000FFFF) ...

谢谢版主的解答。我没有权限修改帖子,买了用户组也没权限。烦请版主大大编辑下我的帖子,附上解决方法的楼层

打酱油归来

Rank: 11Rank: 11Rank: 11

UID
984013
帖子
7884
PB币
28167
贡献
0
技术
2147
活跃
1597

活动参与先锋 7周年庆典勋章 8周年庆典勋章

39F
发表于 2014-2-16 16:09:54 IP属地美国 |只看该作者
mybabyson617 发表于 2014-2-16 00:43
谢谢版主的解答。我没有权限修改帖子,买了用户组也没权限。烦请版主大大编辑下我的帖子,附上解决方法的 ...

我直接置顶回复好了。以后你等级高了就好了

Rank: 2Rank: 2

UID
4311252
帖子
368
PB币
965
贡献
0
技术
12
活跃
589
40F
发表于 2014-2-16 16:24:50 IP属地浙江 |只看该作者
lisai9093 发表于 2014-2-16 16:09
我直接置顶回复好了。以后你等级高了就好了

我特意回帖写了解决方法的,还没审核啊?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛