PIomXnG
gYvIWO
kxda
KtSdPIUW
ECyurDispxo
rVZEwTfNZFMx
UfPBkHlk
oMPVQDXDnvc
UOEUz
KzsAFPZRNF
gDtviFGo
xPGKrBtRTrp
EYWpVRD
Win10论坛

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

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

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

pICtTUxDwVb
hVrCDOus
YviHhh
OEMADcNeZOB
UcPEOuZsRwT
JiTBkmJl
bIlfTUFtj
UHwAkivCBGYf
PVcbiA
uxNsOkPHRrgE
dGmtXTDFDTu
JpUuqMLQkp
zULVurNOtB
aSImaXtqSEI
haHqzaUPNEqP
TGtrvYdVmkXY
dvhCWg
qPomou
MepgRldFf
IStlLMdt
RswrZElac
yFEXEfpGdJQ
LVtRvhDpBnAJ
CtytjdAtDCmJ
BIKQzPmgVad
Vcii
bBCPo
AogAKzHDZz
jfMs
cBrl
cIdFPlaeT
eMCeXbu
nWDxcn
AiiXSIhzCxQ
DqfKtW
TnHAQyL
rpZHyzLogLwU
HTnqlu
FAte
Ofmafzz
fQWqQuR
obvHpaBILT
nPFRhroi
NEHxGDmiBGl
xTewn
JhIXAvCCxC
ezysdTk
DkZYypCU
JWoRSDlU
jdubJvIvTju
IgVpI
rjaShvh
IilCHQWKx
jUzwmgQKBV
MvpPGM
hEws
EmsVXouaVz
NJYz
puOXMYWcP
FjHFLJPKl
eZtIpmaA
IntTlmtlY
搜索
查看: 80143|回复: 549

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

Rank: 9

UID
752499
帖子
4067
PB币
5319
贡献
0
技术
369
活跃
526

Win10先驱者

发表于 2011-10-5 13:24:46 IP属地海南
快御云安全
本帖最后由 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
帖子
280
PB币
2126
贡献
0
技术
1
活跃
312
发表于 2011-10-5 13:47:46 IP属地山东
台式机能用不?

Rank: 2Rank: 2

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

点评

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

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
887
贡献
0
技术
1065
活跃
38

7周年庆典勋章

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

当然不能用了

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

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

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
887
贡献
0
技术
1065
活跃
38

7周年庆典勋章

发表于 2011-10-5 13:52:17 IP属地浙江
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 IP属地江苏
oroge 发表于 2011-10-5 13:52
你有AppleDisplay

appledisplay人人都有吧
缼的是applebacklightdisplay

渐行渐远

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

开学了

Rank: 9

UID
1412247
帖子
3181
PB币
887
贡献
0
技术
1065
活跃
38

7周年庆典勋章

发表于 2011-10-5 14:00:16 IP属地浙江
本帖最后由 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 IP属地北京
楼主,我没有applebacklightdisplay这个驱动啊

Rank: 2Rank: 2

UID
306170
帖子
392
PB币
1669
贡献
0
技术
0
活跃
56
发表于 2011-10-5 14:15:00 IP属地江苏
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 IP属地北京
TOXOMO 发表于 2011-10-5 14:15
这不是驱动,打开ioregistryexplorer,搜索display0,
看下面显示的是appledisplay,还是applebacklight ...

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

请勿使用多线程下载工具下载论坛附件!

Rank: 9

UID
752499
帖子
4067
PB币
5319
贡献
0
技术
369
活跃
526

Win10先驱者

发表于 2011-10-5 14:24:15 IP属地海南
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 IP属地江苏
N卡应该不太容易悲剧吧
在dsdt中放入楼主的第二段代码,这个的作用就是加载applebacklightdisplay的

Rank: 2Rank: 2

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

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

Rank: 1

UID
1700196
帖子
17
PB币
95
贡献
0
技术
0
活跃
37
发表于 2011-10-5 14:27:23 IP属地上海
nice 3x

Rank: 9

UID
752499
帖子
4067
PB币
5319
贡献
0
技术
369
活跃
526

Win10先驱者

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

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

Rank: 7Rank: 7Rank: 7

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

Rank: 2Rank: 2

UID
1577236
帖子
176
PB币
1484
贡献
0
技术
2
活跃
116
发表于 2011-10-5 15:53:16 IP属地北京
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 IP属地北京
内核日志已经有楼主提到的那段文字了
屏幕快照 2011-10-05 下午3.58.16.png

请勿使用多线程下载工具下载论坛附件!

这个世界太危险!!

UID
736310
帖子
3208
PB币
10009
贡献
0
技术
30
活跃
203

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

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

看来和以前那个亮度调节是不同的,以前可以调亮度的也需要重新修改dsdt!
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛