您的位置:首页 > 其它

【黑苹果教程】笔记本对DSDT/SSDT打补丁实现背光控制

2017-02-03 21:20 363 查看
版权说明,本文参考tonymacx86的[Guide] Patching DSDT/SSDT for LAPTOP backlight control

如果转载,请注明原文地址:http://blog.csdn.net/wr132/article/details/54849387

前言

注意:本教程主要使用于Intel HD Graphic系列显卡(HD3000—HD5000+,包括Skylake的HD5x0系列)。虽然本教程提供的某些kext或者补丁可能也可以用于其它情形下,不过那些情形并不是本教程研究的重点。

默认情况下,非苹果的DSDT没有必要让AppleBacklight.kext被加载。虽然你可以简单地添加一个PNLF device(使用”Brightness Fix”补丁)从而让它被加载,但这可能并不会正常工作。你有可能必须通过睡眠再唤醒才能让亮度调节生效,你甚至不能够使用所有的亮度等级。这是因为AppleBacklight.kext里面只包含了白苹果所需的配置文件,而且可能会有一些PWM的寄存器没有按照OS X预期的那样被BIOS初始化。

通过对DSDT进行简单地修改,就能解决睡眠之前亮度不能调节的问题;亮度等级缺失的问题也可以通过对AppleBacklight.kext打补丁(或者提供一个具有相同功能的injector kext)或者修改EDID来修复。但是以上方法仍然存在亮度调节没有顺滑过度的问题(原因不明)。

一个更加彻底的修复方式是使用ACPIBacklight.kext,然后对DSDT做一些更复杂的修改。

除此之外,还有一种使用标准PNLF补丁(”Brightness Fix”)的方法。在那个方法当中,需要使用IntelBacklight.kext,而不是ACPIBacklight.kext。相比之下,ACPIBacklight.kext更加灵活,因为它可以被用在IntelBacklight.kext无效的那些情形之下。

为了调节背光亮度,你首先要驱动自己的显卡,如果你发现系统动画很流畅,分辨率也正常,基本就表示你的显卡被正确驱动了,而且你必须使用snb-platorm-id或者ig-platform-id。另外,背光调节只对笔记本内部的LVDS显示器有效。

注意:推荐优先使用IntelBacklight.kext + “Brightness Fix”这种方法。因为IntelBacklight.kext更加快速,并且已经支持Skylake的集成显卡。ACPIBacklight.kext暂时没有支持Skylake平台的计划。

所需资源

IntelBacklight.kext:http://download.csdn.net/detail/wr132/9746608

ACPIBacklight.kext:http://download.csdn.net/detail/wr132/9746610

使用DSDT + IntelBacklight.kext

使用常规的方法对DSDT打补丁,详见http://blog.csdn.net/wr132/article/details/54798754

补丁可以在这里找到https://github.com/RehabMan/Laptop-DSDT-Patch

应用:”Brightness Fix”

注意:如果你愿意,”Brightness Fix”也可以应用在SSDT中。但你只能应用在一个文件中。这与针对ACPIBacklight.kext的补丁不同。

现在需要安装IntelBacklight.kext,可以在这里下载https://github.com/RehabMan/OS-X-Intel-Backlight。可以使用Kext Utility安装(http://download.csdn.net/detail/wr132/9745099

重启并测试。如果有效,你就不用考虑更加复杂的ACPIBacklight.kext了。对于绝大多数使用Intel集成显卡的笔记本,此方法都有效(事实上,对于任何使用ACPIBacklight.kext这种方法有效的笔记本,此方法都有效)。

使用DSDT + ACPIBacklight.kext

有两个不同的DSDT补丁。一个适用于Haswell之前的平台(Arrandale, Sandy Bridge/HD3000, Ivy Bridge/HD4000),一个适用于Haswell和Broadwell (HD4400/HD4600/HD5000+, HD5500/HD6000+)。

Haswell之前的版本:”Brightness Fix (HD3000/HD4000)”

Haswell/Broadwell: “Brightness Fix (Haswell/Broadwell)”

针对你的硬件打上适当的补丁。补丁必须被应用在定义集成显卡的那个文件(DSDT/SSDT)中。如果是Intel的硬件,你只需要搜索”Name (_ADR, 0x00020000)”就可以确定集成显卡被定义在哪个文件。显卡设备通常被命名为GFX0,所以搜索”Device (GFX0)”也是一种有效的方法。

注意:通过把LMAX设置为Zero,你可以让补丁在启动的时候访问BIOS的寄存器。这样可以在启动的时候清除外部存储器,这样对某些笔记本可能更好(_BCL表会根据需要被自动测算)。

ACPIBacklight.kext

要实现完整的亮度控制以及渐变效果,你需要安装ACPIBacklight.kext。

可以在这里下载https://github.com/RehabMan/OS-X-ACPI-Backlight

IGPU电源管理

通常在修复亮度控制的时候可以顺便修复IGPU的电源管理。要实现它,需要将”Rename GFX0 to IGPU” 应用到所有DSDT和SSDT。如果有一个与IGPU相关的SSDT没有应用这个补丁,它又可能在启动的时候不能被顺利加载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息