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

原帖: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驱动信息的配置文件。
如图所示:

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

 

将生成的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 的值设为

  1. 01140064 A8610000 1E020000 2C000000 00040000
复制代码

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

  1. 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到桌面,打开终端,运行:


  1. cd ~\Desktop
  2. ./gfxutil -i xml -o hex ./in.plist ./out.txt
复制代码


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

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

如图:




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


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



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

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

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


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

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



  1. Device (PNLF) {
  2.        Name (_HID, EisaId ("APP0002"))
  3.       Name (_CID, "backlight")
  4.       Name (_UID, 0x0A)
  5.       Name (_STA, 0x0B)
  6. }
  7. <!--EndFragment-->
复制代码


添加完后应该是这样的:



  1. Device (PNLF) {
  2.       Name (_HID, EisaId ("APP0002"))
  3.       Name (_CID, "backlight")
  4.       Name (_UID, 0x0A)
  5.       Name (_STA, 0x0B)
  6. }
  7. <!--EndFragment-->
  8. Device (PWRB) ......
复制代码


保存DSDT,重启进入系统。这时候大部分机器都已经可以调节亮度了。
按F14、F15调节,也就是普通键盘上的Scroll Locak和PauseBreak。
像我自己的机器,进行到这一步已经可以实现同步图标和亮度控制了。
如果还不能调节亮度的话,请打开IORegistryExplorer检测,在右上角输入back,如图
 

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




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

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

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

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


  1. Name (_HID, EisaId ("LCD1234"))<!--EndFragment-->
复制代码


通常添加后是这样的:


  1. Device (LCD){
  2.     Name (_HID, EisaId ("LCD1234")) //这一行必须添加 用以加载kext
  3.     Method (_DCS, 0, NotSerialized){ 
  4.           ....
  5.     }
  6. }<!--EndFragment-->
复制代码

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

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


展示一下我的机器:

修改前:


无亮度条

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


无睡眠前自动降低亮度


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




修改后:

 

 

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

你可能感兴趣的:(快速开启小太阳图标、解决显卡亮度调节。(适用于多种显卡驱动方式))