Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

搜索
查看: 79191|回复: 549

[分享] 比较完美的亮度驱动 ACPI Backlight Driver (更新: V1.2)   [复制链接]

Rank: 9

UID
752499
帖子
4067
PB币
5328
贡献
0
技术
369
活跃
507

Win10先驱者

发表于 2011-10-5 13:24:46
本帖最后由 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下面,如:
  1. /* 切勿直接拷贝粘贴此部分代码,用自己的dsdt里面的才可以。*/
  2.                    Method (_DOS, 1, NotSerialized)
  3.                     {
  4.                         Store (And (Arg0, 0x03), SWIT)
  5.                     }
  6.                     Method (_BCL, 0, NotSerialized)
  7.                         {
  8.                             Return (Package (0x0D)
  9.                             {
  10.                                 0x46,
  11.                                 0x28,
  12.                                 Zero,
  13.                                 0x0A,
  14.                                 0x14,
  15.                                 0x1E,
  16.                                 0x28,
  17.                                 0x32,
  18.                                 0x3C,
  19.                                 0x46,
  20.                                 0x50,
  21.                                 0x5A,
  22.                                 0x64
  23.                             })
  24.                         }
  25.                         Method (_BCM, 1, NotSerialized)
  26.                         {
  27.                             Divide (Arg0, 0x0A, Local0, Local1)
  28.                             Store (Local1, ^^^^LPCB.EC.BRTS)
  29.                         }
  30.                         Method (_BQC, 0, NotSerialized)
  31.                         {
  32.                             Multiply (^^^^LPCB.EC.BRTS, 0x0A, Local0)
  33.                             Return (Local0)
  34.                         }
复制代码
优点
     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 ()“下的部分代码):
  1.                Method (_DSM, 4, NotSerialized)
  2.                 {
  3.                     Store (Package ()
  4.                         {
  5.                         "AAPL,HasPanel",
  6.                         Buffer (0x04)
  7.                         {
  8.                             0x01, 0x00, 0x00, 0x00
  9.                         },

  10.                         "AAPL,Haslid",
  11.                         Buffer (0x04)
  12.                         {
  13.                             0x01, 0x00, 0x00, 0x00
  14.                         },

  15.                         "AAPL,backlight-control",
  16.                         Buffer (0x04)
  17.                         {
  18.                             0x01, 0x00, 0x00, 0x00
  19.                         },
  20.                                                 
  21.                         "@0,backlight-control",
  22.                         Buffer (0x04)
  23.                         {
  24.                             0x01, 0x00, 0x00, 0x00
  25.                         },

  26.                          "@0,AAPL,boot-display",
  27.                         Buffer (0x04)
  28.                         {
  29.                             0x01, 0x00, 0x00, 0x00
  30.                         },
  31.                                                 
  32.                         "@0,built-in",
  33.                         Buffer ()
  34.                         {
  35.                             One
  36.                         }        
  37.                     }, Local0)
  38.                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  39.                 Return (Local0)
  40.             }
复制代码
3,在\_SB scope下面加入PNLF Device,如:
  1. Scope (\_SB)
  2. {
  3.     //省去
  4.     Device (PNLF)
  5.     {
  6.         Name (_HID, EisaId ("APP0002"))
  7.         Name (_CID, "backlight")
  8.         Name (_UID, 0x0A)
  9.         Name (_STA, 0x0B)
  10.     }
  11.     //省去
  12. }
复制代码
4,安装附件的kext,用kext wizard 或其他的工具。

     最后如果顺利的话在内核日志会看到以下日志:
  1. ACPIBacklightPanel: Found Backlight Device: LCDD
  2. ACPIBacklightPanel: ACPI Method _DOS found. Device path: _SB.PCI0.IXVE.IGPU
  3. ACPIBacklightPanel: ACPI Methods _BCL _BCM _BQC found. Device path: _SB.PCI0.IXVE.IGPU.LCDD
  4. 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档那个值会变到最大,所以大家在使用的,注意下机型的差异。驱动本身没问题。

16

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
14015
帖子
265
PB币
2054
贡献
0
技术
1
活跃
105
发表于 2011-10-5 13:47:46
台式机能用不?

Rank: 2Rank: 2

UID
306170
帖子
392
PB币
1669
贡献
0
技术
0
活跃
56
发表于 2011-10-5 13:50:21
没戏,一直都是appledisplay

点评

zshwq5  一样的情况,到现在都没有找到合适的方法解决。  发表于 2011-10-9 08:16

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
886
贡献
0
技术
1063
活跃
37

7周年庆典勋章

发表于 2011-10-5 13:51:43
masterfoxzone 发表于 2011-10-5 13:47
台式机能用不?

当然不能用了

你见过哪台台式机可以用ACPI调整显示屏亮度?

或者说你在Windows下都不能通过系统来调整显示屏亮度,Mac下就更不要指望了

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
886
贡献
0
技术
1063
活跃
37

7周年庆典勋章

发表于 2011-10-5 13:52:17
TOXOMO 发表于 2011-10-5 13:50
没戏,一直都是appledisplay

你有AppleDisplay

Rank: 2Rank: 2

UID
306170
帖子
392
PB币
1669
贡献
0
技术
0
活跃
56
发表于 2011-10-5 13:54:39
oroge 发表于 2011-10-5 13:52
你有AppleDisplay

appledisplay人人都有吧
缼的是applebacklightdisplay

渐行渐远

UID
386915
帖子
10972
PB币
18563
贡献
0
技术
289
活跃
1024
发表于 2011-10-5 13:57:23
在新的DSDT上試試!謝謝了,

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
886
贡献
0
技术
1063
活跃
37

7周年庆典勋章

发表于 2011-10-5 14:00:16
本帖最后由 oroge 于 2011-10-5 14:01 编辑
TOXOMO 发表于 2011-10-5 13:54
appledisplay人人都有吧
缼的是applebacklightdisplay

.....
我以为你说的是Apple显示屏打住打住,在这里歪楼太不给作者面子了

Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 14:11:58
楼主,我没有applebacklightdisplay这个驱动啊

Rank: 2Rank: 2

UID
306170
帖子
392
PB币
1669
贡献
0
技术
0
活跃
56
发表于 2011-10-5 14:15:00
siriusalive 发表于 2011-10-5 14:11
楼主,我没有applebacklightdisplay这个驱动啊

这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklightdisplay

Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 14:21:45
TOXOMO 发表于 2011-10-5 14:15
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklight ...

悲剧啊,是appledisplay是不是就没戏了呢 - -
屏幕快照 2011-10-05 下午2.23.10.png

Rank: 9

UID
752499
帖子
4067
PB币
5328
贡献
0
技术
369
活跃
507

Win10先驱者

发表于 2011-10-5 14:24:15
TOXOMO 发表于 2011-10-5 14:15
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklight ...

查看那个kext加载与否可以用这个命令查看:
  1. kextstat | grep Backlight
复制代码
有返回值表明加载。

Rank: 2Rank: 2

UID
306170
帖子
392
PB币
1669
贡献
0
技术
0
活跃
56
发表于 2011-10-5 14:24:58
N卡应该不太容易悲剧吧
在dsdt中放入楼主的第二段代码,这个的作用就是加载applebacklightdisplay的

Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 14:26:24
tmacyunn 发表于 2011-10-5 14:24
查看那个kext加载与否可以用这个命令查看:有返回值表明加载。

我的没有返回值。。。要肿么办呢?

Rank: 1

UID
1700196
帖子
17
PB币
99
贡献
0
技术
0
活跃
36
发表于 2011-10-5 14:27:23
nice 3x

Rank: 9

UID
752499
帖子
4067
PB币
5328
贡献
0
技术
369
活跃
507

Win10先驱者

发表于 2011-10-5 14:35:21
siriusalive 发表于 2011-10-5 14:26
我的没有返回值。。。要肿么办呢?

你可以先试试把代码和kext都装上,看看。我发现有时候不加载那个kext也是可以的。

Rank: 7Rank: 7Rank: 7

UID
852769
帖子
1933
PB币
601
贡献
0
技术
1
活跃
159
发表于 2011-10-5 14:36:30
謝謝但是看不懂

Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 15:53:16
tmacyunn 发表于 2011-10-5 14:35
你可以先试试把代码和kext都装上,看看。我发现有时候不加载那个kext也是可以的。

我将楼主提供的代码加入了dsdt中,装了驱动到S/L/E,还是不能实现电池屏幕变暗。
有个问题请教楼主,\_SB.PCI0.PEGP.VGA.LCD下的控制方法是不是只要楼主提供的以前的都删掉呢
比如我在\_SB.PCI0.PEGP.VGA.LCD下面原来 没有_DOS 有_BCL _BCM _BQC
原来 还有_ADR _DCS _DGS _DSS,这些需不需要删除呢? dsdt.aml.zip (11.64 KB, 下载次数: 10) 这是我改过之后的,不知道对不对,楼主有时间的话能帮看下嘛?


Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 15:55:47
内核日志已经有楼主提到的那段文字了
屏幕快照 2011-10-05 下午3.58.16.png

这个世界太危险!!

UID
736310
帖子
3208
PB币
9995
贡献
0
技术
30
活跃
177

7周年庆典勋章 8周年庆典勋章

发表于 2011-10-5 16:14:39
本帖最后由 xiaobangdelei 于 2011-10-5 16:30 编辑

看来和以前那个亮度调节是不同的,以前可以调亮度的也需要重新修改dsdt!
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件