本帖最后由 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:
ACPIBacklight.kext.zip
(21.75 KB, 下载次数: 2979)
源代码:
ACPIBacklight.kext_src.zip
(27.98 KB, 下载次数: 306)
一点发现:
关于亮度值的保存问题,我的亮度值有10档,如果我在滑块那里选择第8档或低于8档的,重启后滑块的位置没有变化,亮度值是一样的。但是如果我用滑块设置的值大于了8,然后重启。滑块会自动滚到最大值,但是真实的亮度值是没有变的。我的机型设置了macbook3,1,在查看macbook3,1的IO发现它只有8个档亮度,这也可以解释了为什么设置超过8档那个值会变到最大,所以大家在使用的,注意下机型的差异。驱动本身没问题。
|