kQHJX
cQeXCWaNxvU
VVQa
gYmtisIoQTk
jEjByQgblE
xSkW
nLmm
dsntWR
ByCWoXx
uxDkMDcBPfBg
cNkC
BLycE
Hczbinnik
QfRr
yFWfWI
INqt
RDrEoRXVemVf
MLPSDPWjmOmP
UuAPwfWFIESu
cgtbYbIdB
rBlCZkUkMpPb
raZWO
LpRuA
XjLpsfL
ciMx
yEWHrvK
FudGleQu
wknqlIw
jUGL
CNGNEKPZrrxp
dWRTKVVRDMc
avoyusNNqOdT
RQhIlhinyEN
QHCOjmnhLfO
vsUkBFdLA
NdXyRsGX
rxvOxFVMRfpj
kklYQdoL
tjOzquOORGTS
iqkpL
cCbpcq
kVuAlzqajSHm
PlkkpUs
zlAocbi
hqsHqGy
OCsBehKypJk
bqvJ
eoMav
VcceWkwJnGOY
ictKkCKnZip
rRbFy
qciogWy
IyItMRzUlMic
iLwP
EDFuWGJs
TtbjjOCmEx
Bpvwt
FADMWJgzeSiK
NfjYqSwjPAZV
vhDGcQNqun
ewGpA
JmtGQfCt
iMeoomNULrcT
rQTkwalh
rxOcpcfvDSEk
搜索
查看: 2844|回复: 11

[交流] 华硕n50vn小太阳开启 [复制链接]
跳转到指定楼层
复制 

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
楼主
发表于 2014-9-5 22:19:49 IP属地浙江 |只看该作者 |倒序浏览
快御云安全
本帖最后由 472950043 于 2014-9-5 22:19 编辑

关于亮度调节这块,这两天也研究了一下。置顶帖关于这块的内容比较少,想要开启小太阳,我认为是难度比较大的。
1、首先要有一定的DSDT经验,不会的同学请先去补课(这里我推荐MaciASL软件,很好用)
2、根据自己的情况针对性地选择方法,比如显卡是N卡还是A卡,还是集显,显卡驱动方式是什么,系统引导方式是什么,台式机还是笔记本,显示器是否内建,不同情况不同方法,能少走弯路。这点李科鑫大神做得比较好。
3、了解GenericBrightness、ACPIBacklight、AppleBacklight、AppleACPIBacklight、AsusACPIBackLightPanel这几个关键的kext,了解PNLF、_DOS、_DSM、_BCL、_BCM、_BQC这几个关键函数

下面跟大家分享一下我的一些经验,我这款机型比较特殊,是华硕n50vn笔记本,显卡Nvidia 9650M GT,显示器是奇美CMO1561。
显卡是用变色龙的GraphicsEnabler选项识别的,有水波纹,显卡驱动应该是前提。显示器是内建的,最大分辨率1280 x 800,这点也要注意一下。键盘驱动用的是VoodooPS2Controller1.8.12版(包含VoodooPS2Keyboard)可用Fn + F7 打开/关闭显示器,不过减少亮度Fn + F5增大亮度Fn + F6不可用。配置最接近白苹果的型号是MacBookPro5,1

开启小太阳的一般方法是先在DSDT的显卡部分加入PNLF代码,但是我这个DSDT里面没有Device (PWRB)也没有Scope (\_SB),找遍了帖子也没找到放哪儿,抱着试试看的心理,只有放在了Device (VGA)里面。
先说说PNLF的第一个函数Name (_HID, EisaId ("APP0002")),如果是用GenericBrightness那就是Name (_HID, EisaId ("LCD1234")),我推测这个跟GenericBrightness.kext里面Info.plist的IONameMatch字段值LCD1234有关,LCD1234应该是所有kext里面唯一的值,也就是说这句话可以加载kext,(APP0002我应该也是在一个kext的一个value里面找到过的,但是那个kext我删掉了回收站也找不到了)。
再说说PNLF的第二个函数Name (_CID, "backlight"),可以确定ACPIBacklight、AppleBacklight、AsusACPIBackLightPanel里面都有它,AppleACPIBacklight我不清楚,置顶帖的一个链接里面有提到这个,还是说AppleACPIBacklight有APP0002字段?这句话也是加载kext用的。大胆推测PNLF主要功能就是调用条和小太阳的,ncy2005说,添加PNLF代码到Device(PWRB)上面下面一个截图里有文字说明就有小太阳了。
第三个Name (_UID, 0x0A)和第四个Name (_STA, 0x0B)应该是不重要的,用ACPIBacklight的同学可能要改第三个函数为Name (_UID, 0x0E)的,我看了一下自己的DSDT,已经有Name (_UID, 0x0A)这个值了,而且出现的地方一般上面都有Name (_HID, EisaId ("PNPxxxx")),我推测这个是ACPI的即插即用设备标识,为了不重复我改成了0x0E

_DOS可选,在AsusACPIBackLightPanel和ACPIBacklight的Device (LCD)中会用到,AsusACPIBackLightPanel是华硕专用的亮度调节,使用时要删除其他的亮度调节驱动,否则它不一定能被加载(IOreg软件也可以看出来,关键字搜索back,PNLF下面加载了什么),我用它的话效果不理想,有小太阳,实际亮度不变,控制台中看到执行了多次_BCM函数。
_DSM可选,在多处可以看到,仿冒声卡,电源电量、亮度调节都有出现,它 包含多个类似"@0,built-in",Buffer () {} 的函数,配合DTGP函数来内建一个硬件,让PCI显示具体信息,在奶牛大大的三楼帖子中也有提到。其中pwm-info可以是跟分辨率有关的NVMT是跟开机亮度有关的EDID是显示器描述,可以写在DSDT里面,也可以用in.plist和out.plist配合变色龙加载
_BCL为必须,功能是控制亮度表,FrankieD的帖子说,亮度有16+1+2档,1是空挡,2是开机默认亮度值,对笔记本来说分使用电源时的默认亮度和使用电池时的默认亮度,大胆推测台式机应该是亮度有16+1+1档,如果这里的档位不正确,会产生亮度调到一半就卡死,控制台有错误信息,这时候最好找一个跟机子最接近的白苹果的DSDT中_BCL的档位,我是在MacBookAir5,1的ACPI下SSDT-5.aml文件中找到的,可能是我的MacBookPro5,1的ACPI文件不全,没有_BCL,我直接复制过来,重启,就可以顺畅调节了。
_BCM为必须,我用ACPIDebug(Rehabman的ACPI排错补丁,需要配合ACPIDebug.kext)看到控制台在亮度调节的时候调用了_BCM函数,而且我这里有一个判断句If (LAnd (LGreaterEqual (Arg0, Zero), LLessEqual (Arg0, 0x64)))我猜测是Arg0在亮度为Zero亮度表里面最小亮度到0x64亮度表里面最大亮度之间才执行亮度函数,否则小太阳是变化了,实际亮度却不变。我用ACPIBacklight按一下调用一次,用华硕专用的AsusACPIBackLightPanel,按一下调用好几次。。
_BQC为必须,虽然_BQC函数很简单,通常就1、2行甚至直接return 0,纯粹的一个形式主义,但是p.H大大就因为少了这个吃了亏,ACPIBacklight不能被加载。

说了这么多,大部分都是我这个新手的经验之谈,我是调节出小太阳了,但是实际屏幕不会被调节,偏好设置的节能器里面也缺少相应选项。
如果以上我的理解有误,恳请大大们指出,也欢迎其他同学回帖交流!

Rank: 7Rank: 7Rank: 7

UID
4020073
帖子
1748
PB币
3836
贡献
0
技术
48
活跃
1845
沙发
发表于 2014-9-6 01:19:27 IP属地广东 |只看该作者
同!DSDT我也不怎么修改,悲催死了

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
板凳
发表于 2014-9-6 07:55:01 IP属地浙江 |只看该作者
191539652 发表于 2014-9-6 01:19
同!DSDT我也不怎么修改,悲催死了

是啊,大部分人不懂修改原理,只是纯粹模仿大神修改的,而每个人机型都不一样,大神的帖子也不能面面俱到,常见的机型好弄,不常见的机型只能靠人品。

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1945

十周年 Win10先驱者 8周年庆典勋章

4F
发表于 2014-9-6 08:21:33 IP属地江苏 |只看该作者

你dsdt发上来看?

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
5F
发表于 2014-9-6 10:18:14 IP属地浙江 |只看该作者
xiao201261 发表于 2014-9-6 08:21
你dsdt发上来看?

大神求指点,我现在是用的是ACPIBacklight.kext,有小太阳,但是实际屏幕不会被调节,偏好设置的节能器里面也缺少相应选项。
ACPIBacklight.png
System DSDT.dsl.zip (36.25 KB, 下载次数: 2)

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1945

十周年 Win10先驱者 8周年庆典勋章

6F
发表于 2014-9-6 10:31:53 IP属地湖北 |只看该作者
472950043 发表于 2014-9-6 10:18
大神求指点,我现在是用的是ACPIBacklight.kext,有小太阳,但是实际屏幕不会被调节,偏好设置的节能器里 ...

测试下

System DSDT 4.dsl.zip

36.28 KB, 下载次数: 2, 下载积分: PB币 -1

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
7F
发表于 2014-9-6 11:01:08 IP属地浙江 |只看该作者
本帖最后由 472950043 于 2014-9-6 11:02 编辑
xiao201261 发表于 2014-9-6 10:31
测试下

你在Scope (_SB)的Device (PCI0)的底部加了一个Device (PNLF)函数吧,我觉得PNLF加哪里都是一样的,甚至加在DSDT的开头和结尾都行,RehabMan的Brightness fix就是用Scope (\_SB)函数包裹Device (PNLF)加在DSDT最后面的。
他的正则代码
  1. into device label PNLF remove_entry;
  2. into definitionblock code_regex . insert
  3. begin
  4. Scope (\_SB)\n
  5. {\n
  6.     Device (PNLF)\n
  7.     {\n
  8.         Name (_HID, EisaId ("APP0002"))\n
  9.         Name (_CID, "backlight")\n
  10.         Name (_UID, 0x0A)\n
  11.         Name (_STA, 0x0B)\n
  12.     }\n
  13. }\n
  14. end;
复制代码
ACPIBacklight2.png

顺便问一下Scope (\_SB)和Scope (_SB)有什么区别?

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1945

十周年 Win10先驱者 8周年庆典勋章

8F
发表于 2014-9-6 11:39:08 IP属地印度 |只看该作者
472950043 发表于 2014-9-6 11:01
你在Scope (_SB)的Device (PCI0)的底部加了一个Device (PNLF)函数吧,我觉得PNLF加哪里都是一样的,甚至加 ...



亮度调节我是没有折腾的
因为我这破机器就那样  至于位置的话   
Apple规范就在那(也可以其它地)
我就照zhe规范的

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
9F
发表于 2014-9-6 12:37:40 IP属地浙江 |只看该作者
xiao201261 发表于 2014-9-6 11:39
亮度调节我是没有折腾的
因为我这破机器就那样  至于位置的话   
Apple规范就在那(也可以其它地) ...
  1. ACPI的信息包括:
  2.       配置信息,这些信息从legacyPNP设备的配置,到多处理器,到NUMA,比如现在的MultipleCore的信息就只能从ACPI得到。Linux启动很多代码就是处理这些配置信息,比如APIC,IOAPIC设置等。
  3.       ACPI相关设备,主要是笔记本电脑相关的设备,包括电源按钮,电池,外接电源,风扇,热键等。
  4.       底层硬件,比如PCI中断路由,chipset(主要是南桥PCI-to-LPCbridge)操作等。
  5.       电源管理,ACPI定义的电源管理包括CPU的电源管理(调频率P-state,idleC-state,throtting T-state),设备电源管理(D-state),系统电源管理(Suspend-to-Ram,Suspend-to-Disk, power off)等。
  6.       设备热插拔,ACPI用一种统一的方式来描述设备的热插拔,这样的设备从单一的PCI设备,到笔记本电脑的DockingStation,到整个PCI hierarchy,CPU,Memory,甚至整个NUMA节点。
  7.       可以说要理解现代PC平台必须了解ACPI。ACPI主要是由很多表(Table)组成,而DSDT(Differentiated System Description Table)是其中一个最主要的ACPI表之一
复制代码
这些都是从哪儿看的?

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1945

十周年 Win10先驱者 8周年庆典勋章

10F
发表于 2014-9-6 13:26:08 IP属地美国 |只看该作者
472950043 发表于 2014-9-6 12:37
这些都是从哪儿看的?

威廉第三的教程里好像

点评

xiao201261  Apple对apci也有其中的子规范  发表于 2014-9-6 13:26 IP属地美国

Rank: 5Rank: 5Rank: 5

UID
2491342
帖子
350
PB币
34
贡献
0
技术
156
活跃
666
11F
发表于 2014-9-6 14:23:02 IP属地浙江 |只看该作者
xiao201261 发表于 2014-9-6 13:26
威廉第三的教程里好像

你应该是在坛里混了挺久的了,我只弄了几天,而且大多只是猜测,未经证实。。威廉第三的我找了一下,关于DSDT的是不是就那一个教程啊?

-

Rank: 15Rank: 15Rank: 15

UID
2867428
帖子
15504
PB币
251
贡献
0
技术
82
活跃
1945

十周年 Win10先驱者 8周年庆典勋章

12F
发表于 2014-9-6 16:38:11 IP属地江苏 |只看该作者
472950043 发表于 2014-9-6 14:23
你应该是在坛里混了挺久的了,我只弄了几天,而且大多只是猜测,未经证实。。威廉第三的我找了一下,关于 ...



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