Contribute
Register

[Guide] Laptop backlight control using AppleBacklightFixup.kext

Here are my test results on this Kaby Lake system so far...

First, I follow post #1 as written (SSDT-PNLF, generic AppleBacklight patch, current AppleBacklightInjector.kext).
Then, I observe P profile is being selected (this is Kaby, so "F12Pxxxx"), brightness controls broken.
Next, change display-id with config.plist/Graphics/Inject/EDID/Inject=true, config.plist/Graphics/Inject/EDID/ProductID=0x9c7c.
Reboot.
I observe P profile is still selected (and I verified EDID patch was correct/successful), brightness still broken.
Next, remove the matching P profile from the injector kext (made F12Pxxxx -> #F12Pxxxx).
Rebuild cache and reboot.
Observe "F12TxxxxM" is selected. Brightness controls work.

Conclusion: Having "P" profiles present in the injector are helpful in identifying the P profile problem, but P profiles need to be removed from the injector to have a chance of selecting the T profile, even with patched EDID. All T profiles should probably remain in the injector kext. And clearly, certain configurations prefer the P profile if available.

I will conduct a few more science experiments later today to further nail down the behavior.
And hopefully, I can find a way to avoid patching EDID...
 
Last edited:
Here is 2 more set. I removed P profile from Kext and installed it.

First Set
======
Fixed EDID
First restart --> Default Profile
Fix kextcache second restart --> T Profile

Second Set
=======
Changed EDID back to original
Profile --> T Profile but brightness controls doesn't have any effect on brightness.

I think for successful brightness, EDID or productId must be changed and P profile must be removed. That is my conclusion.

Thanks for the test and provided results. It confirms my results in #261.
 
For my next science experiment, I followed from this scenario...
(eg. by guide, inject fake display-id, remove P profiles from injector)

First, I follow post #1 as written (SSDT-PNLF, generic AppleBacklight patch, current AppleBacklightInjector.kext).
Then, I observe P profile is being selected (this is Kaby, so "F12Pxxxx"), brightness controls broken.
Next, change display-id with config.plist/Graphics/Inject/EDID/Inject=true, config.plist/Graphics/Inject/EDID/ProductID=0x9c7c.
Reboot.
I observe P profile is still selected (and I verified EDID patch was correct/successful), brightness still broken.
Next, remove the matching P profile from the injector kext (made F12Pxxxx -> #F12Pxxxx).
Rebuild cache and reboot.
Observe "F12TxxxxM" is selected. Brightness controls work.

and then I changed config.plist/Graphics/Inject/EDID/Inject=false.
(eg. go back to native display-id)

Result: Working backlight, and still F12TxxxxM profile selected.

Conclusion: Patching display-id in EDID, at least on this system is not needed. Without P profile, the system selected a T profile, although it is an FxxTxxxxM profile. The original injector proposed by the guide didn't have this particular T profile (only FxxTxxxx). When I responded to that by adding all the profiles, including the P profiles, the system then selected an incompatible P profile instead of the desired T profile (M). Key is adding the other T profiles, but not having the P profiles...

Fix: Remove all P profiles from the injector. Then no EDID hacking required.

I will make the change (DONE), and we will test like that for a while...
 
Last edited:
Hello @RehabMan, how i can compile your kext?, i know your bitbucket but i would like compile your work
 
Hello @RehabMan, how i can compile your kext?, i know your bitbucket but i would like compile your work

What kext are you referring to?
With this guide, there is no kext to compile.
 
here is the report to get the P to T
 

Attachments

  • backlight.zip
    2.6 MB · Views: 82
Got Brightness control after installing applebacklight.kext using this guide:-
Native Brightness working without 'blinkscreen' using patched AppleBacklight.kext
before restart
Screen Shot 2017-04-07 at 11.21.54 PM.png
but after restart the brightness level goes back to higher.
Screen Shot 2017-04-07 at 11.24.23 PM.png
My dsdt & ssdts and config file
 

Attachments

  • config.plist
    9.9 KB · Views: 180
  • DSDT.aml
    67.2 KB · Views: 120
  • SSDT-1.aml
    14.1 KB · Views: 130
  • SSDT-2.aml
    13.3 KB · Views: 159
  • ssdt.aml
    1.7 KB · Views: 156
here is the report to get the P to T

I think you will have the same result if you follow post #1 as now written.

Changes from what you currently have:
- use AppleIntelBacklightInjector.kext as per post #1 (current version)
- remove patched EDID if you're using one (no way for me to know whether the EDID you're injecting is native or not)
 
Got Brightness control after installing applebacklight.kext using this guide:-
Native Brightness working without 'blinkscreen' using patched AppleBacklight.kext
before restart
View attachment 246827
but after restart the brightness level goes back to higher.
View attachment 246828
My dsdt & ssdts and config file

Off-topic.
The guide in post #1 is based on that original work, but is being refined to be simpler and to apply to more graphics hardware.
 
I think you will have the same result if you follow post #1 as now written.

Changes from what you currently have:
- use AppleIntelBacklightInjector.kext as per post #1 (current version)
- remove patched EDID if you're using one (no way for me to know whether the EDID you're injecting is native or not)

i don't see any changes that would be helpful as i have already tested that scenario yesterday and it did not work. i had disable more profiles to get to to regular T.

the EDID is the native EDID and also without it i lose qe/ci.

tell me onwhen you finally figure it out cause profile switching has been proven already in least 4 of many of my past reports. its done.
 
Last edited:
Back
Top