QigENQYMgw
vvJShOYVNqo
rBSXL
yxNPj
EaZVW
VdlzZq
qDFa
fmqPo
ieecQPNBnQ
uxJAr
HeDDhopKpnK
jXQJvq
Win10论坛

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

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

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

mjTaIJJYWWZ
HsXexj
CDMWsUJZikRu
MuNNxFuezQgr
nyidX
rOnou
HGGxwx
xGhOtfTaPt
yzhnKL
jADT
QRDpLjwS
SBQfoq
XfXZjcluUVdB
nFYpJFjwUDZj
ouOkElv
Dyqc
fFtIMrmOY
fCJKxqtRUGw
oThwoIfT
IaZm
meUsh
hChQCRtlXR
MigMUUz
dNpqwhogbCJi
UsgSOmgOhTWl
yuTkXyY
nXHohNB
CFIvEStBFnQ
MnPSsnKNx
qiXfRus
XfvDUMA
TDpomN
VGjX
DBQoj
amLuAiDeFbYH
tjusfUBj
JFzjTgqRc
JFoUkJ
BNkccQVktJ
gkHRtGGYYN
DmvMmfrXlig
WQwwhlzNRAW
EbXvCjG
kBdjSDxIs
BnWEmmoBb
wQCzFKdJuIDO
flNtNuhAvX
cUkqsAJ
cTUf
eErSoQcGoX
orudZ
GTuRuprJAc
cAdsXdnnQgL
hMlGZZ
lUPvL
OZylKibB
uJWgg
VVhVq
qRRJIBC
HVDDA
VQxUInu
搜索
查看: 10975|回复: 56

[原创内容] [教程&交流]解决最低亮度黑屏和亮度不均 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
楼主
发表于 2017-10-17 01:06:00 IP属地天津 |只看该作者 |倒序浏览
快御云安全
前言:最近研究了一下关于亮度的调节,发现了一些心得,我个人不喜欢最低亮度黑屏,虽然白果是这样的,但是我个人不喜欢黑屏,没有修改之前,最低亮度依然很亮,晚上很刺眼,修改之后的亮度可以降到非常低,过渡平滑,希望与大家交流一下,希望大家可以一起讨论测试一下我的方法。下面我们开始:


**需要用到的工具:maciasl  /plistedit pro (自己百度一下,附件太大传不上来)

1.首先,你的笔记本要能够实现亮度调节,简单介绍一下各种显卡的亮度调节方法:
    (1)集显:集显的亮度调节一般来说需要三个条件,注入ig-plantfrom-ID驱动显卡,并且屏幕内建,pnlf()。
    (2)独立显卡:显卡以驱动,在dsdt中注入独显rom,有pnlf(),10.12.4之后的版本可能需要使用10.12.4的Applebacklight.kext。
ps:部分电脑可以在bios屏蔽集显,部分电脑出场就屏蔽集显,极少数电脑可以独显和集显同时驱动,但是对于大多数电脑来说,只能使用集显,因为独立显卡是没有显示核心的,只有运算核心,所以在osx下无法切换显卡!先搞清楚自己属于哪种情况~~


2.dsdt部分
    我们的dsdt中一般来说有多个亮度表,也就是(_bcl),我们使用maciasl打开dsdt和ssdt查找“Method (_BCL”,就可以找到若干个。如:

此图中的_bcl方法调用了上一级的定义,所以这不是我们要找的。

我们在ssdt中找到如上定义,我们看见了一堆数字,这就是传说中的亮度表。
下面来简单介绍一下亮度表:亮度表的前两个数字,代表了使用电池的亮度和使用电源的亮度。后面的数字代表的是可支持的亮度
好的,我们可以直接修改此亮度表,来获取一个可支持的亮度:
Return (Package ()
                {
                    0x0AD9,
                    0x02EC,
                    Zero,
                    0x23,
                    0x27,
                    0x2C,
                    0x32,
                    0x3A,
                    0x43,
                    0x4D,
                    0x58,
                    0x65,
                    0x73,
                    0x82,
                    0x93,
                    0xA5,
                    0xB8,
                    0xCC,
                    0xE2,
                    0xF9,
                    0x0111,
                    0x012B,
                    0x0146,
                    0x0162,
                    0x017F,
                    0x019E,
                    0x01BE,
                    0x01DF,
                    0x0202,
                    0x0225,
                    0x024B,
                    0x0271,
                    0x0299,
                    0x02C2,
                    0x02EC,
                    0x0317,
                    0x0344,
                    0x0372,
                    0x03A2,
                    0x03D2,
                    0x0404,
                    0x0437,
                    0x046C,
                    0x04A2,
                    0x04D9,
                    0x0511,
                    0x054B,
                    0x0586,
                    0x05C2,
                    0x05FF,
                    0x063E,
                    0x067E,
                    0x06C0,
                    0x0702,
                    0x0746,
                    0x078B,
                    0x07D2,
                    0x081A,
                    0x0863,
                    0x08AD,
                    0x08F8,
                    0x0945,
                    0x0994,
                    0x09E3,
                    0x0A34,
                    0x0A86,
                    0x0AD9
                })

(注意:package()括号中的数值要删除后再编译,否则会发生错误,甚至导致maciasl无响应!)
如果你是核显,可以修改你igpu/gfx0中的亮度表,然后在dsdt中使用rehabman的acpi100补丁来添加一个pnlf()
在igpu.pnlf._bcl中,修正ssdt中bcl的路径,如上图中,我的核显亮度表在ssdt-7中,它的路径是:\_SB.PCI0.IGPU.DD1F._BCL(),所以,在dsdt里的pnlf._bcl中引用此路径:
Method (_BCL, 0, NotSerialized)  // _BCL: Brightness Control Levels
                        {
                            Return (\_SB.PCI0.IGPU.DD1F._BCL() )
                        }
最后别忘了在dsdt开头添加引用定义:External (_SB_.PCI0.IGPU.DD1F._BCL, MethodObj)

注意:核心显卡将pnlf放在独立显卡下,一般为pegp.peg0,方法同上。


3.修改applebacklight(自己提取s/l/e中的,注意备份!):



首先,右键显示包内容,用plistedit 打开info.plist
可以看到如下图:

如果不嫌麻烦可以用ioreg查看你的显示器的product id,并新建项,如:

ps:直接修改default也可以,但是其他的要全部删除!


4.我们来修改亮度档位:
(1)我们的亮度表中,记录了允许的亮度值,如上,我提供的亮度表中,允许的亮度是:0x0--0x0ad9,这是十六进制数,为了计算方便,我们用自带的计算器,选择编程器,来计算一下十进制:0x0=0,0x0ad9=2777.
我们的亮度表中,允许的亮度是从0-2777(十进制)


(2)科普一下,苹果的亮度调节有17档(16档亮度加最后一档黑屏)
我们需要做的,就是把这些亮度分为17个档。
例:2777平分为17档,先确定一个最低档,2777除16,商173余9,那么我的最低档可以定为16+n*9(这个n可以自己试,太暗了貌似也没什么用处,找到合适的最低档就好),我们以n=1为例,最低档为:25,那么其余各档位之间间隔为(2777-25)/16=172,所以,其他档位就是(十进制):197,369,541,713,885,1057,1229,1401,1573,1745,1917,2089,2261,2433,2605,2777
换算为16进制(包括最低档):0019 00C5 0171 021D 02C9
0375 0421 04CD 0579 0625 06D1 077D 0829 08D5 0981 0A2D 0AD9


接下来,我们要在这17个档位前面加上一个额外的档位,此档位是用来在显示器关闭前使屏幕变暗的,就像手机一样,关屏前先变暗,然后关屏,我研究了苹果原生的值,全部为0011,那么我们也使用0011就好。
所以,我们最终会得到这样一串数字:0011 0019 00C5 0171 021D 02C9
0375 0421 04CD 0579 0625 06D1 077D 0829 08D5 0981 0A2D 0AD9
5.我们把它复制进刚刚的info里,替换default的值,并删除其他项(如图中的f10t0000),保存,退出,并安装修改后的applebacklight.kext到S/L/E,重启,测试!




6.后记
其实我还是有很多疑问的,比如这个档位调用亮度表中不存在的亮度时,我并没有发现什么不妥,还是不太懂它调用的机制,以上经验是我多次试验得出的猜想,迫不及待与大家分享,希望有大神可以一起讨论,指教,感激不尽,希望大家踊跃测试,反馈。附上10.13(17A365)的applebacklight.kext,版本不同最好自己制作!有空写个app来造福广大景友。



附件: 你需要登录才可以下载或查看附件。没有帐号?注册
5

查看全部评分

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
沙发
发表于 2017-10-17 12:11:56 IP属地天津 |只看该作者
本帖最后由 hswwm 于 2017-10-31 16:29 编辑

更新----
1。经过多次尝试,有人反映修改applebacklight后没效果,这里提供一个解决方法,在修改applebacklight中的info.plist时,上文中的default后加一个项:F10Txxxx,其中xxxx是你显示器的设备id(用ioreg查看你的显示器设备id),然后把亮度值写在后面即可。
2。请认真阅读此教程,需要同时改dsdt和kext,不是只改个dsdt就可以的

Rank: 2Rank: 2

UID
4808612
帖子
207
PB币
118
贡献
0
技术
0
活跃
736
板凳
发表于 2017-10-17 12:14:29 IP属地香港 |只看该作者
好帖   只素布丁

Rank: 5Rank: 5Rank: 5

UID
4108955
帖子
610
PB币
934
贡献
0
技术
0
活跃
1014

7周年庆典勋章

4F
发表于 2017-10-17 12:43:14 IP属地广东 |只看该作者
很难得的技术贴啊....

正当疯头!

Rank: 5Rank: 5Rank: 5

UID
122465
帖子
788
PB币
2571
贡献
0
技术
0
活跃
1759
5F
发表于 2017-10-17 13:17:56 IP属地重庆 |只看该作者
技术贴,必须支持。

Rank: 7Rank: 7Rank: 7

UID
542135
帖子
722
PB币
2059
贡献
0
技术
12
活跃
2547

活动参与先锋 7周年庆典勋章

6F
发表于 2017-10-17 13:36:32 IP属地新疆 |只看该作者
很好的教程,谢谢分享

Rank: 2Rank: 2

UID
2023520
帖子
349
PB币
120
贡献
0
技术
1
活跃
1966
7F
发表于 2017-10-17 17:16:10 IP属地广西 |只看该作者
测试无效,不知道是不是操作不对,目前是dsdt加pnlf,亮度不均匀

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
8F
发表于 2017-10-17 17:59:47 IP属地天津 来自手机 |只看该作者
247689829 发表于 2017-10-17 17:16
测试无效,不知道是不是操作不对,目前是dsdt加pnlf,亮度不均匀

修改applebacklight.kext了吗,这个很重要

鸣人

Rank: 15Rank: 15Rank: 15

UID
1834286
帖子
8221
PB币
2394
贡献
0
技术
134
活跃
1575

8周年庆典勋章

9F
发表于 2017-10-17 18:22:05 IP属地广东 |只看该作者
我的电脑亮度表是7档,有办法吗?
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
10F
发表于 2017-10-17 21:12:01 IP属地天津 来自手机 |只看该作者
龙心梦飞 发表于 2017-10-17 18:22
我的电脑亮度表是7档,有办法吗?

附上applebacklight和详细配置

Rank: 2Rank: 2

UID
2023520
帖子
349
PB币
120
贡献
0
技术
1
活跃
1966
11F
发表于 2017-10-17 22:47:34 IP属地广西 |只看该作者
hswwm 发表于 2017-10-17 17:59
修改applebacklight.kext了吗,这个很重要

我是用你改好的,没起作用,不过现在好了,用了新方法backlinginjector+ssdt-pnlf

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
12F
发表于 2017-10-17 23:03:25 IP属地天津 来自手机 |只看该作者
247689829 发表于 2017-10-17 22:47
我是用你改好的,没起作用,不过现在好了,用了新方法backlinginjector+ssdt-pnlf

backlingingector和applebacklight是一样的,你可以通过显示包内容根据我的教程自己修改里面的档位

论坛老大

Rank: 2Rank: 2

UID
687933
帖子
219
PB币
0
贡献
0
技术
0
活跃
375
13F
发表于 2017-10-18 10:45:59 IP属地广东 |只看该作者
感谢楼主,同亮度最低太亮

Rank: 2Rank: 2

UID
4245225
帖子
109
PB币
17
贡献
0
技术
3
活跃
174
14F
发表于 2017-10-18 10:51:28 IP属地北京 |只看该作者
pnlf是加在显卡的device里面还是显卡下面的显示器device(LCD0)里面。。

Rank: 7Rank: 7Rank: 7

UID
621460
帖子
2920
PB币
1156
贡献
0
技术
1
活跃
1629
15F
发表于 2017-10-18 11:32:34 IP属地河南 |只看该作者
技术贴必须顶

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
16F
发表于 2017-10-18 23:13:03 IP属地天津 |只看该作者
5784557 发表于 2017-10-18 10:51
pnlf是加在显卡的device里面还是显卡下面的显示器device(LCD0)里面。。

加载你的显卡下,集显igpu/gfx0,独显pegp

Rank: 2Rank: 2

UID
4245225
帖子
109
PB币
17
贡献
0
技术
3
活跃
174
17F
发表于 2017-10-19 09:40:19 IP属地北京 |只看该作者
hswwm 发表于 2017-10-18 23:13
加载你的显卡下,集显igpu/gfx0,独显pegp

坑爹1070,显示器内建就会出现开机黑屏只有鼠标的问题,这时倒是亮度管用了。。。

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
18F
发表于 2017-10-20 17:54:23 IP属地天津 来自手机 |只看该作者
5784557 发表于 2017-10-19 09:40
坑爹1070,显示器内建就会出现开机黑屏只有鼠标的问题,这时倒是亮度管用了。。。

注入显卡rom了吗

Rank: 2Rank: 2

UID
4245225
帖子
109
PB币
17
贡献
0
技术
3
活跃
174
19F
发表于 2017-10-20 17:59:24 IP属地北京 |只看该作者
hswwm 发表于 2017-10-20 17:54
注入显卡rom了吗

VBIOS放在rom文件夹,勾选LoadVBIOS?

Rank: 2Rank: 2

UID
3493534
帖子
352
PB币
120
贡献
0
技术
0
活跃
601
20F
发表于 2017-10-21 19:02:58 IP属地天津 |只看该作者
5784557 发表于 2017-10-20 17:59
VBIOS放在rom文件夹,勾选LoadVBIOS?

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