Jump to content

[GUIDE] How to enable custom resolution for first-gen Intel HD Graphics (0042:8086 and 0046:8086)

intel hd graphics fix resolution chameleon 915resolution

  • Please log in to reply
45 replies to this topic

#21
RemC

RemC

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts
Thanks for that! All the zero's confirm that the EDID is not being read. The question now is why? Your systems might not support VBE/DDC, I will have to put some checks in place to determine that and once done ask you one more time (hopefully...) to test something for me. For now could you please answer the following:

- When choosing Mac OS X in the bootloader and pressing the arrow down key, a menu pops up...if you choose Video Info, what does the first line say (VBE...?).
- How did you manage to get your EDID?
- You said you're using Win 7, do you have linux as well by any chance or a bootable DVD/USB with Ubuntu or something. If so would you mind running the following and posting the output:
$> sudo apt-get update && sudo apt-get install read-edid
$> sudo get-edid | parse-edid

Thanks a lot!

#22
pentothal

pentothal

    InsanelyMac Protégé

  • Members
  • PipPip
  • 75 posts
No problem at all RemC, I'm more than happy to help you out.

- When choosing Mac OS X in the bootloader and pressing the arrow down key, a menu pops up...if you choose Video Info, what does the first line say (VBE...?).

I'm booting from a usb pen. No Chameleon installed so no menu. Before booting I ran this command: ?Video. I attach the screenshot of the results.
Attached File  P1112108.JPG   121.13KB   50 downloads


- How did you manage to get your EDID
I got it using ELDIM Edid viewer and reading the EDID from w7 registry.


- You said you're using Win 7, do you have linux as well by any chance or a bootable DVD/USB with Ubuntu or something. If so would you mind running the following and posting the output

I ran the commands from Linux Mint 11. Below the output:


udo get-edid | parse-edid
parse-edid: parse-edid version 2.0.0
get-edid: get-edid version 2.0.0

Performing real mode VBE call
Interrupt 0x10 ax=0x4f00 bx=0x0 cx=0x0
Function supported
Call successful

VBE version 300
VBE string at 0x11100 "Intel®Ironlake Mobile Graphics Chipset Accelerated VGA BIOS"

VBE/DDC service about to be called
Report DDC capabilities

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x0 cx=0x0
Function supported
Call successful

Monitor and video card combination does not support DDC1 transfers
Monitor and video card combination supports DDC2 transfers
0 seconds per 128 byte EDID block transfer
Screen is not blanked during DDC transfer

Reading next EDID block

VBE/DDC service about to be called
Read EDID

Performing real mode VBE call
Interrupt 0x10 ax=0x4f15 bx=0x1 cx=0x0
Function supported
Call failed

The EDID data should not be trusted as the VBE call failed
parse-edid: EDID checksum passed.

# EDID version 0 revision 0
Section "Monitor"
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
Identifier "@@@:0000"
VendorName "@@@"
ModelName "@@@:0000"
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# DPMS capabilities: Active off:no Suspend:no Standby:no

# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
# Block type: 2:0 3:0
EndSection

I hope my infos are useful for you and the comunity.
Cheers
Pentothal

#23
RemC

RemC

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts
Hi Pentothal,

Thanks for all the information, couldn't have asked for more! I'm glad you ran the read-edid utility on Linux because this shows that your monitor and video card combination supports the DDC2 protocol, but somehow fails to execute properly (hardware bug in the implementation of DDC2 in either the monitor or the video card??). It looks like it won't be possible in your case to use the EDID in the Resolution module, so I probably use the values from the "Graphics Mode" in that case.
I'm still not sure how Windows got that EDID in the registry, it might be that the graphics driver has generated it instead of retrieved it from the monitor. At least I now know this is a possible scenario and will try to work around it when I detect it. Thanks for all the testing, I'm busy the next few days but hopefully can start patching things up next week.

RemC

#24
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 382 posts
  • Gender:Male
It kind of sucks that we can't use the AppleIntelHDGraphicsFB kext. I'll give instructions here if anyone wants to try and see what I mean. Its always good to see it yourself.

You'll need another computer with a VNC client. If you don't have another one, then don't try it.

Basically you will need these kexts:

AppleIntelHDGraphicsFB.kext
AppleIntelHDGraphicsGA.plugin
AppleIntelHDGraphicsGLDriver.bundle
AppleIntelHDGraphicsVADriver.bundle

If you are gonna try this, your going to have to edit the AppleIntelHDGraphicsFB.kext plist file. The reason is because if your hackintosh fails to boot, you will be able to boot into safe mode. It's a safetly measure.

Inside the AppleIntelHDGraphicsFB.kext plist file, scroll down until you see this line of code here:

<key>OSBundleRequired</key>
<string>Safe Boot</string>

Delete that and save it.

Next, go to System Preferences>Sharing and check the option "Screen Sharing".

Write down the VNC IP address on a piece of paper or something. It should look like "192.168.1.2" or something similar with different numbers. If you want you can set a VNC password by clicking "Computer Settings".

Now we are ready to install the kexts. Install the modified AppleIntelHDGraphicsFB.kext along with AppleIntelHDGraphicsGLDriver, AppleIntelHDGraphicsVADriver, and AppleIntelHDGraphicsGA using Kext Utility or something.

Once everything is set up, leave your hackintosh alone.

Now login to your other computer and setup a VNC viewer such as TightVNC, UltraVNC, Chicken of the VNC, etc.

Once its installed and ready to use, connect to the IP address you wrote down earlier. If successful you will see your hackintosh desktop on your other computer.

That's all you need to do. :)

Okay, reboot your hackintosh and boot with the "-f" flag (Ignore kernel cache).
You will notice that your screen will turn black, but your backlight is still on. This is the problem you get when you use the AppleIntelHDGraphics framebuffer.

Once the screen is black, connect to your hackintosh using a VNC client on another computer. Use the IP address of the hackintosh to connect. Once it connects, you will see the desktop. One strange thing you'll notice is that if you go to System Preferences>Displays, you will see new resolutions as well as the model of the internal display.

This basically means that the framebuffer gets all the information of the internal display without any problem. Sadly its useless. :(

#25
RemC

RemC

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts
I don't know much about the AppleIntelHDGraphics kexts (or kexts in general), except for that I have to delete them to make my system work :-) At the moment I'm using natit.kext which at least makes my screensaver work and probably some other stuff. Definitely not hardware accelerated. Natit/Titan are not drivers and only written to enable NVIDIA and ATI cards by manipulating the registry. It seems the project dates from 2006 but no development has been done since? It might be possible to add support for INTEL cards, the fact that my screensaver is working with it indicates that at least something can be achieved! Any thoughts?

#26
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 382 posts
  • Gender:Male

I don't know much about the AppleIntelHDGraphics kexts (or kexts in general), except for that I have to delete them to make my system work :-) At the moment I'm using natit.kext which at least makes my screensaver work and probably some other stuff. Definitely not hardware accelerated. Natit/Titan are not drivers and only written to enable NVIDIA and ATI cards by manipulating the registry. It seems the project dates from 2006 but no development has been done since? It might be possible to add support for INTEL cards, the fact that my screensaver is working with it indicates that at least something can be achieved! Any thoughts?


Is it only the Flurry screensaver? I don't use Natit and I'm still able to use that screensaver. There is something called Apple Software Renderer and can be seen when using the OpenGL Extension Viewer. I think this is what Flurry is using to display its effects. I believe the other slideshow screensavers use Core Image because I can't use them. They're black.

As for Natit, I'm not really sure it would do anything for us. The only thing it does is that it identifies the Intel HD Graphics and displays its information in System Information. Its only adds cosmetic detail.

I feel that the main problem is not the AppleIntelHDGraphics kexts itself. I've compared those same kexts with Snow Leopard and they're all the same. Only minor verison differences. As you can see, you can't even get partial QE/CI in Lion nor in Mountain Lion, but you can in Snow Leopard. Not sure what kext is causing the issue.

#27
RemC

RemC

    InsanelyMac Protégé

  • Members
  • Pip
  • 14 posts
Yes it is the Flurry screensaver, but without natit.kext I just get a white screen... I've been reading the https://www.google.c...357700187,d.cGE topic and it looks like it should be possible without to much effort. Some DSDT editing at least it seems.

#28
iWin32

iWin32

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Gender:Male

Is it only the Flurry screensaver? I don't use Natit and I'm still able to use that screensaver. There is something called Apple Software Renderer and can be seen when using the OpenGL Extension Viewer. I think this is what Flurry is using to display its effects. I believe the other slideshow screensavers use Core Image because I can't use them. They're black.

As for Natit, I'm not really sure it would do anything for us. The only thing it does is that it identifies the Intel HD Graphics and displays its information in System Information. Its only adds cosmetic detail.

I feel that the main problem is not the AppleIntelHDGraphics kexts itself. I've compared those same kexts with Snow Leopard and they're all the same. Only minor verison differences. As you can see, you can't even get partial QE/CI in Lion nor in Mountain Lion, but you can in Snow Leopard. Not sure what kext is causing the issue.

I'm thinking it's a kernel issue for ML. For me, I can enable QE/CI as the guides say that I've linked to in OP, but when the Framebuffer Kext loads in Snow Leopard, I get the backlight/blank screen issue. However, when I use the kexts from Snow Leopard that enabled QE/CI on ML, I get a distorted and unusable screen, and it's like that also from VNC. If I load any framebuffer kext, the screen freezes in verbose mode, and when it exits, the screen becomes white. A few seconds later, the fans go crazy on my machine, and the system becomes unresponsive (I cannot connect to VNC at all). I'm thinking that Snow Leopard (as of now) is the best for acceleration until we work out what's going on in Mountain Lion. I plan to back up my Mountain Lion installation to an external drive, and then put Snow Leopard back on my internal drive. And as far as the Lenovo thread goes, either the framebuffer can pick up the LCD completely without any of our issues, or the OP found out some Apple OS-Info Values that make it work, but we don't know how to retrieve those values for us. Therefore, we can't make it work. I may start another thread on trying to enable QE/CI in ML on the Hardware -> Graphics Card forum, and when that happens, I'd prefer all acceleration discussion to take place in that thread and keep all resolution discussion in this thread.

#29
Sze27

Sze27

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts
iWin32, How did you enable your qe/ci in snow leopard? there's any bootloader for SL? I tried to install SL from my USB thumb drive and when it boots, it's just endless restart!

#30
jaller

jaller

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
  • Gender:Male
  • Location:Pescara,Italy
Is there any other metod to compile Chameleon without xCode? I'm on 10.7.2 and download xCode and ML takes loooooong times D: An alternative?

#31
giofrida

giofrida

    InsanelyMac Italy

  • Members
  • PipPipPipPipPipPipPip
  • 667 posts
  • Gender:Male
  • Location:Italy
There's the resolution module already compiled for everyone. Here (it's the second post).

#32
jaller

jaller

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
  • Gender:Male
  • Location:Pescara,Italy
So with this module i'm able to get full resolution without modify resolution.c,make etc..?

#33
giofrida

giofrida

    InsanelyMac Italy

  • Members
  • PipPipPipPipPipPipPip
  • 667 posts
  • Gender:Male
  • Location:Italy

So with this module i'm able to get full resolution without modify resolution.c,make etc..?

Yes, i tried also to compile a new module, but didn't work. The module i linked works great.

#34
jaller

jaller

    InsanelyMac Protégé

  • Members
  • Pip
  • 35 posts
  • Gender:Male
  • Location:Pescara,Italy
Ok i've tried RemC module and finally WORK!!! any chance for QE/CI on Lion/ML???

#35
iWin32

iWin32

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Gender:Male
My Response to what TonyMacx86 did to us...again!
http://www.youtube.com/watch?v=QCDnYllrYhM
This may be for something else, but it describes how I feel right now!
Here's the sad proof: http://www.tonymacx8...resolution.html
Now I know first-hand how it feels when some people **cough-cough**TonyMacx86**cough-cough** rip offs people's work! Still no word, though, if it will be integrated into any TonyMacx86 project or not.

#36
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 382 posts
  • Gender:Male

My Response to what TonyMacx86 did to us...again!
http://www.youtube.com/watch?v=QCDnYllrYhM
This may be for something else, but it describes how I feel right now!
Here's the sad proof: http://www.tonymacx8...resolution.html
Now I know first-hand how it feels when some people **cough-cough**TonyMacx86**cough-cough** rip offs people's work! Still no word, though, if it will be integrated into any TonyMacx86 project or not.


I posted that thread in the TonyMacx86 lol. :rolleyes: That's officially me.
There were people on that site that still had hopes on getting their Intel HD Graphics to display native resolution. I decided to create a little tutorial there if there was anybody that was interested or maybe helping us out. I did give credit to you guys. I'm not sure if I can delete it though, but I will try to if you want me to.

Strangely nobody has even said if it works or not. Unless there aren't any 1st gen users anymore.

#37
iWin32

iWin32

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Gender:Male
GhostRaider, I actually suspected that it may have been you when comparing your usernames on InsanelyMac and TonyMacx86...after I posted that! Sorry if I came off too strong. It's just that I know that he has ripped off people's work before and claimed it as his own. Furthermore, he isn't staying true to our Open Source license and releasing it under his own, more commercial-type license. I just don't want the same thing for olarian's and RemC's work. Like I said before in the OP, I'm not a programmer; I just compiled the guide and everything else in the OP. It was olarian who created the base patch that required you to insert the DTD into the source code, and RemC modified it to pick it up from the EDID reading functionality already in the code. In fact, more people have reported success with RemC's module than using my guide to compile their own, machine-specific module. Both methods happen to work for me. And, as far as deleting the post on TonyMacx86, I'd just leave it for now. The damage is, unfortunately, already done. The only way I'd know how to get the thread off of the site is to contact their forum mod, but doing so would put them in a position to steal from us anyways. And, I'm not sure how you're familiar with the rules on this Forum, but we really don't support TonyMacx86, and the rules classify him as a "commercial spin-off of the OSx86 scene". If you want more clarification on that, look at this: http://www.insanelym...ort-tonymacx86/

#38
GhostRaider

GhostRaider

    InsanelyMac Sage

  • Members
  • PipPipPipPipPipPip
  • 382 posts
  • Gender:Male

GhostRaider, I actually suspected that it may have been you when comparing your usernames on InsanelyMac and TonyMacx86...after I posted that! Sorry if I came off too strong. It's just that I know that he has ripped off people's work before and claimed it as his own. Furthermore, he isn't staying true to our Open Source license and releasing it under his own, more commercial-type license. I just don't want the same thing for olarian's and RemC's work. Like I said before in the OP, I'm not a programmer; I just compiled the guide and everything else in the OP. It was olarian who created the base patch that required you to insert the DTD into the source code, and RemC modified it to pick it up from the EDID reading functionality already in the code. In fact, more people have reported success with RemC's module than using my guide to compile their own, machine-specific module. Both methods happen to work for me. And, as far as deleting the post on TonyMacx86, I'd just leave it for now. The damage is, unfortunately, already done. The only way I'd know how to get the thread off of the site is to contact their forum mod, but doing so would put them in a position to steal from us anyways. And, I'm not sure how you're familiar with the rules on this Forum, but we really don't support TonyMacx86, and the rules classify him as a "commercial spin-off of the OSx86 scene". If you want more clarification on that, look at this: http://www.insanelym...ort-tonymacx86/


Oh okay I wasn't familiar with the situation of TonyMacX86. What I will be doing instead is redirect that thread over there to a new thread that I will create in InsanelyMac in the Graphics>Intel subforum. I won't care if they ban me there for doing that. I want to post an easy guide for new users here to read and to enable native resolution. Many users here are not familiar with hackintosh. Of course I will mention and give all credit to those who contributed as well. I am also gonna post something a bit interesting there as well. It's not really a breakthrough but it's somewhat similar to a discovery that I have made back in the days of Snow Leopard. B) Problem is that I am not sure if this requires editing the DSDT because I did modify it by injecting os-info,model, and vram. If so I will also post on how to do that.

I'm somwhat busy so the thread won't be up for a while. However I will upload images of what I'm talking about here when I have access to my hackintosh.

Attached Files



#39
N3N4D

N3N4D

    InsanelyMac Protégé

  • Members
  • Pip
  • 3 posts
Hello everyone!

I have a problem. I'm using your Resolution folder with my DTD for desktop PC, ASUS 19" monitor to get 1440x900x32. I have intel i3 540 1st generation Clarkdale (Ironlake) with intel HD graphics. But when compile chameleon with 915resolution.c for my DTD I'm stuck with an error and don't get a Resolution.dylib file.

Here is the few last line of compile output:

================= Making all in Resolution =================
[MKDIR] /Users/cobra/Desktop/chameleon-imod/trunk/obj/i386/modules/Resolution
[CC] Resolution.c
[CC] edid.c
[CC] 915resolution.c
915resolution.c:279:17: error: variable 'type' is used uninitialized whenever
	 'for' loop exits because its condition is false
	 [-Werror,-Wsometimes-uninitialized]
...for (i = 0; i < sizeof(buses)/sizeof(buses[0]); i++)
				 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
915resolution.c:295:9: note: uninitialized use occurs here
							 if (type != CT_UNKNOWN) {
								 ^~~~
915resolution.c:279:17: note: remove the condition if it is always true
...for (i = 0; i < sizeof(buses)/sizeof(buses[0]); i++)
				 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
915resolution.c:132:2: note: variable 'type' is declared here
	 chipset_type type;
	 ^
1 error generated.
make[4]: *** [/Users/cobra/Desktop/chameleon-imod/trunk/obj/i386/modules/Resolution/915resolution.o] Error 1
make[3]: *** [all-recursive] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


#40
iWin32

iWin32

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 100 posts
  • Gender:Male
To GhostRaider, I think that's a swell idea! I hope that all goes well. And, to N3N4D, I'm not sure, but it likely is some sort of syntax error that occurred when you modified your DTD, like maybe a missing semicolon or something like that. Do me a favor, run
make clean
and try to compile it using the unmodified version of the attached Resolution folder. If it compiles without error, run this command:
make clean
and try modifying it again. If it then does the same error again, please post the portion you modified here. If, however, it displays an error with the unmodified folder, upload the error here like before, and you'll have to wait for someone with slightly more programming knowledge to help you out. AFAIK, although it has different timings, the unmodified folder uses 1440x900 resolution. In the mean time, did you try RemC's Resolution.dylib? It makes use of EDID reading capabilities already programmed into the module to insert the DTD on-the-fly, and therefore is universal.





Also tagged with one or more of these keywords: intel hd graphics, fix, resolution, chameleon, 915resolution


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy