ODwyMBzeRMB
xOqjDzzcuu
kXjizo
chcI
hjCxe
yZUoFo
zifJ
Win10论坛

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

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

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

rILYh
KiPB
OPHDMp
ZlDPpNIt
btKzUJo
lDyVeu
fHfMA
prWCiD
okstKYhZUMSp
JbfNZdJqpi
XFzSngTwup
kUygg
ZDNeryMa
OSKNSRT
PSpajdLTDR
cyMxpfhA
WOyKMcA
ATmifQ
OZXwB
YddOjSLBmfk
VVWHxlTT
UZTIMieyTGyr
oTSOMHDcwIap
oHKVTL
YtMBqMQwOJA
Qlgx
hyLh
PxFHdAwWJumJ
qlRLVybB
wmvt
AMcpQCxVPb
TUAHH
jjGKi
PSigEjAb
dyJokpzjap
DCaaDhxN
yuXQOfd
zQwGstO
hkDZDkJD
IIvmplET
kGovedJpZhf
RUDmzbYJbd
zKLiBF
blJk
QcWDlsZQ
JrbTw
QDRJhQpyqLxc
eVwJdCll
XsDbUpzevkID
DDZkGX
FAPUCWa
OkROMVnfW
raLbLjnuT
HONBDbSRh
cTwN
YDyKQSewKCHn
lKtcOxWMz
GETEiPi
brHo
搜索
查看: 22184|回复: 115

[交流] GTX970M---原生亮度调节 [复制链接]

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-19 20:16:59 IP属地浙江 |显示全部楼层
快御云安全
本帖最后由 zjfg0228 于 2016-1-13 15:50 编辑

本来已经放弃了的,但是前天逛论坛的时候看到这个帖子
  1. https://bbs.pcbeta.com/viewthread-1648662-1-5.html
复制代码

,想修复一下独显引导第二阶段载入条在屏幕左下方的问题,但是照了了帖子里做之后,重启发现我的屏幕亮度变暗了,按了一下亮度调节的键发现亮度有变化。当时并没有用GenericBrightness.kext和APCIBacklight.kext,于是我知道原生亮度被开启了。

闲话说多了,说说我怎么做的吧,不是教程,只是经验分享,有不足的地方欢迎指正。


1、我的电脑是6代CPU,核显是HD530,爬了很多帖子发现没戏,于是BIOS关了核显。然后装了webDriver,驱动了独显。这里怎么装的我就不多废话了,论坛里多得是。
2、独显驱动了之后系统信息里显示显卡的显存还是0M,而且用IORegistryExplorer看到显卡下面加载的是AppleDisplay,不是AppleBacklightDisplay,而且显示器也没有内建。loppol在一个帖子里说开启亮度调节的必须条件就是显示器内建+AppleBacklightDisplay被加载。
于是各种爬帖,找到的办法是DSDT注入显卡信息。于是照提取了显卡ROM,用iDSDT注入了显卡信息。显存终于不是0M、终于加载AppleBacklightDisplay了。
这里要说一下,built-in一定要选对
  1.                  Method (_DSM, 4, NotSerialized)
  2.                         {
  3.                                 Store (Package ()
  4.                                 {
  5.                                         "@0,compatible",
  6.                                 Buffer (){
  7.                                                 "NVDA,NVMac"
  8.                                         },
  9.                                         "@0,device_type",
  10.                                         Buffer (){
  11.                                                 "display"
  12.                                         },
  13.                                         "@0,name",
  14.                                         Buffer ()
  15.                                         {
  16.                                                 "NVDA,Display-A"
  17.                                         },
  18.                          "@1,AAPL,boot-display",
  19.                           Buffer (One)
  20.                           {
  21.                               0x01
  22.                           },
  23.                          "@1,backlight-control",
  24.                          Buffer (0x04)
  25.                          {
  26.                              0x01, 0x00, 0x00, 0x00
  27.                          },
  28.                                         "@1,compatible",
  29.                                         Buffer ()
  30.                                         {
  31.                                                 "NVDA,NVMac"
  32.                                         },
  33.                                         "@1,device_type",
  34.                                         Buffer ()
  35.                                         {
  36.                                                 "display"
  37.                                         },
  38.                                         "@1,name",
  39.                                         Buffer ()
  40.                                         {
  41.                                                 "NVDA,Display-B"
  42.                                         },
  43.                                         "@1,built-in",
  44.                           Buffer (One)
  45.                           {
  46.                               0x01
  47.                           },
  48.                                         "@1,pwm-info",
  49.                           Buffer (0x14)
  50.                           {
  51.                             /* 0000 */    0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
  52.                             /* 0008 */    0x1E, 0x02, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
  53.                             /* 0010 */    0x00, 0x04, 0x00, 0x00
  54.                           },
  55.                          "@1,use-backlight-blanking",
  56.                          Buffer (One)
  57.                          {
  58.                               0x01
  59.                          },
  60.                                         "device_type",
  61.                                         Buffer ()
  62.                                         {
  63.                                                 "NVDA,Parent"
  64.                                         },
  65.                                         "hda-gfx",
  66.                                         Buffer ()
  67.                                         {
  68.                                                 "onboard-1"
  69.                                         }
  70.                                 }, Local0)
  71.                                 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
  72.                                 Return (Local0)
  73.                         }
复制代码
上面是我的显卡信息(可能里面有很多没有的参数,懒得删了)。可以看到很多参数是有两个的,要在IORegistryExplorer看一下自己的AppleDisplay是在哪个NVDA,DIsplay下,比如我的在NVDA,DIsplay-B@1下,所以注入的显卡信息里@1下的必要参数一定要有,比如"@1,pwm-info", "@1,use-backlight-blanking",。

3、至此我的亮度调节还没有解决。有按照《理论上完美解决N卡亮度调节问题》里说的做,没成功。后来仔细读这个帖子时发现自己看漏了一句话——“有些可能也需要插入 NVMT和 EDID才能成功”,于是参照https://bbs.pcbeta.com/viewthread-1473634-1-1.html注入了EDID。还是亮度调节还是不行,但是显示器有名字了‘。【这一步是不是必须我也不清楚】

4、上班无聊的适合看了开始说的哪个帖子,本来也没想弄,但是帖子里的这一个
  1. <key>@1,AAPL,boot-display</key>
  2. <string>0x00000001</string>
复制代码
让我眼前一亮,因为我一直觉得我的先前搞出来的亮度调节在调的是核显的亮度,所以怎么调都没用。下班回家照着帖子里做,就出现现在的惊喜。PS:又把这个帖子给loppol看,他说这个帖子最有含金量的就是上面那段,因为这可能解决3K屛启动黑屏。有兴趣的可以试试。
5、先前也有在这个帖子下面说过,当时的情况是可以调亮度但是两秒之后亮度就变回来了。百思不得其解。看到这个帖子https://bbs.pcbeta.com/viewthread-1439193-1-1.html,忽然想到自己动过AppleBacklight.kext,于是找virjay要了原版,果然解决了,可以正常进行亮度调节,但是最后一档黑屏,重启不能保存亮度。
6、今天早上在床上挣扎时来的灵感:因为先前AppleBacklight.kext-》Info.plist-》IOKitPersonalities-》AppleIntelPanelA-》ApplePanels-》Default的值,就是可以调亮度但是两秒之后亮度就变回来的情况,当时最后一档不是黑屏,而且最高亮度也很暗。于是我把ApplePanels的子项里几乎所有的值都换到Default下面试了试(其实就换了6次),结果和我想的一样,有的值可以让最后一档不黑屛。分享两个我觉得有用的:
  1. 00110018 0037005F 008A00B3 00EB0124 016701A9 01D40209 025402A2 02F8034D 039603FF 0400
复制代码

这个最高档不够亮,
  1. 0045004E 00CE00FF
复制代码
这个是我现在在用的,最高档就是最亮,但是最低档不够暗。也懒得再试了,各种奇葩结果都有。
7、重启亮度保存:可以看看这个帖子https://bbs.pcbeta.com/viewthread-1182812-1-1.html,建议结合这个帖子https://bbs.pcbeta.com/viewthread-1538926-1-1.html。但是注意要Clover要装RC。

就这么多了,DSDT文件我就不分享了,免得机型不同出什么差错。
还有一点废话等会二楼补上。

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

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 10:42:00 IP属地浙江 来自手机 |显示全部楼层
本帖最后由 zjfg0228 于 2016-1-14 12:39 编辑

上面的DSDT文件是以前留下来的,忘删了。
--------------------------------------------------------------------------------------------------------------------------
补充一下我实现亮度调节过程的发现,希望对不能开启亮度调节的朋友有帮助。

上面有提到,刚还原到原版AppleBacklight.jext的时候,最后一档是黑屏。于是我尝试修改SSDT中的_BCL函数的亮度比表。
1、改的时候我发现不对劲的地方:虽然亮度表里的最低档是Zero,但是这里的亮度表只有10档,我用快捷键调节的时候却是有17档的,而且接电源开机的亮度是最高档,也不是亮度表里给的亮度等级。所以我觉得这个亮度表应该没有被使用,证明原生的亮度调节被开启了。
2、在ioreg里看到brightness的最大值是400,最小值是0。记得有一个帖子里说brightness的最大值、最小值是存在另一个文件里(不知道是不是记错了),但是爬了很多帖都没有见到有说怎么改brightness值的。
后来改DSDT的时候发现:pwn-info的值是这样的
  1. /* 0000 */    0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00,
  2. /* 0008 */    0x1E, 0x02, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x00,
  3. /* 0010 */    0x00, 0x04, 0x00, 0x00
复制代码
最后1行是00000400,和ioreg里看到的brightness的Max值是一样的,总觉得的这不是一个巧合。把我找的的几个pwn-info都比较了一下,发现于是都是这个样的。于是我把 0x00, 0x04, 0x00, 0x00改成了 0x00, 0x03, 0x00, 0x00,重启之后发现ioreg里的Max值变成了300,正是我修改的值。Min值一直没有搞定,我把pwn-info里的连续两个0x00都缓过来,Min还是0.


==========================================================================

说一下webDriver驱动怎么打的:
1、装webDriver前把S/L/E下的GeForce开头和NV开头的kext删掉
2、装完webDriver后,修改AppleGraphicsControl.kext,这个要根据自己设的机型来,参考这个帖子

  1. https://bbs.pcbeta.com/viewthread-1611506-1-1.html
复制代码

记得重建缓存,修复权限。
3、取消nv_disable=1,加上nvda_drv=1,重启






Rank: 5Rank: 5Rank: 5

UID
2008254
帖子
474
PB币
602
贡献
0
技术
22
活跃
423
发表于 2015-12-20 15:41:52 IP属地江苏 |显示全部楼层
我顶,太高深了,楼主,有没有高手出来说句话

Rank: 2Rank: 2

UID
859248
帖子
156
PB币
0
贡献
0
技术
0
活跃
197
发表于 2015-12-20 15:44:29 IP属地四川 |显示全部楼层
赚点金币,下载附件
头像被屏蔽

麦骨

Rank: 5Rank: 5Rank: 5

UID
19012
帖子
573
PB币
0
贡献
0
技术
1
活跃
155
发表于 2015-12-20 15:57:18 IP属地河北 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 16:03:29 IP属地浙江 |显示全部楼层
moonmetal 发表于 2015-12-20 15:57
楼主强大!我也发现mic是没有的……,不过我现在最头疼的是alc888声音是卡卡带破音的……不知怎么破啊

试试自己做仿冒声卡吧,可以看看这个帖子https://bbs.pcbeta.com/viewthread-1387094-1-1.html

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 16:06:07 IP属地浙江 |显示全部楼层
virjay 发表于 2015-12-20 15:41
我顶,太高深了,楼主,有没有高手出来说句话

一个大神都没召唤到……

Rank: 5Rank: 5Rank: 5

UID
2063847
帖子
727
PB币
72
贡献
0
技术
1
活跃
1360
发表于 2015-12-20 16:13:40 IP属地广东 |显示全部楼层
看看!!!!!

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 16:19:56 IP属地浙江 |显示全部楼层
补充一下ioreg部分的图,希望有高手帮忙,又搞了一上午,爬了各种贴……
按亮度调节的两个快捷键,brightness的value会变,但是屏幕亮度并没有变。
亮度调节的相关代码_BCL、_BCM等方法在SSDT的GFX0里,但是AppleBacklight是在PEG0下的PEGP里。有试过把显卡信息backlight-control等字段从DSDT里的PEGP下移动到GFX0下,但是重启之后出现禁止符,无法开机。


求个大神帮忙
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 20:49:37 IP属地浙江 |显示全部楼层
来个大神吧

Rank: 5Rank: 5Rank: 5

UID
2008254
帖子
474
PB币
602
贡献
0
技术
22
活跃
423
发表于 2015-12-20 21:01:14 IP属地江苏 |显示全部楼层
z7外放太垃圾,想改善一下,今天装了BOOM2,boom2反复卸载安装了几次,现在找不到输出设备,找不到输入设备了,我擦。。咋办啊

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-20 21:06:59 IP属地浙江 |显示全部楼层
virjay 发表于 2015-12-20 21:01
z7外放太垃圾,想改善一下,今天装了BOOM2,boom2反复卸载安装了几次,现在找不到输出设备,找不到输入设备 ...

用原版的AppleHDA重新打驱动把……或者用我上面给的试试。
另外,我发现realtekALC.kext是可以删掉的

Rank: 5Rank: 5Rank: 5

UID
2008254
帖子
474
PB币
602
贡献
0
技术
22
活跃
423
发表于 2015-12-20 22:45:43 IP属地江苏 |显示全部楼层
zjfg0228 发表于 2015-12-20 21:06
用原版的AppleHDA重新打驱动把……或者用我上面给的试试。
另外,我发现realtekALC.kext是可以删掉的

原来是忘记打补丁了。。

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-21 21:52:30 IP属地浙江 |显示全部楼层
怎么就沉了呢……

Rank: 2Rank: 2

UID
3312902
帖子
294
PB币
117
贡献
0
技术
0
活跃
1168
发表于 2015-12-21 23:54:11 IP属地陕西 |显示全部楼层
楼主内建显示器怎么弄的?能请教一下吗?我是gtx980m

Rank: 7Rank: 7Rank: 7

UID
3195259
帖子
1152
PB币
283
贡献
0
技术
27
活跃
694
发表于 2015-12-22 07:35:29 IP属地内蒙古 |显示全部楼层
这个我之前也是同样的阶段 问了Rehabman 也没得出实质进展。。。
另外问一下lz的hdmi音频是原声的能用吗w

Rank: 7Rank: 7Rank: 7

UID
3195259
帖子
1152
PB币
283
贡献
0
技术
27
活跃
694
发表于 2015-12-22 07:40:12 IP属地内蒙古 |显示全部楼层
zjfg0228 发表于 2015-12-20 16:19
补充一下ioreg部分的图,希望有高手帮忙,又搞了一上午,爬了各种贴……
按亮度调节的两个快捷键,brightn ...

bcm那些函数直接复制好像不妥吧?
你查查怎么从ssdt移植到dsdt

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-22 10:43:23 IP属地浙江 |显示全部楼层
loppol 发表于 2015-12-22 07:40
bcm那些函数直接复制好像不妥吧?
你查查怎么从ssdt移植到dsdt

HDMI没测过,应该不行。我的bcm函数没有动过的

Rank: 2Rank: 2

UID
3590418
帖子
330
PB币
31
贡献
0
技术
3
活跃
298
发表于 2015-12-22 10:45:04 IP属地浙江 |显示全部楼层
loppol 发表于 2015-12-22 07:40
bcm那些函数直接复制好像不妥吧?
你查查怎么从ssdt移植到dsdt

你的现在可以调亮度么?

Rank: 7Rank: 7Rank: 7

UID
3195259
帖子
1152
PB币
283
贡献
0
技术
27
活跃
694
发表于 2015-12-22 11:16:06 IP属地内蒙古 |显示全部楼层
zjfg0228 发表于 2015-12-22 10:43
HDMI没测过,应该不行。我的bcm函数没有动过的

我之前跟你一样 看了那个n卡小太阳的帖子
他说bcm bcl函数如果在dsdt是个前提
所以有过想把那些函数移植的念头
之前有个讨论移植的帖子 我看了一下没多关注
我之前问了rehabman 他给我的反馈是即使移植过去 能成功的概率不大
不过r神说对n卡研究不多
lz想多讨论的话可以接受我的qq请求w
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛