Jump to content
  • Announcements

    • Hervé

      April 2018: New Forum !   04/06/18

      We've migrated to an upgraded board and now have a new forum. We hope you'll like it. Whilst we took every step to ensure no loss of data and/or feature, we may have missed a few things and glitches may occur. Should you encounter a problem, please create a new thread in Feedback section of the forum, where we will endeavour to report on the follow-up until the issue is fixed. Thanks. OSXL Crew
black.dragon74

How to fix black screen in High Sierra

Recommended Posts

Hello friends,
Many of you have noticed that after upgrade to high sierra whenever you machine sleeps, be it a display sleep or a system sleep, the screen turns out fully white with garbled lines, or it might turn black with just the cursor moving. If you try and press few keys you will find out that the machine works but the display doesn't.
 
If you want to know a little background info, read on, else skip to fix.
 
On my ASUS R541UJ this bugged me a lot. I tried hell lot of things like, re patching DSDT, trying with all 15 ig-platform-id (for Kabylake), still, the issue persisted.
 
I also have an ASUS A555LA (which I am trying to make a perfect MacBook Air). So, in my process of making my A555LA a perfect MacBook I added a ALS (ambient light sensor device) and then, changed vendor-id along with product-id of the laptop's display to that of Apple's display i.e. PID: 0x9cf2 VID: 0x610 for MacBook Air's display..
 
Whatever I do on my A555LA, I replicate the same on my 2 other ASUS laptops. So, I did the same on my R541UJ (the one affected by this annoying bug)
 
And to my surprise, that issue was fixed! Then, I disabled the ALS device in my custom SSDT (I generally make a dynamic configurable SSDT that works for all my machines, See here) and that issue didn't come back.
 
So, I finally came to the conclusion that it was due to incorrect vendor-id and product-id of my display in IODisplayEDID or EDID.
 
Enough talking, let's see how you can fix this in a few simple steps.
 
How to fix:
In order to fix this, as you might already know from above, we need to change our display's product and vendor id to that of Apple's display.
 
There are 3 ways for this, Injecting custom EDID using clover, Using a display override, Using a custom override kext (DispalyMergeNub). I love CLOVER so will be covering that part of the fix in this guide. Also, injecting EDID with clover is preferred as it will also work when booting recovery partition. (Not the same with Display Overrides and DisplayMergeNub)
 
Update your CLOVER to latest version (nothing to do with this fix but is a good idea to have you boot loader up to date)
 
Download Darwin Dumper from here
 
Download FixEDID app from here
 
Download my script attached to this post.
 
Open Darwin dumper and uncheck everything except EDID. Then, select run from the left pane. It will dump your EDID and then it will open a folder where it dumped the files.
 
In the folder you will find an EDID folder. Upon opening it you will see 3 files namely, EDID.bin, EDID.hex, EDID.txt (All three files are your EDID dump except in different formats).
 
We need the one in BIN format for FixEDID.app
 
Copy EDID.bin from DarwinDump*/EDID to your Desktop (Dump* is the darwinDumper output folder)
 
Open FixEDID.app and select open EDID binary file. Choose the EDID.bin file you copied to desktop.
 
If you look below "Open EDID binary file" button, you will see a drop down menu saying "Apple iMac Display 16:10"
 
Select it and choose "Apple MacBook Air Display 16:9" (Note: You may try experimenting with different models, I personally use "Apple MacBook Air Display 16:9" on my A555LA and "Apple MacBook Pro Display 16:10" on my R541UJ)
 
Make sure display class is set to "AppleBacklightDisplay" for we are overriding our internal LVDS display. (AppleDisplay is used for external displays like that on HDMI or DP)
 
Click on Make button (Note: You won't see any sort of confirmation but the app has done it's work)
 
Close FixEDID and come back to your desktop. You will see a host of new files there. (3 files to be precise)
 
For this guide, you just need DisplayVendorID-xxx folder. Open it any then you will find a file named "DisplayProductID-xxxx"
 
Copy this file to the Desktop.
 
Now we need to extract EDID that is in base64 format and then convert it to HEX format as required by CLOVER.
 
Worry not, I got you covered. Now is the time to run my script.
 
Assuming my downloaded script is in Downloads folder, open terminal and type:
 

# Change working directory
cd ~/Downloads

# Make script executable
chmod a+x get_edid.sh

# Run and get EDID to inject
./get_edid.sh ~/Desktop/DisplayProductID*

`
This script wil give you EDID you need to inject using CLOVER, like:

term.jpeg
 
Copy that EDID and paste it in your config.plist under Graphics > EDID > Custom (You can use clover configurator as that will save you from manual PLIST editing which is not recommended for novice users)
 
Also, set Boolean Inject to True (YES) under config.plist > Graphics > EDID.
 
See below screenshots for reference:
 
Any Plist Editor(Xcode):
Screen Shot 2017-11-29 at 11.44.05 AM.png
 
Clover Configurator:
Screen Shot 2017-11-29 at 11.44.30 AM.png
 
Reboot and Voil

get_edid.zip

  • Like 7

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×