Jump to content

Fixing Scrambled,Stretched, or Wrong Resolution Laptop Display Problems


CharredPC
 Share

123 posts in this topic

Recommended Posts

Some progress here)
I have successfully avoid problem of 16bit colors
I'm using Clover bootloader

So the recipe is:
Try to injecting EDID with clover, I have found that an editing DisplayProductID-717 causes wrong definition of LVDS. OS X shows it as an external display.
For this you must delete or return original DisplayProductID-717
And configure clover <key>CustomEDID</key> with your EDID
then
<key>InjectEDID</key>
<string>Yes</string>

That's it. This solves my problem with correct connectors and 16bit colors(gradients) on my ATI 5470m

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
  • 4 weeks later...

Hi guys, am facing one issue on my VAIO laptop: the internal display isn't detected on OS X, i've read all this post searching something similar. My question is: can i fix this issue injecting internal display EDID?

Gracias

Link to comment
Share on other sites

  • 2 months later...

Intel HD 4000 on Lenovo Y480, Mountain Lion:

 

Hey can you write a tutorial for installing Mountain Lion on Y480? My friend have lenovo Y480 also, with i7 3630QM, but never got QE enabled. If the graphics Injector option in clover is set to on, the laptop boots to an external display(and the display is scrambled). If the inject EDID and graphics injector option is set to on, laptop boots into a white screen with black lines in it. If the custom EDID key is specified in clover config.plist(with the injectEDID and graphic injector options on), then it simply boots as if graphics injector is off(no QE CI and normal resolution) How did you get there?

 

Thank you very much.

Link to comment
Share on other sites

  • 4 weeks later...

why all of this tutorial is not working for me? i cant get my edid. in windows. i use every apps i can. but still cant detect my display info. i also tried the linux process but still dont have edid. there is a error about "not trusted info"

Link to comment
Share on other sites

  • 1 month later...

Hello

Thank you for this useful topic.

 

I have a problem with my HD 4000, Samsung NP550P5C , 1600x900

 

I followed this guide and i noticed i can get picture only using 01660003, but it was scrambled and i could see only 50% of my desktop)

screen-shot

 

Then i used doual-link patch and i get full picture , (using 0166000this time! 01660003 does not work and its like it doesnt detect doul-link).

 

BUT the problem is that i see a lot of Blue and green (sometimes red) pixels flickering and sparkling on my monitor :( also whole screen is darker than normal)

 

here you can see sparkling pixels :

 

http://oi43.tinypic.com/xo2oeb.jpg

 

http://oi42.tinypic.com/qntqa9.jpg

 

I dont now how to fix this issue, i used this topic and forced my EDID , but nothing changed.

 

Any idea please? whats my problem and how can i try to fix it?

Any help greatly appreciated.

 

regards

Link to comment
Share on other sites

  • 1 month later...

First of all i would like to thank CharredPC for the usefull information about edid override procedure. I have an fujitsu-siemens amilo li 2735 with intel gm965 (x3100) and i was having problems with black screen. I've patched my dsdt (my video section is gfx0) with the following code:

Method (_DSM, 4, NotSerialized)
                {
                    Store (Package (0x30)
                        {
                            "device_type", 
                            Buffer (0x08)
                            {
                                "display"
                            }, 
                            "model", 
                            Buffer (0x0D)
                            {
                                "X3100"
                            }, 
                            "AAPL,HasPanel", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL,SelfRefreshSupported", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL,aux-power-connected", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL,backlight-control", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL00,blackscreen-preferences", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x08
                            }, 
                            "AAPL01,BacklightIntensity", 
                            Unicode ("d"), 
                            "AAPL01,blackscreen-preferences", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x08
                            }, 
                            "AAPL01,DataJustify", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,Depth", 
                            Unicode (" "), 
                            "AAPL01,Dither", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,DualLink", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,Height", 
                            Buffer (0x04)
                            {
                                 0x20, 0x03, 0x00, 0x00
                            }, 
                            "AAPL01,Interlace", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,Inverter", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,InverterCurrent", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,InverterFrequency", 
                            Buffer (0x04)
                            {
                                 0x08, 0x52, 0x00, 0x00
                            }, 
                            "AAPL01,LinkFormat", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,LinkType", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,Pipe", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,PixelFormat", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }, 
                            "AAPL01,Refresh", 
                            Unicode (";"), 
                            "AAPL01,Stretched", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00
                            }
                        }, Local0)
                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                    Return (Local0)
                }

The important thing in this patch is that if you have your resolution smaller then 1280x800 you should have :

"AAPL01,DualLink", 
                            Buffer (0x04)
                            {
                                 0x00, 0x00, 0x00, 0x00

If your screen resolution is higher you should use:

"AAPL01,DualLink", 
                            Buffer (0x04)
                            {
                                 0x01, 0x00, 0x00, 0x00

After i applyed the edid override procedure all things were good. I used another laptop and connected with vnc viewer to my laptop and modified the edid file. 

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

Hi, Anyone please help me to enable HD5650M, 

I have installed Iatkos ML2 (Mountain Lion)

 

Now i have generated my edid, and added in osx as per the guide. now i restered with GE=Yes and AtiConfig=Hoolock. the monitor screen is black. So i have attached extra monitor to fix resoluion. 

I tried to change resolutions from 1 to another and all of a sudden one of them did work, and the screen is appeared, but its very much blurred, scrambled. Like watching 3d without glasses. 

 

How i fix this issue. i am unable to solve it. please help me. 

Link to comment
Share on other sites

  • 1 month later...

hi

I have T520 2520 with integrated HD3000 only, and 1920x1080 lcd

On 10.6 was ok, I was able to use 1280x1024 by use command graphics mode, default was 1024x768

On 10.7,10.8 and 10.9 the picture is as mentioned above.

I tried "graphics enabler=no" with no resoult

Thanks for any advice

post-1295729-0-56278600-1392198663_thumb.jpg

Link to comment
Share on other sites

  • 2 weeks later...

 my GraphicsCard :AMD Radeon HD 6570M

 

everything works, full graphics acceleration, but I can't control brightness because the display0 is detected as AppleDisplay in ioreg.

 

when I first added device id to ATI5000Controller.kext my laptop screen got dark after reboot using Eulemur personality

then I injected the edid through your guide and it worked .. but recognised as a VGA display 

DisplayProductID-717 :(also attached)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>DisplayProductID</key>
    <integer>1815</integer>
    <key>DisplayProductName</key>
    <string>Color LCD</string>
    <key>DisplayVendorID</key>
    <integer>1970170734</integer>
    <key>IODisplayEDID</key>
    <data>AP///////wAw5KwCAAAAAAAUAQOAIhN4CsElnV9bmycZUFQAAAABAQEBAQEBAQEBAQEBAQEBEhtWeFAADjAgICQAWMIQAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAA/gBMRyBEaXNwbGF5CiAgAAAA/gBMUDE1NldIMi1UTFFCAME=</data>
</dict>
</plist>

 

note : even with this file ... and the working screen .. I can't fine IODisplayEDID in ioreg but switchresX was able to extract it.

 

 

I tried patching the Eulemur personality which I'm using but with no luck ... this time no displays are detected.

my radeon bios decoded



Connector Object Id [14] which is [LVDS]
    encoder obj id [0x1e] which is [INTERNAL_UNIPHY (osx txmit 0x10 [duallink 0x0] enc 0x0)] linkb: false
Connector Object Id [12] which is [HDMI_TYPE_A]
    encoder obj id [0x20] which is [INTERNAL_UNIPHY1 (osx txmit 0x21 [duallink 0x1] enc 0x3)] linkb: true
Connector Object Id [5] which is [VGA]
    encoder obj id [0x15] which is [INTERNAL_KLDSCP_DAC1 (osx txmit 0x00 enc 0x10?)] linkb: false


==========================================================================================


Connector at index 0
    Type [@offset 45278]: LVDS (7)
    Encoder [@offset 45282]: INTERNAL_UNIPHY (0x1e)
    i2cid [@offset 45352]: 0x96, OSX senseid: 0x7
Connector at index 1
    Type [@offset 45288]: HDMI-A (11)
    Encoder [@offset 45292]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 45375]: 0x90, OSX senseid: 0x1
Connector at index 2
    Type [@offset 45298]: VGA (1)
    Encoder [@offset 45302]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 45402]: 0x97, OSX senseid: 0x8

============================================================================

the patched personality 

02 00 00 00 40 00 00 00 09 01 00 00 10 00 01 07 //LVDS
00 08 00 00 00 02 00 00 00 01 00 00 21 03 02 01 //HDMI
10 00 00 00 10 00 00 00 00 01 00 00 00 10 03 08 //VGA
 

I attached anything relevant ...

Any help would be appreciated ... Please heeeelp!

AMD Radeon HD 6570M.zip

Link to comment
Share on other sites

  • 2 weeks later...

I tried this and it works. But the only thing i am not getting at all is that whenever i use GraphicsEnabler=Yes, my laptop's diplay goes black/blank and shows nothing.


i somehow managed to capture the screenshot from the TightVNC acessing from the other pc.


In the Screenshot u'll see that it is recognized by the system, and also the graphics memory but there's no Display shown in the System profiler.


 


Please tell me what should i do to make the laptop screen working.


Link to comment
Share on other sites

  • 1 month later...

Using this procedure to fix a Mavericks installation on a Lenovo T510.

 

Question:  I cannot boot into the installer, but I can boot into 10.8.5 which is on the current internal hard drive.

Will this work to get the proper value for the EDID, or do I need to somehow get into Mavericks, would it change between system versions?

 

10.8.5 works great on this machine, QE/CI and everything.  Just 10.9 boots into garbage screen, or stays in console mode (no GUI).

Link to comment
Share on other sites

  • 3 weeks later...

Hello I have issues with my STUDIO XPS 1640 (2009 MODEL) with Mobility Radeon 4670.It doesnt matter if I inject custom EDID or not the result is the same I get displaced pixels, before I fot 4 screens with displaced horizontal lines but after i set DualLink to 0 I get only one screen with displaced pixel lines.I used chimera chameleon and clover with every combination there is , same result.I do get QE/CI to work though and correct 1600x900 resolution but scrambled like this: Anyone ?Please help me.

poz%25C4%2583+%25281%2529.JPG

Link to comment
Share on other sites

  • 3 weeks later...

So I thought maybe my EDID changed sometime after boot since it's the EDID is the same when the screen is scrambled and when it's normal, but that wasn't the case. So I still don't have any solution to my own problem.

 

If anyone is interested, here's a script I made to make the system report the EDID to the system log so you can view it in the Console (the OS X app). It'll read the screen's EDID continuously every 10 seconds after boot and put it inside the system log. So after installing it you'll be able to find out when it's scrambled and when it's not, or if it changes during or after boot (most likely not).

 

Usage:

 

- Use the terminal to cd into the "readedid" folder you downloaded.

- Write "sh install.sh" without the quotes.

- Write your password to give root access.

- Reboot until it's scrambled

- Reboot again until it's normal and compare all the EDIDs that's located in the console (search for "IODisplayEDID") and you'll most likely see two different EDIDs getting reported. The one that isn't being reported right now while the screen is normal is probably the faulty one.

 

Remember to uninstall it (do the first three steps as above, just with "uninstall.sh" instead) after you got all the information you need and reboot, otherwise it'll continue to report the EDID to the console every 10 seconds, even when you don't need it.

 

You can obviously read what the source code does by opening the files inside a text editor.

 

While my experiment didn't bear fruit for me, at least I practiced my bash scripting. Good luck everyone, hopefully someone will have use of this!

readedid.zip

Link to comment
Share on other sites

  • 4 months later...

Hello,

 

I think this post is very old but it kind of describes my problem. The hackintosh works okay under inte hd 4000 (with nvidia 720) only when connected to HDMI. if no HDMI connected I receive black screen.

 

I've been fighting for some days with this but so far I think I have arrived to a bad end.

 

So I got my EDID from windows:

00FFFFFFFFFFFF0030E4DB030000000000160103802313780A05F594585692281E505400000001010101010101010101010101010101FB1D56FC500016303020350059C210000019000000000000000000000000000000000000000000FE004C4720446973706C61790A2020000000FE004C503135365748332D544C54310006

 

I can only use ioreg -l connected to HDMI and then, the information provided doesn't come from the monitor from laptop, but from the HDMI monitor.

 

On top of that it seems that some data that I retrieved from windows is not accurate and may have wrong endian (Bytes seem to be ordered different) than in Mac.

 

At this point I'm stuck and I think I can't move forward by myself. Any suggestion?

 

I'm new to this forum and still learning a lot I sufferedto set up hackintosh in order to be able to use xcode without using VMWare. Any help will be more than welcome

Link to comment
Share on other sites

Hello,

I reviewed all my parameters from the UID but I still get the same result, when I restart I get a black screen.

 

LG
EDID: 00ffffffffffff0030e4db030000000000160103802313780a05f594585692281e505400000001010101010101010101010101010101fb1d56fc500016303020350059c210000019000000000000000000000000000000000000000000fe004c4720446973706c61790a2020000000fe004c503135365748332d544c54310006
Manufacturer:0x30e4[12516]
Product Id: 0x03db[987]
appledisplay-30e4-987
 
I think I'm about to drop the towel... any idea about what else I can try?
 

Regards,

Oscar

Link to comment
Share on other sites

Third update :)

 

I have put the configuration following the tutorial but still I get a black screen.

 

Now I played with the options of clover and I removed the inject graphics HD 4000, and now it "works", I can see screen but only on low resolution 1024x780. And there seems to not be an easy way to change it.

 

After this, I start to believe the the problem comes more from the Graphic driver than from the screen... therefore I will try to open a new post on the support area.

Link to comment
Share on other sites

  • 4 weeks later...

Hello,

 

I think this post is very old but it kind of describes my problem. The hackintosh works okay under inte hd 4000 (with nvidia 720) only when connected to HDMI. if no HDMI connected I receive black screen.

 ...

It sounds to me like you're not injecting the correct ig-platform-id.

Link to comment
Share on other sites

  • 7 months later...

UPDATE: Read my second post on the next page as I figured this out, but will leave this post here in case others are searching the same issues later...

 

Hey guys and Gals, 

Firstly, thanks for all your insight, time and hard work. Im new here as a member, but have been reading for about a year off and on. 

 

Now, weird issue. I have Host Toshiba Ultrabook U840W 21:9 1792 x 768 resolution (yes, thats correct res) running

Windows 8.1 pro x64, Dual Core, 6gb Ram (host)

VMWare WS 11+Tools and Un-locker 2.0.4 (should be titled enabler I think, the name suggests hacked when really, it just enables VMWare to load OSX into preset menu)

 

I have two guest VM's. Mavericks 10.9.5 (i think its .5) and Yosemite 10.10

 

PROBLEM

-Yosemite OOB VMDK install worked great, full screen resolution at 1792 x 768 with no tinkering required at all. Slow and unreliable when updated security patches are installed. Beamoff Tool solves most of the lag and speed issues. (BUT NO other available options available in display options-weird),

 

-Mavericks 10.9 VMDK install, Un-locker 2.0.4, VM Tools gets maximum 1366 x 768 as a pre-installed option in Display prefs. 

 

So, I love Yosemite, But the mavericks install leaves Yosemite wanting. Mavericks install is fantastically fast, stable and only has that annoying screen policing issue. Hence, until I get a faster Laptop, Mavericks will be my choice of VM [ for now :) ]

 

ATTEMPTED FIXES:

-SwitchResX: Continual "Not Installed' error and 'Need Reboot' etc that everyone gets attempting to create custom display settings.

-Contacted Stephane at SwitchResX (Basically told the issue is not with SwitchResX, but rather my Operating System, despite making numerous mistakes about what order I    was running the VM environment in. I.E kept stating that Mac OS X as a host is not supported by VMWare and other such silly statements. [ Reminder: I'm on Windows host ]

-This guide as well as a TonyMacX Plist edit in AppleScript etc.

-Uninstall_Re-install of all softwares

-Third Party SVGA Driver (Not recommended unless from a very treated source many online versions crashed a number of installs, Thanks goodness for VM software!)

- I used this guide to confirm EDID on Yosemite and BOTH VM's use the same Plist details as listed below.

 

They show up as the generic:

DisplayProductID" = 1815

DisplayVendorID" = 1970170734

IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/display@F/VMwareGfx/VMwareFramebuffer/display0/AppleDisplay-756e6b6e-717

 

So my confusion is this, why does Resolution in Yosemite work work perfectly at 1792 x 768 OOB, with the same VMWare+Tools+Unlocker yet Mavericks 10.9 is stuck at 1366 x 768 despite Plist being the same in both VM Op's?

 

I think I have a case of working on something too long, and forgetting what i have tried and not tried etc. Maybe someone has a simple solution for this, but i know that with my 21:9 1792 x 768 resolution, its a challenge, BUT Yosemite knew straight away to use the Host settings?

 

Thanks ahead of time people, and just so you know, I am a helper too and contribute to posts (Toshiba) etc, so i will pay it forward. 

 

Cheers from Australia....

Shane

:thumbsup_anim:

  


 

my IODisplayPrefsKey dose not have numbers it only value Ex 

 

"IOService:/AppleACPIPlatformEx$

 

any help ?

 

In case you haven't done so already, its advisable to >Open Terminal, >Maximise Terminal view window even so it stretches outside the screen view, Then do the 'ioreg -l' command. When the Terminal window is too small, it cuts of text (known as truncating) which is why you get the $ symbol at the end. If you see the $ sign, then you haven't opened the view enough...

 

Cheers....

Link to comment
Share on other sites

Ok, so I cannot believe this myself, but then again I can when you think of the simple rule of "Downloadable images are altered sometimes maliciously and sometimes because the author thinks they are doing the community a favour, therefore, downloader beware" etc.


 


So, what I did to fix my issue, was a long route, but desperate times call for desperate measures. Ill try to make this simple and in point form. Bear with me, cause it sounds crazy, but it worked....


 


-I downloaded a trial copy of Fusion for MAC OSX, and installed that into my Workstation 11 image of Mavericks hosted by Windows 8.1 pro. This is the image that WS11 would not Auto Adjust to my desired 1792x768 res..with me so far? Good...


-I copied Mavericks OSX App from my 2009 Intel iMac to USB, then to Windows Desktop. From there, I dropped the Mavericks Mac App into the Mavericks VM desktop....Still with me....Good


-I then dropped Mavericks app into Fusion and mounted and installed it just to the point where it creates the VM Folder in Documents. Remember, this means that what I did, was create a new Mavericks OSX VM, inside my running Mavericks VM Documents folder. 


-I then cut and pasted the new Mavericks VM Documents folder from the Documents folder inside my Mavericks VM, to my Windows Host Documents/Virtual Machines folder. Now I had the base install i needed to "open a new virtual Machine in Workstation 11"


-Then, I shut down Mavericks VM, and proceeded to "Open Virtual Machine" from Workstation 11. This is the image i just created, then cut and pasted to windows host VM folder in documents...


-This began the fresh install of Mavericks 10.9 in Workstation. 25mins later, I had a fresh, untouched Virtual Machine....Voila..


 


IT GETS BETTER


-As soon as i installed VMware Worksation Darwin 7.1.1 tools, and rebooted, presto, FULL 1792 x 768 Resolution in full screen mode....!!!


 


I know this post will confuse people, so feel free to contact me and Id be more than willing to assist if I can. 


 


Big lesson learned and could have saved me a LOT of Plist editing, internet searching and Forum reading by just using an untouched Mavericks App from the get go. BUT, I couldn't find the tools to create an ISO from the Mavericks App I had, and didn't know Terminal Script to create bootable USB's, if that would have even helped anyway....


 


Cheers everyone, and I hope this helps someone...


Shane


:yes:   :D   :P   :lol:   :)   :w00t:   :D   :drool:   :thumbsup_anim:   :D   :rolleyes:   :rofl:   :hysterical:   B)   :rolleyes:   :wink_anim:   ;)


For those requiring links  (I know I appreciated people sharing them when I was learning)


- VM Workstation up-gradable Trial Download Here: https://my.vmware.co...orkstation/11_0


- VM Fusion 7 up-gradable  Download Here: https://my.vmware.co...ware_fusion/7_0


- VM Ware Tools AKA Darwin Here: http://www.insanelym...os-x-darwiniso/


- Mavericks 10.9 App, possibly available through Mac App store, but may have to get it of your own Mac like I had to.....Again, beware of internet VMDK images etc, as you may get a maliciously coded one, or innocently modified as   mine seemed to be, which meant I could not get desired resolutions. Who knows what else was lurking right? 


-------------------------------------------------------------------------------------------------------------------------------------------------------


 


Lastly, I will state this. Although having Mavericks running is VMware is great, I will say that it is more so just a prrof of concept. Meaning, that there are just too many features that are not available and that compromise is just too much to make it a go to system. 


 


There is no iMessage, Maps crashes, Photobooth cannot detect Camera, you cant run Open GL Intensive graphics programs such as Photoshop, and even music such as Garage band and Logic ProX wont run. In my opinion, these features are the reason people want mac. I.e. Graphic, music, stability, iMessage, iCloud etc...


 


*Please note my machines specs are Toshiba U840W PSU5XA-001006, i5-3317U CPU @ 1.70GHz, 6GB Ram,  as am sure some can get 'some' of these features working on better spec's Laptops (maybe....)


 


Again, its nice to know it theoretically works, but really, its just a glorified web browser, and even then the video playback and graphics suffer....


 


My next project may be a Metal Install, but again, the amount of tweaking required is above my patience level for now, and I am up against some struggle only having Intel Centrino N2230 wi-fi card installed. Even if i find a Kext or learn how to create a DSDT for my laptop, its still an uphill battle...But hey, i may just choose to go upstream...


Link to comment
Share on other sites

  • 1 month later...

I have Niresh's Mavericks 10.9.5 installed on my Acer Aspire AS5742Z-4685, but even after applying this method the display is stuck at 1024x768. Help? :(

Link to comment
Share on other sites

  • 3 years later...
On 1/21/2010 at 10:40 PM, CharredPC said:

Most of this information I have previously posted, but was scattered throughout multiple threads. I've gathered it all here to provide a comprehensive solution in one place. I've also given the option of skipping use of SwitchResX altogether, as it's not freeware, and some people were confused about the continued need for it once the fix was in place. If you have anything you think needs adding or clarifying, please don't hesitate to reply or message me directly.

 

Does your laptop have a 'messed up' display part or all the time? Are you missing some or all proper resolutions? Is everything stretched out, or maybe your screen is even blank*? Here's your likely solution! OSX has a horrible time trying to pick up EDID information from our LCD screens. That's the information it needs to know what timings to use, what resolutions are available, etc. Without it, a lot of us are stuck at the wrong resolution... or worse! Often the problem can be intermittent- for example, the display doesn't work right, but then does after a reboot or two, or randomly.

 

Most people incorrectly diagnose this as needing different display drivers, and try every strange concoction they can find. Sometimes the alternate / older drivers even seem to work, as they improve the chances of your EDID being picked up. However, this is the wrong solution. If the latest stock drivers give you QE, but the display is weird, stretched, or you're at 1024 x 768... DON'T CHANGE THEM! The issue is NOT actually a driver problem, but an EDID issue. The screen looks wrong simply because OSX doesn't know how to talk to it correctly.

 

To start off with, we need to acquire your screen's EDID. There's several ways to do it; just choose the one that's easiest for you, or fits your situation best.

 

 

Solution A; IF YOUR DISPLAY WORKS PROPERLY SOMETIMES (FLAKY EDID PICKUP):

 

Often when I start OSX, my laptop doesn't show anything on the screen unless I reboot multiple times. In the past, I described it as a "cold boot" problem. With my previous LCD screen, it would boot to a blue screen (or gray in SL). Some others need to reboot once (or more times) to get the correct resolutions listed. If your problem is sporadic, you're in luck; this fix can be completely done within OSX. It can still be confusing, though, so follow closely. The good thing is, you only have to do it once!

 

1. Reboot, cross your fingers, wiggle your mouse, or do whatever it takes to get your display to show up properly. Again, this only works if resolution and picture are occasionally perfect. We need to be in that mode to continue!

 

2. Open Terminal, and stretch it as wide as possible. It sounds strange, but I make it about twice as wide as the actual screen. This works around Terminal's truncation limit, so our data isn't cut off. Alternatively, you can use IORegExplorer. Either way will work fine, though the rest of this guide assumes you are using Terminal.

 

3. Enter ioreg -l and hit enter. This should fill the window will lots and lots of data about your machine.

 

4. Use Edit -> Find -> Find... to locate IODisplayEDID. If you do not have this listed, STOP HERE. this solution will not work; sorry, your EDID is not being picked up at all, go to Solution B. If this value IS present, continue on.

 

5. We need the value of IODisplayEDID (will have a long hex data string, like 00ffffffffffff00320c00df0...3A). Select the entire thing, and save it to a text file. Make sure it does not have a $ at the end! If it does, make the Terminal window wider and run ioreg -l again.

 

6. Reboot, wait a while, or do whatever it takes to boot so the display is NOT right (stretched, wrong resolution, whatever). If your 'bad' display is so bad you cannot use it, first go to System Preferences -> Sharing, checkmark Screen Sharing, and enable a password under Computer Settings. Note the vnc:// address. Using a second computer, connect to the vnc:// address and continue the instructions remotely. If you're using Windows, use TightVNC.

 

7. Run ioreg -l in Terminal again. If you cannot find IODisplayEDID, or it has a different value, then we're on the right track! This time, locate the DisplayProductID, DisplayVendorID, and IODisplayPrefsKey values. That last one should end in something like AppleBacklightDisplay-756e6b6e-717. Take note of all these. Leave this Terminal window open, so you can grab these values as needed as we continue.

 

8. Now in Finder, navigate to /System/Library/Displays/Overrides. See if there is a match between a folder name there, and the green part of the IODisplayPrefsKey value. Chances are (unless you've been previously fiddling with SwitchResX) there won't be, so create one on your desktop (you cannot make a new folder in the Overrides directory). For instance, with the above example, the folder we would make would be named DisplayVendorID-756e6b6e.

 

9. Now open Plist Editor Pro, and paste the following into the lower half of it:

 

 


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>DisplayProductID</key>
 <integer>1815</integer>
 <key>DisplayProductName</key>
 <string>Internal LCD Forced EDID</string>
 <key>DisplayVendorID</key>
 <integer>1970170734</integer>
 <key>IODisplayEDID</key>
 <data>
 AP///////wAGEF+cAAAAAAgRAQOAIRV4CunVmVlTjigmUFQAAAABAQEBAQEBAQEBAQEB
 AQEB3iGgcFCEHzAgIFYAS88QAAAYAAAADwAGECAKCgoKCgoKCgoKAAAA/gBLUzUxNQAx
 NTRXUDEKAAAA/gBDb2xvciBMQ0QKCgoKAI8=
 </data>
</dict>
</plist>
 

 

 

10. After clicking Sync Outline, you should now be able to edit the DisplayProductID, DisplayVendorID, and IODisplayEDID values in the upper window. Don't use the bottom code window, as we need Plist Editor to convert the data strings for us. The IODisplayEDID value is the long hex string we grabbed earlier. The DisplayProductID and DisplayVendorID values are in the ioreg Terminal window we left open.

 

11. Once done, save the Plist file as anything you like in the DisplayVendorID folder we created on the desktop, and close Plist Editor Pro. Now rename the Plist file using the purple part of the IODisplayPrefsKey, like so: DisplayProductID-717. Make sure there is NO extension, .plist or anything else! Verify and/or correct this by right-clicking on the file and choosing Get Info.

 

12. Now all that's left is to drag the folder to /System/Library/Displays/Overrides. It should require the Administrator password to proceed. This should create a directory something like /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717. Reboot, and see if it worked! To verify that the Override loaded, just open Displays in System Preferences. It should say "Internal LCD Forced EDID" whenever the EDID is not found. If your pickup is sporadic, you may have to reboot a few times to make sure it works. Congratulations, your internal display is now 100% functional!

 

 

Solution B; IF YOUR DISPLAY NEVER WORKS PROPERLY (NO EDID PICKUP):

 

The challenge here is that OSX refuses to pick up your EDID at all, forcing us to boot to a different operating system altogether to acquire the data we need. This could be easy (if you have a dual boot system) or a bit of a challenge, if you don't. I'll try and cover every possibility here.

 

The Windows Way:

Boot to Windows and retrieve your EDID using this. Once you have the EDID saved somewhere you can access (online, text file, USB key, whatever), reboot to OSX. You should now be able to pick up the instructions in Solution A, starting with step 6.

 

The Linux Way:

I have not personally tested this yet, but it should work. Boot Ubuntu Linux (a live cd is fine). Open Terminal, make sure you have a working internet connection, and enter sudo apt-get install read-edid. You can now try entering sudo get-edid | sudo parse-edid. If that doesn't show the full EDID hex string, try just sudo get-edid. Once you have the EDID saved somewhere you can access (online, text file, USB key, whatever), reboot to OSX. You should now be able to pick up the instructions in Solution A, starting with step 6.

 

The DOS Way:

I've tried this, and it works, though is currently not the most ideal solution. Create a bootable DOS USB key using the instructions here. Once that is done, extract this file and add it to the USB drive. Reboot, and boot off the DOS USB drive. You might have to change the boot order in your bios. Once you're at the command prompt, enter GET-EDID.EXE EDID-OUT. This will create a new file (edid-out, no extension) on your USB drive. Unfortunately, the only way I have found to access the EDID from it is using a hex editor, as it saves it as raw data, not a text file. I have yet to find a simple DOS hex-dump-to-text utility, but if anyone can supply one, I'll create a single *.bat file to do all the work. Once you have the EDID retrieved from the hex editor, you should now be able to pick up the instructions in Solution A, starting with step 6.

 

 

Solution C; USING SWITCHRESX INSTEAD OF IOREG / TERMINAL:

 

This could be easier for some people. Once you have your EDID using one of the above methods, boot OSX (using screen sharing, if the screen is unusable) and open SwitchResX. Find the fake display and vendor id's it is using (as in the example above, mine is using /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717, which seems to be a sort of universal default). Copy that file to your desktop, and rename it to *.plist. Open it with Plist Editor Pro, and add your EDID. If that file isn't there, create it using the directions in Method A. Once done, remove the .plist extension, overwrite the default Override, and reboot.

 

After you verify the Override is working properly, you CAN get rid of SwitchResX (open Applications, right-click the icon and choose "Move to trash"). It isn't needed anymore. It's a useful tool for setting up an Override, reading your EDID (if OSX has it), or seeing what DisplayVendorID / DisplayProductID path is being used... but once a fix is in place, it's no longer useful. Removing SwitchResX, at least for me, did not affect any of my custom Overrides.

 

 

Some comments and warnings:

 

Using someone else's unedited Display Override is a bad idea, just like using someone else's DSDT.aml or toothbrush! Even the same make and model laptops have different LCD screens, so the EDID could be drastically different. At best, you end up with a (more) scrambled screen. At worst, there's a chance you could damage your display.

 

If your EDID pickup is flaky like mine, OSX will use the created Override only when it can't find the EDID. The down side to this is OSX sees this situation as having two completely separate displays; settings like wallpaper and Color Calibration will be different for each. As long as you have both settings the same, you'll never notice the difference. However, if for example you change your wallpaper while not using the Override, then on next reboot the Override is used, you'll see the older wallpaper. I consider it a small price to pay for a 100% working display, and as far as I know there's no way around it. I personally have my Wallpaper set to rotate, so never notice :)

 

Once your Override is created, I recommend backing it up for future use. That way all these steps are not needed the next time you install OSX on the same machine. Think of it as a custom driver; you can just drag and drop the folder into /Overrides/. The Overrides are also version-agnostic, so once created, should be able to be used in 10.5.x and 10.6.x interchangeably. I wish there was a way to have it on /EFI/Extra/, but oh well. OSX updates won't overwrite the Override, so it's only annoying for the first bootup, or for people like me who want every fix completely separate from the OS.

 

Display Overrides are the only 100% solution I have found for EDID detection problems. There are theoretical ways to add EDID to the Boot.plist or DSDT (AAPL01, EDID) but it seems at least some of the OSX Intel drivers (if not all) ignore this data. It's been theorized that this is due to the display device being 'created' when the GMA video drivers load, thus the early-loading Boot.plist and DSDT data is erroneous at the time they are loaded. Another thought is that since the GMA drivers 'create' their own display device, they don't access or use the DSDT LCD entry / information. Regardless of the reason, I can personally attest to Overrides being the only real working X3100 EDID solution. Of course, if anyone has a proven alternate method, please share.

 

*For Intel chipsets, if your screen is blank, there's other possibilities besides EDID issues. If your LCD is 1440x900 or higher, you might need the Dual Link DSDT patch. Some people report that removing all video devices but the LCD forces it to be used. Sometimes the LCD is actually working fine, but a backlight issue keeps anything from being seen. And as with my laptop, sometimes it's a combination of any one of these, plus needing a Display Override.

Hi all. I have a dell 6700 working ok with externals display connected. no internal display (so wired lines showing on top) i cant find any references to DisplayProductID, DisplayVendorID,  IODisplayPrefsKey at all in ioreg... where do i go to start fixing that ( when i boot with nvida disable flag internal display works)

here are my ioreg and dsdt files. - took them from screen sharing - hoping for help! thanks.

ilan

USER’s MacPro Dell.zip

DSDT.aml

Link to comment
Share on other sites

 Share

×
×
  • Create New...