MatrixF Posted May 18, 2010 Share Posted May 18, 2010 I could never get my osx screen work (all scrambled) so I have to follow Method B. Method B asked me to go to step 6 of Method A which then told me to view the osx using a second computer by vnc but I could not even switch on screen sharing on my osx because of the scrambled screen, so how could I use vnc? I am posting this because the "screen never worked" method seems to need a "screen that worked" condition to "work". My computer has a dual boot (windows 7 and osx). I have tried using an external monitor but the screen just gets stretched and I could never find the icon of system preferences. Please help. And thank you for your guide. Link to comment Share on other sites More sharing options...
bramadams Posted June 28, 2010 Share Posted June 28, 2010 Hi, Great tutorial. I followed method A, and it almost works. Without overriding my monitor only had 640x480, but after overriding I noticed that all resolutions higher than 1920x1200 are still not available under System Preferences -> Display. I use dual-link DVI to access the monitor, which can handle up to 2500x1600 (recommended resolution). Any idea how to enable the higher resolutions? Are there some extra plist attributes for this? Kind regards, Bram Adams PS: To avoid the hassle with making the terminal window wider, try "ioreg -w 0 -l > ioreg.txt". The -w flag disables the $ signs in the output, and the redirection makes it easier to search for strings in a text editor. Link to comment Share on other sites More sharing options...
CharredPC Posted July 1, 2010 Author Share Posted July 1, 2010 Hi,To avoid the hassle with making the terminal window wider, try "ioreg -w 0 -l > ioreg.txt". The -w flag disables the $ signs in the output, and the redirection makes it easier to search for strings in a text editor. Good tip about avoiding the truncating $!Do you know if your videocard / driver can output resolutions that high? Even if your display is capable, it's only half of the equation. The videocard still needs to be able to drive it.Glad this guide helped a bit. Link to comment Share on other sites More sharing options...
kizwan Posted July 1, 2010 Share Posted July 1, 2010 Hi CharredPC, Nice guide. I'm experimenting my Dell Studio with your workaround. Do you know how I can obtain vendor ID for my internal LCD monitor? Since the LCD monitor is not detected, I can't get the vendor ID from the ioreg. I tried with Everest & MonInfo but the only thing I can get is the device ID (DisplayProductID). Thank you. Link to comment Share on other sites More sharing options...
CharredPC Posted July 1, 2010 Author Share Posted July 1, 2010 Hi CharredPC, Nice guide. I'm experimenting my Dell Studio with your workaround. Do you know how I can obtain vendor ID for my internal LCD monitor? Since the LCD monitor is not detected, I can't get the vendor ID from the ioreg. I tried with Everest & MonInfo but the only thing I can get is the device ID (DisplayProductID). Thank you. Is the LCD monitor not detected at all, or detected incorrectly? If the actual hardware isn't being seen/used (no DisplayVendorID at all listed in ioreg), I'm not sure if this fix will work. I'd be happy to look at your ioreg output if it would be helpful Link to comment Share on other sites More sharing options...
kizwan Posted July 1, 2010 Share Posted July 1, 2010 Is the LCD monitor not detected at all, or detected incorrectly? If the actual hardware isn't being seen/used (no DisplayVendorID at all listed in ioreg), I'm not sure if this fix will work. I'd be happy to look at your ioreg output if it would be helpful Its not detected at all when the vanilla driver loaded. I'm not hopping anything but just want to experiment. I already collect all information needed except the vendor ID. Thanks anyway. Link to comment Share on other sites More sharing options...
CharredPC Posted July 1, 2010 Author Share Posted July 1, 2010 Its not detected at all when the vanilla driver loaded. I'm not hopping anything but just want to experiment. I already collect all information needed except the vendor ID. Thanks anyway. If the display hardware itself isn't being detected, I don't think this fix will work. We have to be able to reference it somehow, even if it's just by using the default 'generic' override (used when the EDID isn't picked up) of /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717. If no screen is found, then it won't look for or use any specific override. Does that make sense? Think of the overrride as a driver. To make the driver load, we have to make sure it matches the hardware somehow. So if the hardware isn't being detected at all by OSX, then there's no real way to get the driver (or override) to 'catch.' Unless by "not being detected," you just mean that the display doesn't turn on / isn't being used. In that case, it might be in fact outputting, but at very wrong settings, and the default /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717 location could be seeded with the full EDID. But this is just speculation without knowing more details about your specific setup Link to comment Share on other sites More sharing options...
kizwan Posted July 1, 2010 Share Posted July 1, 2010 If the display hardware itself isn't being detected, I don't think this fix will work. We have to be able to reference it somehow, even if it's just by using the default 'generic' override (used when the EDID isn't picked up) of /System/Library/Displays/Overrides/DisplayVendorID-756e6b6e/DisplayProductID-717. If no screen is found, then it won't look for or use any specific override. Does that make sense? Think of the overrride as a driver. To make the driver load, we have to make sure it matches the hardware somehow. So if the hardware isn't being detected at all by OSX, then there's no real way to get the driver (or override) to 'catch.' You can take my word for it when I said the internal LCD isn't detected. Sorry, I don't want to "think" it doesn't work but I want to test it myself before making any conclusion. Without the vanilla driver loaded (I'm intentionally removed the driver) & with RadeonHD.kext, I can get the override working with generic vendor & product ID but only with external monitor; correct resolution & without QE/CI. I can see "Internal LCD Forced EDID" in System Profiler. Display at the internal LCD is bad; object displayed is not clear. However, EDID is not appear in ioreg since the RadeonHD.kext is not providing hardware acceleration support. I can get the same result without the override. With the vanilla driver loaded, both internal & external monitor are not detected. Just blank screen. Even ioreg is not listing any connected monitor. Link to comment Share on other sites More sharing options...
GGuyZ Posted July 15, 2010 Share Posted July 15, 2010 I'm a bit puzzled here. Perhaps someone could shed some light. The tutorial seems straightforward, and I was able to do whatever was necessary except for one significant detail. The windows software provides us with an .rtf file. It hardly has any hex values in it to be used, let alone some cryptic encoded code. Hope you guys can help, here's what I get as an output of the EDID: Vendor/Product Identification: Monitor Name : DELL 2209WA Monitor Serial Number : H735H02318TL Manufacturer Name : Dell Computer Corp. Product Id : F011 Serial Number : 825775180 Week Of Manufacture : 6 Year Of Manufacture : 2010 EDIDVersion : V1.3 Number Of Extension Flag : 0 Display parameters: Video Input Definition : Digital Signal DFP1X Compatible Interface : False Max Horizontal Image Size : 470 mm Max Vertical Image Size : 300 mm Power Management and Features: Standby : Not Supported Suspend : Not Supported ActiveOff : Supported Video Input : 1 sRGB Default ColorSpace : True Default GTF : Not Supported Prefered Timing Mode : True Gamma/Color and Etablished Timings: Display Gamma : 2.2 Red : x = .64 - y = .33 Green : x = .3 - y = .6 Blue : x = .15 - y = .06 White : x = .313 - y = .329 Etablished Timings : 800 x 600 @ 60Hz (VESA) 640 x 480 @ 75Hz (VESA) 640 x 480 @ 60Hz (IBM, VGA) 720 x 400 @ 70Hz (IBM, VGA) 1280 x 1024 @ 75Hz (VESA) 1024 x 768 @ 75Hz (VESA) 1024 x 768 @ 60Hz (VESA) 800 x 600 @ 75Hz (VESA) Display Type : RGB Color Display Standard Timing: Standard Timings n° 1 X Resolution : 1152 Y Resolution : 864 Vertical Frequency : 75 Standard Timings n° 2 X Resolution : 1280 Y Resolution : 1024 Vertical Frequency : 60 Preferred Detailed Timing: Pixel Clock : 146.25 Mhz Horizontal Active : 1680 pixels Horizontal Blanking : 560 pixels Horizontal Sync Offset : 104 pixels Horizontal Sync Pulse Width : 176 pixels Horizontal Border : 0 pixels Horizontal Size : 474 mm Vertical Active : 1050 lines Vertical Blanking : 39 lines Vertical Sync Offset : 3 lines Vertical Sync Pulse Width : 6 lines Vertical Border : 0 lines Vertical Size : 552 mm Input Type : Digital Separate Interlaced : False VerticalPolarity : True HorizontalPolarity : False Monitor Range Limit: Maximum Vertical Frequency : 75 Hz Minimum Vertical Frequency : 56 Hz Maximum Horizontal Frequency : 83 KHz Minimum Horizontal Frequency : 30 KHz Maximum Pixel Clock : 160 MHz Stereo Display: Stereo Display : Normal display (no stereo) I hope you guys have any idea how to convert the above, into something like: <key>IODisplayEDID</key> <data> AP///////wA4o3ukAAAAABwKAQOAXDR4KADloFonuiUXQk6vzgCBgEvAAQEBAQEBAQEB AQEBLw1Q8DDgJRAQcGgAmAYyAAAe1gmAoCDgLRAPYGIAswYiAAAYAAAA/ABQWC00MlZN CiAgICAgAAAA/AAKICAgICAgICAgICAgAHA= </data> Thanks in advance, Guy. Link to comment Share on other sites More sharing options...
kizwan Posted July 16, 2010 Share Posted July 16, 2010 Hi GGuyZ, you can use MonInfo application instead to obtain the EDID value. If you're using MonInfo, the "Raw data" is EDID value. You will get something like this (in one line):- 00,FF,FF,FF,FF,FF,FF,00,25,CC,0A,00,00,00,00,00,00,13,01,03,90,22,13,78,0A,C8,85,9E,57,54,9B,26,12,50,54,00,00,00,01,01,01,01,01,01,01,01,01,01,01,01,01,01, 01,01,36,1A,56,44,50,00,0D,30,11,0C,32,00,58,C2,10,00,00,1A,36,1A,56,44,50,00,0D,30,11,0C,32,00,58,C2,10,00,00,1A,00,00,00,FE,00,31,47,35,44,33,81,31,35,36, 47,57,30,31,00,00,00,00,00,00,00,00,00,00,00,00,00,01,01,0A,20,20,00,F2 Remove the comma character (,) & you will get this (EDID in HEX - in one line):- 00FFFFFFFFFFFF0025CC0A000000000000130103902213780AC8859E57549B2612505400000001010101010101010101010101010101361A564450000D30110C32 0058C21000001A361A564450000D30110C320058C21000001A000000FE00314735443381313536475730310000000000000000000000000001010A202000F2 Use PlistEdit Pro application in Mac to edit the .PLIST file. You will see two section when you open the .plist file. Add & paste the EDID (in HEX) value at the upper section. It will automatically convert the EDID value from hexadecimal to Base 64 encoded data at lower section, like this:- AP///////wAlzAoAAAAAAAATAQOQIhN4CsiFnldUmyYSUFQAAAABAQEBAQEBAQEBAQEBAQEBNhpWRFAADTARDDIAWMIQAAAaNhpWRFAADTARDDIAWMIQAAAaAAAA/gAxRzVEM4ExNTZHVzAxAAAAAAAAAAAAAAAAAAEBCiAgAPI= Save & exit. You done! You might interested with these online tools:- Convert Base 64 Encoded Data to ASCII text Data Converter Tool - Just need to set at "Decode" section to HEX & "Output Encode" to BASE64, if you want to convert from HEX to BASE64. Link to comment Share on other sites More sharing options...
GGuyZ Posted July 16, 2010 Share Posted July 16, 2010 Thanks! I wasn't aware the bottom section was using a base64 convention, and that the upper row is the hex interpretation. Anyway, that helped a lot and I was able to follow the tutorial and get the overrided 'Forced LCD' to use the real EDID. However, and here's the strange part, it doesn't seem to help one bit. After doing this, I tried exporting the EDID with SwitchResX and got the real complete EDID of my screen. So it 'should be working'. Nevertheless, I'm stuck on 1400x1050 resolution (this is a desktop with an 1680x1050 monitor and the EDID verifies this). I tried forcing resolutions using "Graphics Mode" kernel flag, and also tried creating custom resolution using SwitchResX. They are simply not accepted! When I tried switching graphic cards, from an x1800 ati to nvidia's 6600gt, I got my screen (DELL 2209wa) identified on the spot, with all resolutions and no tweaking. However, no QE/CI are available there. So I wonder, what could be the culprit? Why can't I force resolutions even with the EDID, and why doesn't ATI + SL like my monitor? Link to comment Share on other sites More sharing options...
kizwan Posted July 16, 2010 Share Posted July 16, 2010 However, and here's the strange part, it doesn't seem to help one bit. After doing this, I tried exporting the EDID with SwitchResX and got the real complete EDID of my screen. So it 'should be working'. Nevertheless, I'm stuck on 1400x1050 resolution (this is a desktop with an 1680x1050 monitor and the EDID verifies this). I tried forcing resolutions using "Graphics Mode" kernel flag, and also tried creating custom resolution using SwitchResX. They are simply not accepted! When I tried switching graphic cards, from an x1800 ati to nvidia's 6600gt, I got my screen (DELL 2209wa) identified on the spot, with all resolutions and no tweaking. However, no QE/CI are available there. So I wonder, what could be the culprit? Why can't I force resolutions even with the EDID, and why doesn't ATI + SL like my monitor? At least OS X have to recognized your GPU first before it can recognized your monitor. This is important in order for OS X to pickup correct vendor & device ID of your monitor which are important for display override to work. I don't think X1800 will work though. You have better chances with 6600GT. I bet you can get QE & CI working with it. Have you try boot with GraphicsEnabler=Yes flag with either X1800 or 6600GT? Can you post here ioreg dump using IORegistryExplorer with the 6600GT? I want to take a look. Maybe we can experiment the display override with X1800, if your monitor vendor & device ID is detected by your 6600GT. Link to comment Share on other sites More sharing options...
GGuyZ Posted July 16, 2010 Share Posted July 16, 2010 First, thanks a lot for the assistance. This has been bothering me for a few days now. I gathered the information your requested and some more. Feel free to go over it or skip it. I'm also attaching the ioreg dumps. Here's a sum up of the x1800 GTO: As you can see, ATIRadeonX1000.kext is loaded, which is why I have QE/CI enabled. ATIFramebuffer is NOT loaded for some reason, which as far as I know is in charge of the resolution. I can load it with kextload just fine, but it doesn't seem to make a difference: bash-3.2# kextstat | grep ATI 58 0 0xffffff7f808b8000 0x30000 0x30000 com.apple.kext.ATISupport (6.1.0) <57 9 8 7 5 4 3 1> 67 0 0xffffff7f8095e000 0x61000 0x61000 com.apple.ATIRadeonX1000 (6.1.0) <66 57 9 7 6 5 4 3 1> bash-3.2# kextload -v /System/Library/Extensions/ATIFramebuffer.kext Requesting load of /System/Library/Extensions/ATIFramebuffer.kext. /System/Library/Extensions/ATIFramebuffer.kext loaded successfully (or already loaded). bash-3.2# kextstat | grep ATI 58 1 0xffffff7f808b8000 0x30000 0x30000 com.apple.kext.ATISupport (6.1.0) <57 9 8 7 5 4 3 1> 67 0 0xffffff7f8095e000 0x61000 0x61000 com.apple.ATIRadeonX1000 (6.1.0) <66 57 9 7 6 5 4 3 1> 89 0 0xffffff7f809e3000 0x13000 0x13000 com.apple.kext.ATIFramebuffer (6.1.0) <58 57 9 8 7 5 4 3 1> bash-3.2# Here's the information from the System Profiler: ATI Radeon X1800XL: Chipset Model: ATI Radeon X1800XL Type: GPU Bus: PCIe Slot: Slot-1 PCIe Lane Width: x16 VRAM (Total): 256 MB Vendor: ATI (0x1002) Device ID: 0x710a Revision ID: 0x0000 ROM Revision: 113-B7710C-176 EFI Driver Version: 01.00.318 Displays: SwitchResX4 - Internal LCD Forced EDID: Resolution: 1400 x 1050 Pixel Depth: 32-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Display Connector: Now, with the 6600GT I don't get QE/CI at all. But the screen is identified flawlessly. EDID, all resolutions and everything. here's the information from the System Profiler: GeForce 6600 GT: Chipset Model: GeForce 6600 GT Type: GPU Bus: PCIe Slot: Slot-1 PCIe Lane Width: x16 VRAM (Total): 128 MB Vendor: NVIDIA (0x10de) Device ID: 0x0140 Revision ID: 0x00a2 ROM Revision: xx.xx.xx - internal Displays: Display Connector: Status: No Display Connected Display: Resolution: 1680 x 1050 @ 60 Hz Pixel Depth: 32-Bit Color (ARGB8888) Main Display: Yes Mirror: Off Online: Yes Rotation: Supported Loaded kexts: NVDANV40Hal, NVDANV50Hal, NVDAResman. But no QE/CI . Hope you could help. I tried all kinds of injectors and they didn't work I'm afraid. Running SL 10.6.4 Vanilla. P.S: I tried GraphicsEnabler=Yes on both cards. It didn't make any difference. ioregdumps.zip Link to comment Share on other sites More sharing options...
kizwan Posted July 18, 2010 Share Posted July 18, 2010 Hi GGuyZ, Thanks to your 6600GT, it able to correctly recognized your monitor. I use the DisplayVendorID, DisplayProductID & EDID, detected by your 6600GT, to create the display override PLIST file. I hope it will help your X1800 GTO to properly recognized the monitor. Copy the display override PLIST file, the DisplayVendorID-10ac folder, to /System/Library/Displays/Overrides/ folder. Fix the file permissions if necessary & reboot for the changes to take effect. If it loaded, you should see LCD Monitor Forced EDID under Displays (Graphics/Displays section) in System Profiler. Please let me know whether it is working or not. http://www.mediafire.com/?tdylsjrtlr988gr Link to comment Share on other sites More sharing options...
mtest Posted August 11, 2010 Share Posted August 11, 2010 Dear friends, Someone pointed me to this post regarding an issue I'm currently facing with my (almost) fully working Samsung N130 hackintosh. Here is the issue: the system seems not to be able to "remember" the brightness/backlight level between two reboots. At each boot, the brightness is set back to the maximum. I do not have _any_ sort of problem with the display beside that brightness problem. Not sure if this display override technique could help, to me it seems that the system is able to read the IODisplayEDID as expected, and in the pref pane, my netbook display is identified as "BT101IW03V1". If I understand well even if I create an override file it won't be read, is it right ? Any idea ? Link to comment Share on other sites More sharing options...
Drakkar01 Posted September 14, 2010 Share Posted September 14, 2010 So I did what you said in the tutorial but just after rebooting it hangs up on apple logo loading screen. My problem is after installing a Nvidia enabler it cant read the display EDID wich is a common case of my G210m nvidia card, so for now I just followed the tutorial but I havent installed the enabler, should I need to install the enabler to make the tutorial work? Link to comment Share on other sites More sharing options...
btlachance Posted September 24, 2010 Share Posted September 24, 2010 Thank you for the excellent guide I've got an override made that does get picked up for my internal display -- at least I'm pretty sure it gets used, because I can see the DisplayProductID specified in the Override when I look at the monitors under "Displays" in System Preferences. With that said, I am still getting the scrambled images, the many-colored vertical lines. I'm able to use an external monitor through the laptop's VGA port just fine (that's how I got the EDID/edited the Override!) but cannot use the internal display, regardless of it being my primary display or not. Anyone/CharredPC, do you have any alternatives to try if using an Override doesn't seem to do it? This one post from a user using the same display as a replacement on a MBP is disheartening, but I'm here to see if maybe I've missed something I'm running an hp dv9500t with an Intel x3100 graphics unit. The internal display's "model number" is LP171WE2-TL03, its product id is 0x1289 and its vendor id is 0x320c if that's any help. Thanks in advance for any help you all may have! Link to comment Share on other sites More sharing options...
Time2Retire Posted November 4, 2010 Share Posted November 4, 2010 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. People might consider to add: "AAPL,alias-policy", Buffer (0x04) { 0x00, 0x00, 0x00, 0x00 }, To the _DTM method in their DSDT because that will give you a nice short alias. Something like: Alias:0/AppleBacklightDisplay-6af-39e instead of this ugly long counterpart: IOService:/AppleACPIPlatformExpert/PCI0@0/ AppleACPIPCI/GFX0@2/AppleIntelFramebuffer/ display0/AppleDisplay-6af-39e Which is what Apple is using. I mean the short one of course. p.s. Using 0x01 for the first byte will change the alias number from Alias0: into Alias1: Link to comment Share on other sites More sharing options...
kizwan Posted November 4, 2010 Share Posted November 4, 2010 @dutchhockeypro, That is definitely something to consider. I noticed on MacBookPro6,1 use the short version (Intel HD) while on MacBook5,1 use the long version (Nvidia). Link to comment Share on other sites More sharing options...
litosudo Posted November 10, 2010 Share Posted November 10, 2010 This is a very good post!!! To contribute, I've made a script to save ioreg output automatically at login. To install it, follow the next steps (taken from http://support.apple.com/kb/Ht2420): Open Terminal (Applications/Utilities). In the Terminal window, type: sudo defaults write com.apple.loginwindow LoginHook /path/to/script (where /path/to/script is the full path to the script that we want to execute at login). Type your password at the prompt, then press Return. After reboot with wrong display, the output will be saved in your root folder. You should copy it to another location to prevent to be overwriten in the next boot. You can uninstall the script this way (in terminal): sudo defaults delete com.apple.loginwindow LoginHook ioreglist.sh.zip Link to comment Share on other sites More sharing options...
hectory Posted April 6, 2011 Share Posted April 6, 2011 CharredPC can you help me i have a blackscreen after the applebootlogo but i managed to look up information about settings via teamviewer as i thought there is no support about my internal lcd. do you know how to add manual support via edid here are 2 pictures i hope you can help me Link to comment Share on other sites More sharing options...
jimbly2 Posted May 5, 2011 Share Posted May 5, 2011 Hi there, thanks for your time and efforts to sort the EDID issues out - I have a 5650 and I've tried to create the overide exactly as you suggested, but it's not getting picked up. The system recognises my card no problem and if I plug an external vga monitor in it's fine ( using boot flag AtiConfig=Eulemur ) with full QE/CI - but the laptop screen is just black - but with the backlight on. If I check with SwitchresX the Forced Internal EDID isn't loading at all. Not sure where to go from here - any ideas? Thanks Jim HP DV7T Ati Mobility Radeon HD 5650 1 Link to comment Share on other sites More sharing options...
gizmonder Posted May 25, 2011 Share Posted May 25, 2011 I'm still blank screen (external monitor works fine, QE/CI don't work). Sony VAIO EB1S1R/WI i5-430m + HD5650 My edid: 00FFFFFFFFFFFF004DD9FA05000000000413010380221378F2CE 50A3574C99260F5054000000010101010101010101010101010 10101201C56AE50000C301D3A240054BE100000008C1756A05 00016301A35370054BE100000000000000000000000000000000 000000000000000000000000000000000000000000000000081 Make me a file please, maybe I'm doing something wrong Link to comment Share on other sites More sharing options...
lightmanrt Posted June 1, 2011 Share Posted June 1, 2011 I got the EDID using windows but then I lose your instructions where you say go back to 6. What do I paste, what do I change? Is it the raw data? Can you make your instructions for a dummy? The program you linked us to can save in RTF and edd format. What do I paste from the RTF. Thanks, Bob Link to comment Share on other sites More sharing options...
dalerr Posted July 1, 2011 Share Posted July 1, 2011 Successfully inserted new EDID, extracted on Windows, for my VAIO screen. But didn't see native resolution 1366x768, only 1360x768. What else I can do for fixing resolution issue? Can we modify display profile, add to it my custom resolution? When I used SwitchResX, 1366x768 worked ok. I also tried to using SwithResx profile, modify it with my EDID, but also have only 1360x768. And second question, I have gradient visible issue on my internal screen, seems its problem in LUT recognition. I tried to fix it by using native OSX color manager but wonder didnt happen, i see gradients with steps. On windows 7 i didnt have such issue, of course. Any suggestions? Link to comment Share on other sites More sharing options...
Recommended Posts