UDgfOkvfc
miEpDNu
GMPvNzUR
wWoGbQunmYza
wNlIrVmH
zLhaEoBm
oZzeqSNaLg
ONHw
UXkZULEg
GOptXipvHye
Win10论坛

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

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

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

SKyA
hnpznXB
llPGnfP
Ywet
JVakmVjmGqzs
pDlEx
YTXcfOpqg
dlQkGGM
SpHTzCPwVuu
UODxbgs
kqul
IizAfamPWgk
cuAT
mnEcDtzxJN
LfPPuoty
fCMiTz
CVlJ
sQsAVhKAyR
lrYbzOftyM
crkGTxXcZK
aAHjmYzbNS
bpaybTw
QbWYnQZLGB
BJiDObwcJdJ
VsZICEv
FFTv
MxKkMNHdVDAE
KfibJzXTyGU
MvENL
LsAvhrSuh
tGFZI
CZaLdm
npDK
zdDuIRaZHCap
nYdyon
MCCRaze
yaJSDitKXblm
ZnTxOeLNn
sPwFKxsEh
vizRQTkz
LbzzWgjbvIVT
YknWtqj
SiUnhwBTytIs
pSJoquRkIYoz
PYUncVutzIt
uWnWMAIDL
iaJIareQ
IKMQf
EekncS
RJwwmTHpQ
搜索
查看: 43356|回复: 148

[教程] 还在用GenericBrightness?最后一档黑屏?羡慕华硕有修改版?亮度太高太低?教你用原版     [复制链接]

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 11:28:32 IP属地辽宁 |显示全部楼层
快御云安全
本帖最后由 FrankieD 于 2014-3-8 19:40 编辑

首先 insanelymac上是我写的 别说我抄袭 转载不注明出处
然后 感谢野蛮人2 我们两个人研究了三天 最后找出方法  以及 中国开发网的“张秋桥” 我搜遍了整个网络,发现了他的帖子,给了我灵感
http://www.cndev.org/forum/msg?pid=911993



正文



大部分人可能通过修改DSDT的PNLF都能调节亮度,为什么各种亮度教程里都要用genericbrightness
因为这个驱动自带亮度表,原装的驱动亮度很不均匀 不是最后一档黑屏就是起始亮度太高
但genericbrightness有很多毛病
首先不稳定,因为两个驱动同时工作 先AppleBacklight.kext发出指令,然后Genericbrightness再发指令
所以就会出现先亮再暗的情况
其次是睡眠唤醒,亮度变高,因为唤醒之后调用的是AppleBacklight.kext发出的指令
你要解决就必须要重新调节亮度,重新“AppleBacklight.kext发出指令,然后Genericbrightness再发指令”
并且,如果你频繁调节亮度,比如一直暗最低亮度,就会发现屏幕突然黑了,这也是因为AppleBacklight.kext发出指令而GenericBrightness没有发出相应指令的原因

前几天发帖子问怎么解决,有人恰好也发帖说intel的解决方法是修改FB
100700001007
这个方法是只能针对intel亮度过大的  

而独立显卡则基本不具备可操作性
首先想找到A卡或者N卡的最大亮度值在那个驱动里几乎是不可能

就算找到了  也很难确定上限值在哪



再说说用原装亮度表的好处
首先就是17档亮度调节
有些人会说苹果不是16档么?  其实不是,是17挡!还有一个空挡亮度调节
最后一档是有亮度的 但大部分人不用genericbrightness在最后一档就直接黑下来了
但用了genericbrightness以后,到了中间亮度以后  会变得很亮
而且 使用默认的亮度调节表  其实是非线性的亮度调节表,是一个曲线,所以会出现,某两档亮度差距很大,或者最低亮度比win下中间亮度还亮的情况
而苹果专门针对每款mac都做了修正,把亮度调节变成了一条直线




现在教大家一种完美的方法,让你的电脑像原装mac一样的亮度调节,可以用面板滑块精确到每个数值,让强迫症患者找到自己喜欢的亮度
而且亮度可以低到超乎想象,低到你屏幕可以的最低亮度

看帖之前,请确认自己可以不需要GenericBrightness或者AppleACPIBacklight就可以调节亮度;如果不行的话  首先想办法驱动原版就能够做到调节亮度


首先 确定你显卡的型号和白苹果最相近的型号
比如我的sony EA18  显卡是ATI5650,和我最接近的是imac 11,3  imac 12,2
下载他们的IOReg,查看他们的显示器设备ID 比如这个
屏幕快照 2013-11-03 上午10.28.29.jpg

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

以及你自己的显示器设备ID
像我这样
屏幕快照 2013-11-03 上午10.29.45.jpg

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



然后复制AppleBacklight.kext到桌面,打开info.plist
找到这里
屏幕快照 2013-11-03 上午10.21.03.jpg

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

搜索a007,然后把a007替换成我的设备ID  05fa 删掉其他的亮度表,如果你愿意 可以把default也改成我一样
然后替换原来的驱动   
  1. sudo -s
  2. chmod -R 755 /System/Library/Extensions/AppleBacklight.kext
  3. chown -R root:wheel /System/Library/Extensions/AppleBacklight.kext/
  4. rm -rf /System/Library/Extensions.*
  5. diskutil repairpermissions /
复制代码





第二步  注入EDID   这个注入EDID的方法不同于DSDT注入,是真正的白苹果注入方法。根据你显示器的设备ID 范例ID(通过IOreg看),在System\Library\Display\Overrides下 找到你的范例ID文件夹 比如我是4dd9
在下面复制一个显示器的相同文件,改名成自己的设备ID  然后里头填入你的设备ID 范例ID和EDID    注意 这两个ID需要从16进制改成10进制
用计算器算
屏幕快照 2013-11-03 上午10.35.40.jpg

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

注:这一步必须保证 你是通过DSDT来注入EDID的  或者是默认就已经能认出你的EDID的,而不是通过DisplayVendorID-756e6b6e下的Display 717来注入EDID,换言之,你的EDID是注入在正确的位置,而不是兼容显示器位置。只有这样才能确保你的IOREG能百分百正确识别你的EDID ,也能保证你的EDID是注入在正确的位置
第三步  修改DSDT  找到PNLF部分
  1. Device (PNLF)
  2.         {
  3.             Name (_HID, EisaId ("APP0002"))
  4.             Name (_CID, "backlight")
  5.             Name (_UID, 0x0A)
  6.             Name (_STA, 0x0B)
  7.         }
复制代码
注意UID STA数值可能会不一样  如果前面两步骤做完依然没有效果 再尝试使用第三步,   有些用原本的数值就能驱动 有些就不行
那其他亮度调节的代码部分
记着要像其他教程里所说的一样
在Device(LCD) 后添加
  1. Name (_HID, EisaId ("LCD1234"))
复制代码
以及在你DSDT的显卡部分  或者ATYinit.kext的info.plist部分有如下代码
  1. "@0,backlight-control",
  2.                                 Buffer (0x04)
  3.                                 {
  4.                                     0x01, 0x00, 0x00, 0x00
  5.                                 },
  6. "@0,built-in",
  7.                                 Buffer (One)
  8.                                 {
  9.                                     0x01
  10.                                 },
  11. "@0,pwm-info",
  12.                                 Buffer (0x14)
  13.                                 {
  14.                                     /* 0000 */    0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
  15.                                     /* 0008 */    0x08, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  16.                                     /* 0010 */    0x00, 0x04, 0x00, 0x00
  17.                                 },
复制代码
  1.                                 "AAPL,backlight-control",
  2.                                 Buffer (0x04)
  3.                                 {
  4.                                     0x01, 0x00, 0x00, 0x00
  5.                                 },

  6.                                 "AAPL00,blackscreen-preferences",
  7.                                 Buffer (0x04)
  8.                                 {
  9.                                     0x00, 0x00, 0x00, 0x00
  10.                                 },
复制代码

附上我的DSDT  

归档.zip (77.15 KB, 下载次数: 234)

回帖推荐

tmacyunn 发表于7楼  查看完整内容

方法落后与否,不是简单的说说而已,关键看难以适用范围,操作性和结果。这里解释一下,intel的调节方法和A卡以及N卡是有差别的。(没有A、N卡设备测试不知道实际情况)就Intel的而言,亮度调节的档次本身和dsdt内的档数有关,mbp8.1的最大的是0x400,最小是0,每一档步长是0x40,共17(第一档是0,即黑屏)档,如果你自己电脑档数是10而不是16,那么调节的时候就会偏差,会有个别人档数没有效果,解决办法就是扩充到16档。 关于 ...
9

查看全部评分

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 11:30:49 IP属地辽宁 |显示全部楼层
本帖最后由 FrankieD 于 2014-1-19 10:54 编辑

另外
在intel集显和独显共存的情况下  intel集显是通过AppleGraphicControl.kext下的Mux.kext来控制亮度的,而独显依然是通过AppleBacklight来控制亮度     
我没做测试
请自行测试 屏幕快照 2013-11-03 上午10.42.07.jpg

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

补充一个集显、独显切换的灵感
黑苹果不能做到集显独显的切换,因为苹果的切换是硬切换
就涉及到两个驱动两个亮度表
不知道这个会不会对极限独显切换的攻克起到一定帮助  
方法是看一下与自己集显+独显型号最接近的笔记本
比如MBP8,2   intel和N卡共存
那么同时给两个背光驱动分别添加类似MBP8,2下intel和N卡的亮度表  


我没有这种机器  如果有人想驱动可以挑战一下同时驱动两个试试看效果
希望有人试验之后可以回复一下

屏幕快照 2013-11-05 下午9.42.35.jpg

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

同时  似乎应当尝试在DSDT中添加如下命令
  1. Device (GMUX)
  2.                 {
  3.                     Name (_HID, EisaId ("APP000B"))
  4.                     Name (_CID, "gmux")
  5.                     Name (_STA, 0x0B)
  6.                     Name (_CRS, ResourceTemplate ()
  7.                     {
  8.                         IO (Decode16,
  9.                             0x0700,             // Range Minimum
  10.                             0x07FF,             // Range Maximum
  11.                             0x01,               // Alignment
  12.                             0xFF,               // Length
  13.                             )
  14.                     })
  15.                     Name (_PRW, Package (0x02)
  16.                     {
  17.                         0x16,
  18.                         0x03
  19.                     })
  20.                     Scope (\_GPE)
  21.                     {
  22.                         Method (_L16, 0, NotSerialized)
  23.                         {
  24.                             Notify (\_SB.PCI0.LPCB.GMUX, 0x80)
  25.                         }
  26.                     }

  27.                     Name (GMGP, 0x16)
  28.                     Method (GMSP, 1, NotSerialized)
  29.                     {
  30.                         If (LLessEqual (Arg0, 0x01))
  31.                         {
  32.                             Or (GP06, Arg0, GP06)
  33.                         }
  34.                     }

  35.                     Method (GMLV, 0, NotSerialized)
  36.                     {
  37.                         Return (GP06)
  38.                     }
  39.                 }
复制代码
位置在BAT0后  
屏幕快照 2013-12-09 下午9.49.36.jpg

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



最后

有一些已经有效果了最后一档依然黑屏  或者最后一档屏幕太黑或者太闪  你可以自行修改亮度表
比如这样

00110006 000B0014 001C0027 0033003F 004E005C 00670073 00810091 00A500BF 00DB00FF改成
00110008 000B0014 001C0027 0033003F 004E005C 00670073 00810091 00A500BF 00DB00FF
因为数值6的亮度对我的显示器来说会很闪,基本也用不上
注意 第一个0011不是你的启始亮度
他是你长时间不用之后会自动暗下来,类似iphone的长时间不用会先暗下来,然后再黑屏
这个是用第三方驱动或者默认情况下不会有的
这也是体现了苹果的人性化   











点评

龙心梦飞  我查了查mbp8.3的IOReg的igpu下的acpibcaklight之下的设备id确实只能在AppleGraphicControl.kext下的Mux.kext里的info.plist里找到,我按照你的方法,把我的设备di放到这里,却没有效果,怎么回事?  发表于 2013-12-3 16:47 IP属地山东
2

查看全部评分

求71狐狸尾巴当抱枕......外出南极洲旅游至今未归

UID
2881599
帖子
18654
PB币
94497
贡献
1
技术
23564
活跃
2824

热心会员 8周年庆典勋章

发表于 2013-11-3 11:42:04 IP属地辽宁 来自手机 |显示全部楼层
支持技术贴……

Rank: 11Rank: 11Rank: 11

UID
3545481
帖子
8885
PB币
38347
贡献
0
技术
7848
活跃
2904

Win10先驱者 我是大学生! 远景美化达人 远景技术达人 远景智多星

发表于 2013-11-3 11:44:18 IP属地广东 |显示全部楼层
纯支持了

Rank: 5Rank: 5Rank: 5

UID
731872
帖子
837
PB币
3973
贡献
0
技术
0
活跃
1167
发表于 2013-11-3 12:08:14 IP属地广东 |显示全部楼层
只支持...还没有看明白

高级潜水员

Rank: 2Rank: 2

UID
434106
帖子
384
PB币
418
贡献
0
技术
13
活跃
229
发表于 2013-11-3 12:17:05 IP属地山东 |显示全部楼层
HD3000的可以用 MBP8.1 的设备代号?是什么。。。
身边没有这个机子啊

Rank: 9

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

Win10先驱者

发表于 2013-11-3 12:21:10 IP属地上海 |显示全部楼层
前几天发帖子问怎么解决,有人恰好也发帖说intel的解决方法是修改FB 10070000001007
这个方法其实是很落后的方法
首先想找到A卡或者N卡的亮度值在那个驱动里几乎是不可能,就算找到了  也很难确定上限值在哪

方法落后与否,不是简单的说说而已,关键看难以适用范围,操作性和结果。这里解释一下,intel的调节方法和A卡以及N卡是有差别的。(没有A、N卡设备测试不知道实际情况)就Intel的而言,亮度调节的档次本身和dsdt内的档数有关,mbp8.1的最大的是0x400,最小是0,每一档步长是0x40,共17(第一档是0,即黑屏)档,如果你自己电脑档数是10而不是16,那么调节的时候就会偏差,会有个别人档数没有效果,解决办法就是扩充到16档。
关于10070000001007的修改是因为intel hd3000在开机后得到的亮度不是真实的亮度,需要睡眠显示器再唤醒才能得到。修改是想要开机后直接得到真实的亮度值,这个和调节亮度是没有直接关系。
最后一点是hd3000是通过AppleIntelSNBGraphicsFB.kext来控制的,并不会加载AppleGraphicsControlBacklight.kext

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 12:22:14 IP属地辽宁 |显示全部楼层
hyunbinrain 发表于 2013-11-3 12:17
HD3000的可以用 MBP8.1 的设备代号?是什么。。。
身边没有这个机子啊

按照你显卡的来
比如你显卡是HD3000  就看看白苹果是哪个  

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
发表于 2013-11-3 12:35:10 IP属地湖北 |显示全部楼层
首先支持下~

然后,我的卡也是5650M,不过Dell降频了就是。我的情况就是加入了PNLF之后,没有用Generic的kext也是可以调节亮度的,按楼主的说法就是完全的十七档,最低一档不是黑屏,极低亮度。 屏幕黑屏之前也有中间过度的亮度,貌似没有额外添加这些东西。

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 12:47:35 IP属地辽宁 |显示全部楼层

至于你

本帖最后由 FrankieD 于 2013-11-3 13:00 编辑
tmacyunn 发表于 2013-11-3 12:21
方法落后与否,不是简单的说说而已,关键看难以适用范围,操作性和结果。这里解释一下,intel的调节方法和 ...

我在下面说了

intel不通过Applebacklight来调节
而是通过AppleGraphiccontrol里的Muxcontrol文件


至于你说真实亮度  我个人是不这么认为的   其实你修改的应该是FB里的最大参数
理论上A卡和N卡也能在驱动里找到对应的参数

说落后 确实有些不太好 不过我觉得  亮度太低或者太高 就和我以前第一档亮度就相当于win下三档一样因为读取到的默认亮度表是最大ff而intel可能需要更大的亮度比如你帖子里说把1007改成1300多  

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 12:56:30 IP属地辽宁 |显示全部楼层
p.H 发表于 2013-11-3 12:35
首先支持下~

然后,我的卡也是5650M,不过Dell降频了就是。我的情况就是加入了PNLF之后,没有用Generic的 ...

我还发帖召唤你来着啊  
就是想搞清楚究竟怎么回事
如果按照我这种推测  是不是你的屏幕和苹果用了相同的  所以苹果直接读取到了  

点评

tmacyunn  Dell使用的WMI的调节方式和苹果的相似,故添加PNLF就可以实现,而不需要Generic之类的kext。  发表于 2013-11-3 13:07 IP属地上海

Rank: 9

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

Win10先驱者

发表于 2013-11-3 13:05:30 IP属地上海 |显示全部楼层
FrankieD 发表于 2013-11-3 12:47
我在下面说了

intel不通过Applebacklight来调节

Screen Shot 2013-11-03 at 12.58.45.jpg

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

亮度kext的加载取决于设置的机型,以上的2个IO是来自白苹果的,8.2是因为有A卡,8.1没有,所以8.1不会加载那个kext。
A、N不存在有真实亮度的问题,故不需要修改,8.1的intel hd3000非白苹果确实有这个问题,关于1213的修改也是因人而已,我的dsdt显示有16档亮度,故用1213,有的人只是10档亮度,那这个值就不一定适用。

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
发表于 2013-11-3 13:21:15 IP属地湖北 |显示全部楼层
tmacyunn 发表于 2013-11-3 12:21
方法落后与否,不是简单的说说而已,关键看难以适用范围,操作性和结果。这里解释一下,intel的调节方法和 ...


学习了,从没有搞过集显啊,一知半解的

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
发表于 2013-11-3 13:22:43 IP属地湖北 |显示全部楼层
FrankieD 发表于 2013-11-3 12:56
我还发帖召唤你来着啊  
就是想搞清楚究竟怎么回事
如果按照我这种推测  是不是你的屏幕和苹果用了相同 ...

0-0  你把Dell想的太好了吧,用和苹果一样的屏0-0

哈哈哈,点评里面的tmacyunn说的或许是正解,我不太清楚这个

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 13:25:00 IP属地辽宁 |显示全部楼层
p.H 发表于 2013-11-3 13:22
0-0  你把Dell想的太好了吧,用和苹果一样的屏0-0

哈哈哈,点评里面的tmacyunn说的或许是正解,我不太 ...

你以为苹果很好?   iMac还用过TN屏呢 哈哈

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
发表于 2013-11-3 13:25:47 IP属地湖北 |显示全部楼层
tmacyunn 发表于 2013-11-3 13:05
亮度kext的加载取决于设置的机型,以上的2个IO是来自白苹果的,8.2是因为有A卡,8.1没有,所以8.1不会加 ...


MUX应该是多路选择器,这样刚好就对应上你说8.1有A和Intel卡的情况了

UID
2409498
帖子
27335
PB币
915
贡献
4
技术
1353
活跃
712
发表于 2013-11-3 13:26:43 IP属地湖北 |显示全部楼层
FrankieD 发表于 2013-11-3 13:25
你以为苹果很好?   iMac还用过TN屏呢 哈哈


目测楼主有钱淫啊,了解的这么深 0-0

其实我都不知道啥事TN屏-0-

Rank: 7Rank: 7Rank: 7

UID
64620
帖子
1692
PB币
6602
贡献
0
技术
82
活跃
474

远景智多星 远景技术达人

发表于 2013-11-3 13:28:40 IP属地辽宁 |显示全部楼层
tmacyunn 发表于 2013-11-3 13:05
亮度kext的加载取决于设置的机型,以上的2个IO是来自白苹果的,8.2是因为有A卡,8.1没有,所以8.1不会加 ...

这个倒没有注意到   
学到了
不过如果我用8,2的SMBIOS  修改Mux是否会有作用?

Rank: 9

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

Win10先驱者

发表于 2013-11-3 13:37:19 IP属地上海 |显示全部楼层
本帖最后由 tmacyunn 于 2013-11-3 13:38 编辑

Dell 热键亮度调节可以看看这个:https://github.com/Dolnor/IOWMIFamily

Rank: 9

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

Win10先驱者

发表于 2013-11-3 13:40:52 IP属地上海 |显示全部楼层
FrankieD 发表于 2013-11-3 13:28
这个倒没有注意到   
学到了
不过如果我用8,2的SMBIOS  修改Mux是否会有作用?

你不都改了嘛?查看加载情况就知道了。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛