比较完美的亮度驱动 ACPI Backlight Driver (更新: V1.2)
本帖最后由 tmacyunn 于 2011-10-22 20:17 编辑原址:http://www.insanelymac.com/forum/index.php?showtopic=268219&st=0
更新:
New version 1.1:
Added : look at power supply status at start up
Code correction : more checks on pointers and function return
适用类型:此驱动适用于显示器亮度由ACPI控制的笔记本,在dsdt有以下的控制方法,如:_DOS _BCL _BCM _BQC
我的此部分代码是在\_SB.PCI0.PEGP.VGA.LCD下面,如:/* 切勿直接拷贝粘贴此部分代码,用自己的dsdt里面的才可以。*/
Method (_DOS, 1, NotSerialized)
{
Store (And (Arg0, 0x03), SWIT)
}
Method (_BCL, 0, NotSerialized)
{
Return (Package (0x0D)
{
0x46,
0x28,
Zero,
0x0A,
0x14,
0x1E,
0x28,
0x32,
0x3C,
0x46,
0x50,
0x5A,
0x64
})
}
Method (_BCM, 1, NotSerialized)
{
Divide (Arg0, 0x0A, Local0, Local1)
Store (Local1, ^^^^LPCB.EC.BRTS)
}
Method (_BQC, 0, NotSerialized)
{
Multiply (^^^^LPCB.EC.BRTS, 0x0A, Local0)
Return (Local0)
}优点:
1,可以保存亮度值,重启后不会自动最大亮度值。
2,在不使用电脑或者卸下电源时会开启Auto dim,即时显示器自动变暗。
3,可以在SL(之前版本没测试如果没有升级的可以试试) 10.6.7 10.6.8 and Lion 10.7.0 10.7.1下正常使用。
安装要求及方法:
1,确保你的电脑加载了AppleBacklightDisplay.kext。(可以用命令或者kext wizard 查看)
2,在dsdt中的显卡部分加入如下代码(如果已经有_DSM的可以直接复制”Store (Package ()“下的部分代码):
Method (_DSM, 4, NotSerialized)
{
Store (Package ()
{
"AAPL,HasPanel",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,Haslid",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"AAPL,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,backlight-control",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,AAPL,boot-display",
Buffer (0x04)
{
0x01, 0x00, 0x00, 0x00
},
"@0,built-in",
Buffer ()
{
One
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
3,在\_SB scope下面加入PNLF Device,如:Scope (\_SB)
{
//省去
Device (PNLF)
{
Name (_HID, EisaId ("APP0002"))
Name (_CID, "backlight")
Name (_UID, 0x0A)
Name (_STA, 0x0B)
}
//省去
}4,安装附件的kext,用kext wizard 或其他的工具。
最后如果顺利的话在内核日志会看到以下日志:ACPIBacklightPanel: Found Backlight Device: LCDD
ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.IXVE.IGPU
ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.IXVE.IGPU.LCDD
ACPIBacklightPanel: Version 1.0如果你没看到,那么修改你的dsdt下的显卡代码。
送上附件 :
kext:
源代码:
一点发现:
关于亮度值的保存问题,我的亮度值有10档,如果我在滑块那里选择第8档或低于8档的,重启后滑块的位置没有变化,亮度值是一样的。但是如果我用滑块设置的值大于了8,然后重启。滑块会自动滚到最大值,但是真实的亮度值是没有变的。我的机型设置了macbook3,1,在查看macbook3,1的IO发现它只有8个档亮度,这也可以解释了为什么设置超过8档那个值会变到最大,所以大家在使用的,注意下机型的差异。驱动本身没问题。
台式机能用不? 没戏,一直都是appledisplay{:9_382:} masterfoxzone 发表于 2011-10-5 13:47 static/image/common/back.gif
台式机能用不?
当然不能用了
你见过哪台台式机可以用ACPI调整显示屏亮度?
或者说你在Windows下都不能通过系统来调整显示屏亮度,Mac下就更不要指望了 TOXOMO 发表于 2011-10-5 13:50 static/image/common/back.gif
没戏,一直都是appledisplay
你有AppleDisplay{:9_368:} oroge 发表于 2011-10-5 13:52 static/image/common/back.gif
你有AppleDisplay
appledisplay人人都有吧
缼的是applebacklightdisplay{:9_380:} 在新的DSDT上試試!謝謝了, 本帖最后由 oroge 于 2011-10-5 14:01 编辑
TOXOMO 发表于 2011-10-5 13:54 static/image/common/back.gif
appledisplay人人都有吧
缼的是applebacklightdisplay
.....
我以为你说的是Apple显示屏{:7_432:}打住打住,在这里歪楼太不给作者面子了{:9_356:}
楼主,我没有applebacklightdisplay这个驱动啊 siriusalive 发表于 2011-10-5 14:11 static/image/common/back.gif
楼主,我没有applebacklightdisplay这个驱动啊
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklightdisplay{:9_382:} TOXOMO 发表于 2011-10-5 14:15 static/image/common/back.gif
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklight ...
悲剧啊,是appledisplay是不是就没戏了呢 - -
TOXOMO 发表于 2011-10-5 14:15 static/image/common/back.gif
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklight ...
查看那个kext加载与否可以用这个命令查看:kextstat | grep Backlight有返回值表明加载。 N卡应该不太容易悲剧吧
在dsdt中放入楼主的第二段代码,这个的作用就是加载applebacklightdisplay的{:9_380:} tmacyunn 发表于 2011-10-5 14:24 static/image/common/back.gif
查看那个kext加载与否可以用这个命令查看:有返回值表明加载。
我的没有返回值。。。要肿么办呢? nice 3x{:5_284:} siriusalive 发表于 2011-10-5 14:26 static/image/common/back.gif
我的没有返回值。。。要肿么办呢?
你可以先试试把代码和kext都装上,看看。我发现有时候不加载那个kext也是可以的。 謝謝但是看不懂 tmacyunn 发表于 2011-10-5 14:35 static/image/common/back.gif
你可以先试试把代码和kext都装上,看看。我发现有时候不加载那个kext也是可以的。
我将楼主提供的代码加入了dsdt中,装了驱动到S/L/E,还是不能实现电池屏幕变暗。
有个问题请教楼主,\_SB.PCI0.PEGP.VGA.LCD下的控制方法是不是只要楼主提供的以前的都删掉呢
比如我在\_SB.PCI0.PEGP.VGA.LCD下面原来 没有_DOS 有_BCL _BCM _BQC
原来 还有_ADR _DCS _DGS _DSS,这些需不需要删除呢?这是我改过之后的,不知道对不对,楼主有时间的话能帮看下嘛?
内核日志已经有楼主提到的那段文字了
本帖最后由 xiaobangdelei 于 2011-10-5 16:30 编辑
看来和以前那个亮度调节是不同的,以前可以调亮度的也需要重新修改dsdt!