【黑蘋果教程】筆記本對DSDT/SSDT打補丁實現背光控制

Hail-Linux發表於2017-02-03

版權說明,本文參考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平臺的計劃。

所需資源

  1. IntelBacklight.kext:http://download.csdn.net/detail/wr132/9746608
  2. 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沒有應用這個補丁,它又可能在啟動的時候不能被順利載入。

相關文章