- 积分
- 1706
- 最后登录
- 2024-1-27
- 精华
- 0
- 阅读权限
- 50
- 主题
- 26
- UID
- 2172180
- 帖子
- 2616
- PB币
- 2892
- 威望
- 110
- 贡献
- 0
- 技术
- 149
- 活跃
- 681
- UID
- 2172180
- 帖子
- 2616
- PB币
- 2892
- 贡献
- 0
- 技术
- 149
- 活跃
- 681
|
特别鸣谢:心ぜ情べ、落下爱、weizh126 (排名不分先后)
自从升级到OS X 10.8后,“亮度调节快捷键无法正常使用”和”必须用ACPIBacklight.kext才能在唤醒后点亮屏幕“这两个问题一直是我的心头之痛。前些日子看到心ぜ情べ提到刷317版的BIOS并配合重新制作的DSDT可以实现唤醒后自动点亮屏幕,并且不需要ACPIBacklight.kext帮忙,于是试用了他提供的DSDT并刷新了BIOS,结果发现声卡驱动不上而且睡眠只能睡一秒。。。略郁闷。今天翻看DSDTSE的自带的打补丁方法后,忽然发现了华硕EeePC 1000H要通过修改“Method (WAK, 1, NotSerialized)” 这下面的代码来实现唤醒亮度修正。于是我也查询了A43sv的DSDT代码。功夫不负有心人啊,通过比对我的DSDT和心ぜ情べ的DSDT,我终于找到了唤醒后自动点亮屏幕的关键代码:
心ぜ情べ的DSDT代码:
Method (OEMW, 1, NotSerialized)
{
Store (Zero, \_SB.SLPT)
If (\_SB.ACPS)
{
If (LEqual (\_SB.CTBO, One))
{
OBCP (Zero)
}
}
Else
{
If (LEqual (\_SB.CTBO, One))
{
If (\_SB.PCI0.PEGR.GFX0.PRST ())
{
OBCP (One)
}
Else
{
OBCP (Zero)
}
}
}
If (LEqual (Arg0, 0x03))
{
If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6)))
{
STBR ()
}
}
}
我的DSDT代码:
Method (OEMW, 1, NotSerialized)
{
Store (Zero, \_SB.SLPT)
If (\_SB.ACPS)
{
If (LEqual (\_SB.CTBO, One))
{
OBCP (Zero)
}
}
Else
{
If (LEqual (\_SB.CTBO, One))
{
If (\_SB.PCI0.PEGR.GFX0.PRST ())
{
OBCP (One)
}
Else
{
OBCP (Zero)
}
}
}
}
OEMW这个Method是用来控制唤醒后屏幕的亮度设定的(在Method (WAK, 1, NotSerialized)下可以查到),正是由于我的OEMW代码中少了 :
If (LEqual (Arg0, 0x03))
{
If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6)))
{
STBR ()
}
这串代码,才导致唤醒时屏幕亮度无法读取并设定,从而被错误的设定在黑屏状态。修改DSDT后,删掉ACPIBacklight.kext,机器终于能在唤醒时自动点亮屏幕了~~~
这时我又想起了悬而未决的亮度调节小太阳问题,以前用ACPIBacklight时经常报“找不到_BCL参数设定表”,自己手动添加_BCL设定后却依旧无法正常用快捷键调亮度,现在不用ACPIBacklight,能否换驱动调出小太阳呢?~于是我依据落下爱大大曾经给出的方法修改DSDT中的_BCL表如下:
Method (_BCL, 0, NotSerialized)
{
Store (Zero, Local0)
Store (BRTI, Local4)
ShiftLeft (Local4, 0x04, Local4)
While (LLess (Local0, 0x0B))
{
Subtract (0x0B, Local0, Local3)
Subtract (Local3, One, Local3)
Store (Add (Local4, Local3), Local3)
Store (DerefOf (Index (PWBT, Local3)), Local1)
Store (Divide (Multiply (Local1, 0x64), 0xFF, ), Local2)
Store (Local2, Index (BLAC, Local0))
Increment (Local0)
}
Return (Package (0x12)
{
0x18,
0x1E,
0x06,
0x0C,
0x12,
0x18,
0x1E,
0x24,
0x2A,
0x30,
0x36,
0x3C,
0x42,
0x48,
0x4E,
0x54,
0x5A,
0x64
})
}
然后用GenericBrightness.kext配合,终于再次实现亮度调节小太阳了~~~现在可以使用自定义的快捷键(比如F5/F6)直接调节亮度,并且正确显示亮度调节小太阳,看着更加帅气哈~~~当然此法的缺陷就是开机亮度和唤醒亮度无法保存,必须自己手动设定下,不过有快捷键这么方便的东西,大家不会计较这些小缺陷吧~~~
好了,说了这么多,还是分享下驱动給有需要的朋友吧~~~
新版亮度驱动+新版DSDT.zip
(34.26 KB, 下载次数: 351)
P.S:1、我的机器BIOS已经刷到317版,没有测试使用旧版BIOS行不行。。。【此DSDT是karbar大大提供的基于旧版BIOS做的,一直正常使用】
2、亮度调节驱动我没在10.7下测试,理论上是可以用的(会不会出现开机亮度最大这个老问题,留待大家测试~~~我这里是不会的)。
|
-
3
查看全部评分
-
|