您的位置:首页 > 其它

快速开启小太阳图标、解决显卡亮度调节。(适用于多种显卡驱动方式)

2013-05-20 21:36 691 查看
原帖:http://bbs.pcbeta.com/viewthread-830940-1-1.html

本教程仅适用于笔记本用户,尚未对台式机进行测试。该功能与显示器有关。

笔记本用户可先检测自身DSDT是否含有BCL、BCM、BQC这三个字段。

如果存在,那么肯定是确切可行的。不存在的话也可以通过以下述方式A进行尝试。

在这里,我还得先感谢weizh126的帖子理论上完美解决N卡亮度调节问题,我的解决方式也是从该帖获取到的思路。

适用于以下枚举的几种显卡驱动方式:

1、可通过开启Chameleon的GraphicsEnabler选项识别并驱动的显卡。

2、可通过提取bios.rom识别驱动的显卡。

3、可通过EFI-String驱动的显卡。

4、可通过修改DSDT驱动的显卡。

开始操作前,请先下载该压缩包,里面包含可能需要使用到的工具。

http://u.115.com/file/f58f309da1#需要用到的工具.zip

可分为两种方式来完成我们的工作。

A、使用EFI-String驱动显卡、添加pwminfo、设置显示器内建、开启背光控制功能,修改DSDT添加PNLF信息。

B、修改DSDT来完成全部操作。

方式A适合显卡驱动方式1、2、3的用户,本文所讲的则是该方式;

方式B适合于显卡驱动方式4的用户,可由此点此进入传送阵

PS:请安装合适的软件修改plist文件,如PlistEditPro。

通过上述第1、2种方式完成显卡驱动的同学,请解压出PrefPanel.zip,这是变色龙的偏好设置程序。

snow leopard用户请安装Chameleon-Snow,leopard用户则请安装Chameleon-Leo。

从“系统偏好设置”进入变色龙控制面板,在EFI inject选项点击current GFX injection,获取当前显卡EFI String驱动信息的配置文件。

如图所示:







将生成的plist文件保存到桌面,命名为in.plist,若in.plist存在vbios项,请将该节点删除,不然可能无法启动。

使用EFI-String驱动的朋友,请找出你当初***EFI-String显卡驱动时编辑的in.plist。

打开in.plist,添加两个子节点,@0,backlight-control、@0,pwm-info。(数据类型为data)

@0,backlight-control = 01000000

@0,pwm-info 的值设为

01140064 A8610000 1E020000 2C000000 00040000

复制代码

若是分辨率为1280*800,可以尝试使用这个值:

01140064 78690000 08520000 01000000 00040000

复制代码

如果是之前使用EFI-String驱动的朋友,还需要添加

(数据类型为string)

@0,built-in = 0x01

这个参数的作用是让显示器识别为内建。

添加后应该是这样的:



我的还添加了EDID、NVMT参数,这两个参数是可以忽略的。

之前我认为这两个参数也需要使用mac的原生参数,后面多次试验得出结论:

EDID记载了显示器的全部信息,大家可以在windows注册表中获取到自己显示器的参数,使用自己的参数可以获得更好的显示效果。

NVMT记载了屏幕控制相关参数,包括如何设定开机亮度值都是与NVMT值有关,这个大家可以参照我另一个帖子。

设置开机亮度:http://bbs.pcbeta.com/thread-830707-1-1.html

保存in.plist,解压gfxutil到桌面,打开终端,运行:

cd ~\Desktop

./gfxutil -i xml -o hex ./in.plist ./out.txt

复制代码

这般会生成一个out.txt的文本,文本记载的代码就是EFI-String编译后的内容。

打开Extra\com.apple.boot.plist,建立device-properties节点,值就是刚刚生成的out.txt里面的一堆代码。

如图:



之前使用EFI-String驱动的同学,替换掉原来的值就可以了。或者直接使用变色龙控制面板添加,如图:



使用变色龙驱动的同学,别忘记删除GraphicsEnabler选项。

重启,进入系统,如果能够正常驱动显卡,那么恭喜你,你已经成功一大半了。

如果无法进入系统,请仔细检查代码,按照我上述方式再次操作。

现在该为DSDT添加一段代码,打开背光控制功能。

将这段代码放到Device (PWRB) 上面。

Device (PNLF) {

Name (_HID, EisaId ("APP0002"))

Name (_CID, "backlight")

Name (_UID, 0x0A)

Name (_STA, 0x0B)

}

<!--EndFragment-->

复制代码

添加完后应该是这样的:

Device (PNLF) {

Name (_HID, EisaId ("APP0002"))

Name (_CID, "backlight")

Name (_UID, 0x0A)

Name (_STA, 0x0B)

}

<!--EndFragment-->

Device (PWRB) ......

复制代码

保存DSDT,重启进入系统。这时候大部分机器都已经可以调节亮度了。

按F14、F15调节,也就是普通键盘上的Scroll Locak和PauseBreak。

像我自己的机器,进行到这一步已经可以实现同步图标和亮度控制了。

如果还不能调节亮度的话,请打开IORegistryExplorer检测,在右上角输入back,如图




只要brightness的最大值不为0,那你就不用急,继续往下面看。

----------------------------------分割线----------------------------------

这一步将会需要用到压缩包内的kext,该kext在切换分辨率时可能会导致五国。

一般笔记本的显卡都在P0P1、P0P2、P0P3这种节点下。

包含显卡信息的P0P地址设备,一般都有Device (LCD)。

在每一个Device (LCD)内的第一行添加

Name (_HID, EisaId ("LCD1234"))<!--EndFragment-->

复制代码

通常添加后是这样的:

Device (LCD){

Name (_HID, EisaId ("LCD1234")) //这一行必须添加 用以加载kext

Method (_DCS, 0, NotSerialized){

....

}

}<!--EndFragment-->

复制代码

添加好后,再次保存DSDT。将提供的GenericBrightness.kext放到Extra\Extensions目录下,-f重启。

至此,大部分机器应该都已经可以实现亮度调节了。

展示一下我的机器:

修改前:

无亮度条



无睡眠前自动降低亮度



修改后:







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: