Jump to content

Intel HD Graphics 4600 (Haswell) working displayport


bcc9
 Share

190 posts in this topic

Recommended Posts

My HD4600 is working by adding the SSDT listed here.  Thanks for bcc9 & others contribution.  However, it's not 100% reliable in my setup.  I'm using a Gigabyte Z87M-D3H with only internal Intel HD4600 connected to a Samsung LCD via DVI.  When the system is booting up, there is 30% chance that the system will hang at grey screen with a mouse cursor.  70% chances the system boots up normally.  If I change the DVI cable to a HDMI cable, the system will boot up normally every single time.  Therefore, the problem is only related with a DVI connection.  Does anyone has idea on why is it acting like this with DVI connection?

 

[EDIT] After installing the latest DP6, the DVI problem is gone.  This seems to be a bug in previous releases.

Link to comment
Share on other sites

Hello all,

 

I am trying to get my HD 4600 up and running under the 10.8.5b (no 10.9 booting solution yet) but I am so confused I am not exactly sure what to do. I have injected the DSDT fix mentioned here but it doesn't work. Am I supposed to patch AppleIntelFramebufferAzul.kext or something? If so, where should i look in my ioreg to find what i need? Worth mentioning too that i'm using a mobile 4600 which is listed in Azul and 5000 kexts so i'm hoping I can get it working. My IDs are 8086:0416. I have an ongoing thread started over here which has more details: http://www.insanelymac.com/forum/topic/290687-help-needed-hp-envy-17t-j000-quad-on-mlmavericks/

 

Any help would be GREATLY appreciated! I am clueless when it comes to IGPU fixes. :(

Link to comment
Share on other sites

Hello all,

 

I am trying to get my HD 4600 up and running under the 10.8.5b (no 10.9 booting solution yet) but I am so confused I am not exactly sure what to do. I have injected the DSDT fix mentioned here but it doesn't work. Am I supposed to patch AppleIntelFramebufferAzul.kext or something? If so, where should i look in my ioreg to find what i need? Worth mentioning too that i'm using a mobile 4600 which is listed in Azul and 5000 kexts so i'm hoping I can get it working. My IDs are 8086:0416. I have an ongoing thread started over here which has more details: http://www.insanelymac.com/forum/topic/290687-help-needed-hp-envy-17t-j000-quad-on-mlmavericks/

 

Any help would be GREATLY appreciated! I am clueless when it comes to IGPU fixes. :(

It looks like you are going to have to inject you Vendor id and Device id in Intel5000Graphics.kext In Info.plist if you haven't already done so. <- Disreguard this it is there. I've found for me that injecting the AAPL,ig-platform-id Via stand alone SSDT is hit or miss. Now in my case when I extract SSDT via Win7 I have 7 SSDTS. SSDT-7 contains video reference so this is where I like to place AAPL,ig-platform-id. Plus it lets me avoid the use of DSDT with Clove UEFI boot. You may have to play with Platform-Id values as device 0416 may not work with the same id as 0412. i.e. 0300220D

 

​See .zip here for example:(do not use on your system, as it may not match what you have. Example only)

You can also use this in Org.chameleon.boot.plist with DeviceProperties. ->

7e0000000100000001000000720000000200000002010c00d041030a000000000101060000027fff0400180000004400650076006900630065002d00690064000000080000000300220d2c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d00690064000000080000000300220d

ssdt-2.aml.zip

Link to comment
Share on other sites

Cobra03 I wish to thank you for the org.chamelean.boot.plist device properties advice. I am using an asus z87 deluxe/dual motherboard with mavericks dp6 and the only way I could use the second display, my apple thunderbolt display, from the integrated graphics was by removing the appleintelHD500graphics.kext from s/l/e. Knew I did not have real functionality of the integrated graphics but at least came up in full scale. Anyway have been waiting for possible device properties for the org.chameleon.boot.plist  that you posted here. I am not that savvy on injecting the other ways everyone has been doing. Now I have full functioning of the integrated graphics  and reading correctly in system report. This was the last thing I needed to get to work on this motherboard. Really nice to have my thunderbolt display up and working correctly from the motherboard. No thunderbolt function but graphics up and working.

 

Thanks again!!

  • Like 1
Link to comment
Share on other sites

However, he's probably hoping that the bootloader will just handle this like it does for older intel hd graphics. I've seen no commit to the mainline to more generally handle AAPL,ig-platform-id injection. Chameleon mainline that is.

Ermac now has an experimental chameleon build that does this: http://www.insanelymac.com/forum/topic/288241-intel-hd4000-and-haswell-inject-aaplig-platform-id/page-4?do=findComment&comment=1940261

 

Works for me: http://www.insanelymac.com/forum/topic/288241-intel-hd4000-and-haswell-inject-aaplig-platform-id/page-4?do=findComment&comment=1940679

Link to comment
Share on other sites

 

It looks like you are going to have to inject you Vendor id and Device id in Intel5000Graphics.kext In Info.plist if you haven't already done so. <- Disreguard this it is there. I've found for me that injecting the AAPL,ig-platform-id Via stand alone SSDT is hit or miss. Now in my case when I extract SSDT via Win7 I have 7 SSDTS. SSDT-7 contains video reference so this is where I like to place AAPL,ig-platform-id. Plus it lets me avoid the use of DSDT with Clove UEFI boot. You may have to play with Platform-Id values as device 0416 may not work with the same id as 0412. i.e. 0300220D

 

​See .zip here for example:(do not use on your system, as it may not match what you have. Example only)

You can also use this in Org.chameleon.boot.plist with DeviceProperties. ->

7e0000000100000001000000720000000200000002010c00d041030a000000000101060000027fff0400180000004400650076006900630065002d00690064000000080000000300220d2c0000004100410050004c002c00690067002d0070006c006100740066006f0072006d002d00690064000000080000000300220d

 

Hello Cobra03 and thank you for the fast reply!  ^_^

 

My system has 5 SSDTs and my GFX0 is listed under SSDT-1 (ssdt.aml, ssdt-1.aml --> naming) I initially tried simply editing those like I would any other DSDT but the changes never show in ioreg. Maybe there are compile errors, maybe unseen issues, whatever it is, I can't get it to work so i've resorted to taking pieces from them and stitching them into my already edited DSDT. It's not what i'd like to do but I don't see any other choices ATM. It sucks too because i'm probably messing up my table info and lacking possibly required info when I do this but i've pleaded with the forum for help fixing them with no response yet.  :(

 

Intel HD editing is confusing as hell to me. Reading through pike's blog was interesting but really just made my confusion worse. I'm having trouble connecting the dots. What does the DSDT edit do? Are we tricking the system into believing we have a different device or is it something else? I would like to try to understand this more if possible.

 

Thanks for the suggestions! I tried out the device-properties hex you posted but it doesn't work for me. Verbose loading hangs near login and I have to hard reset. I removed my GFX0 patch before testing so everything was clean and original. I also upgraded to Chameleon 2258 and tried again with and without the GraphicsEnabler=Yes flag but same result. I tried it all again without the hex to see if the new Chameleon would solve it. Sadly, that didn't work either. Was I supposed to keep the GFX0 fix for testing? >_<

 

I am hopeful to switch to Clover in the future but right now, I can't get it past kext loading without it getting stuck. I don't think my hardware is supported yet or something. Tested many different revisions.  Now, when you say play with platform-id values, how would I go about figuring out which ones to test? That's what really confuses me since I don't know what the purpose of it is yet. Sorry but could I trouble you for some n00b-friendly advice on how to proceed next?

 

My apologize for writing so much but I have many questions and few answers. I really appreciate the help and any advice that I recieve!  :D

Link to comment
Share on other sites

I'll do what I can to help you. But first we need some more info before we even start. First, list MB, and processor. Next post your DSDT, and SSDT, SSDT-1 and org.chameleon.boot.plist. Best to zip them and attach so I can see where you may have errors. Once I see what going on I'll try and explain and answer your questions the best I can. In reality its not that difficult ONCE you get the basic premiss down.

 

One thing that I think that is important and bcc9 brought this up earlier in the thread is that DSDT editing and SSDT editing/injection are not all that different. But SSDTs are usually smaller and easier to work with. However, if you have injected something via DSDT you can not over ride it with SSDT. Which mean we always want to start with clean DSDT and then decide where best to make changes.

 

As far as DSDT edits. There are some cases where we may be "tricking" the system. But over all it is just a process to allow the system read, understand and use the hardware we have. 

Link to comment
Share on other sites

My CPU is an i7 Haswell 4700MQ, I have no idea what my MB is. It's an HP Envy 17t-j000 Quad laptop. The product page for it is here: http://www.shopping.hp.com/en_US/home-office/-/products/Laptops/HP-ENVY/E4S78AV?HP-ENVY-17t-j000-Quad-Edition-Notebook-PC

 

I have attached my clean DSDT, clean SSDTs, current and previous DSDTs, broken SSDT-1 (that I attempted to edit but ioreg won't load), org.chameleon.Boot.plist and a minimal lspci dump of my hardware (minus my WiFi card because I swapped that). Here it is: Envy-17t-j000_ML_Stuff.zip

 

I appreciate the support. I've pretty much taken this as far as my expertise will take it. I'll need help to get much further. I'm putting this to bed for tonight though. I'll check the thread again tomorrow.

 

Thank you again. :)

Link to comment
Share on other sites

My CPU is an i7 Haswell 4700MQ, I have no idea what my MB is. It's an HP Envy 17t-j000 Quad laptop. The product page for it is here: http://www.shopping.hp.com/en_US/home-office/-/products/Laptops/HP-ENVY/E4S78AV?HP-ENVY-17t-j000-Quad-Edition-Notebook-PC

 

I have attached my clean DSDT, clean SSDTs, current and previous DSDTs, broken SSDT-1 (that I attempted to edit but ioreg won't load), org.chameleon.Boot.plist and a minimal lspci dump of my hardware (minus my WiFi card because I swapped that). Here it is: attachicon.gifEnvy-17t-j000_ML_Stuff.zip

 

I appreciate the support. I've pretty much taken this as far as my expertise will take it. I'll need help to get much further. I'm putting this to bed for tonight though. I'll check the thread again tomorrow.

 

Thank you again. :)

Lets start out simple

 

Try these and use no other SSDT's. Just place DSDT and org.chameleon.boot.plist in /Extra boot with -v only

 

Also What version os OS X? 10.8.4 10.8.5 10.9?? If 10.8.4 let me know before you try these!!

New.zip

Link to comment
Share on other sites

Lets start out simple

 

Try these and use no other SSDT's. Just place DSDT and org.chameleon.boot.plist in /Extra boot with -v only

 

Also What version os OS X? 10.8.4 10.8.5 10.9?? If 10.8.4 let me know before you try these!!

Cobra03, tellme if I can try this in 10.8.4 with mach 10.8.5 thanks!

Link to comment
Share on other sites

Verbose hangs before login screen and presents new message:

Hmm...sizes mismatch from 3200 to 20.

 

I'm running 10.8.5b. Thanks.

Ok now we know its video related only. The error is there for me also but does not have an effect on the ability to boot. Now what you need to do is try different Frame buffer values until you find one that works. If you look in the DSDT under IgPU you see where I commented about the values. Change them there.

 

Try these in there place:

 

0000160A

0000260A

00001204

00002604

0700260D

 

Replace on at a time and reboot until you get one that works.

 

Also I made a small change to your DSDT try this new one...

Cobra03, tellme if I can try this in 10.8.4 with mach 10.8.5 thanks!

Picasso no you can not make HD4600 work under 10.8.4. There are no driver support for this. Either update to 10.8.5(best) or at minimum extract drivers for IntelHD5000 + AppleintelAzulFramebuffer.kext (not so good). 

New1.zip

  • Like 1
Link to comment
Share on other sites

Ok now we know its video related only. The error is there for me also but does not have an effect on the ability to boot. Now what you need to do is try different Frame buffer values until you find one that works. If you look in the DSDT under IgPU you see where I commented about the values. Change them there.

 

Try these in there place:

 

0000160A

0000260A

00001204

00002604

0700260D

 

Replace on at a time and reboot until you get one that works.

 

Also I made a small change to your DSDT try this new one...

Picasso no you can not make HD4600 work under 10.8.4. There are no driver support for this. Either update to 10.8.5(best) or at minimum extract drivers for IntelHD5000 + AppleintelAzulFramebuffer.kext (not so good). 

I did a partition with 10.8.5 (not so stable as 10.8.4 sometimes I get Kernel Panic at CPU ).

Maybe it's for the acceleration that I don't have... Can you tellme how to get it?

Thanks Cobra!

Link to comment
Share on other sites

Ok now we know its video related only. The error is there for me also but does not have an effect on the ability to boot. Now what you need to do is try different Frame buffer values until you find one that works. If you look in the DSDT under IgPU you see where I commented about the values. Change them there.

 

Try these in there place:

 

0000160A

0000260A

00001204

00002604

0700260D

 

Replace on at a time and reboot until you get one that works.

 

Also I made a small change to your DSDT try this new one...

Picasso no you can not make HD4600 work under 10.8.4. There are no driver support for this. Either update to 10.8.5(best) or at minimum extract drivers for IntelHD5000 + AppleintelAzulFramebuffer.kext (not so good). 

 

Holy ****!!! It works! Cobra03, I have no idea where or how you came up with those values to test but I couldn't be happier that you did. Those values were what I was missing before. Thank you so much for helping me! ^_^

 

*ahem* Now that's out of my system, I have things to report. First and foremost, It's detected as an Intel HD Graphics 5000 1024MB. It does work but not without flaws as expected. I would have posted this update a bit sooner but I spent the last 2-3 hours doing some testing. Here's some info from those tests:

 

0000160A = Working

0000240A = Working

00001204 = Not working

00002604 = Working

0700260D = Working but issues make it almost useless

 

Before:

 

4600HD_sysprof_before.png

 

After:

 

4600HD_systprof_after.png

 

160A, 240A & 2604 are my primaries right now, which just means I did the most testing with them. They all seem to behave in a very similar way. All of them have trouble upon boot. They all have severe initial screen flickering and backlight flashes to the point where it would probably induce seizures to those who have them. Originally, that was as far as I got with them, but was just happy to have my GFX working. Since the screen constantly flickering on and off, with TONS of horrible artifacts each time, trying to accomplish anything was a chore to say the least. Here is a screen of what I was dealing with at boot time:

 

4600HD_gargled.png

 

I decided to try to check the display preferences to see if I had other resolutions available and after changing the refresh rate from 60Hz to 40Hz, most of the artifacts and all of the screen flashing stopped! I thought it was a fluke so I tried changing the refresh rate back to 60Hz only to realize that it was still behaving properly. After I figured this out, I started testing it with each value change in DSDT to see if the others behave the same way. Turns out, they do! Every single one of them works using this method. For now though, every time I boot the system, I have tolerate the flashing and flickering just long enough to login and try to navigate to the display preferences to switch the refresh rate. Afterwords though, the screen will behave as it is supposed to. If only I could figure out a way to force the refresh rate switch on boot, then I wouldn't have to deal with it at all.

 

The only exception to this is 0700260D, which I believe shuts off my backlight or something, because it is the most difficult to use. I can't even see anything after I login since it only flickers on only once or twice and only for a brief second or two but not long enough to do anything. Which is why I labeled it as working but almost useless.

 

Even after the fix is set, It still has some issues though. Performance-wise, it's as solid as a rock. I play tested several games (Borderlands, Batman Arkham Asylum, Super Meat Boy!, Quake III Arena and LIMBO) and all of them run very, very well. I could only go so far though since my audio stutters so much that it's unusable, which I blame on not having CPU support. Still, I was very pleased to see how well it can handle games. I never tested HDMI, so I don't know the state of that right now. The actual issues are small. It's mostly just small cosmetic weirdness, like this:

 

4600HD_discoloration.png

 

and this (personal info blurred):

 

4600HD_discoloration_2.png

 

What would cause this? It's only in a few areas as shown. Could this simply be a bug from 10.8.5 being in beta state? If I have to, i'll live with it otherwise, i'd be interested in trying to resolve it.

 

Oh and small correction to my last post. it was actually 3100 to 20, not 3200 and yes it's still there during verbose boot, except obviously there is no hanging now. :)

 

Lastly, I have a few remaining questions. In the org.chameleon.Boot.plist you sent me to use I see npci=0x2000, what does this do? Is it safe to keep or should I remove it for the future? Similar question about SystemType=10, I was using 2 because I believed it was for a laptop, what does 10 mean and should I keep using it? Would you be willing to incorporate whatever changes you made to the DSDT you sent me into my current one that I sent you? I noticed you fixed a lot of the compile warnings and stuff too, it would be awesome to be rid of those in mu current one too. In fact, would it be possible to just merge everything from my SSDT-1 into my current DSDT? It has my GeForce and HDMI audio in there and I was also trying to get those in my DSDT too for future patching. Sorry to ask for so much and I don't want to further hassle you since you've already done so much for me but I would greatly appreciate any additional support if you're willing to provide it. If not, it's understandable too.

 

Again, thank you SO MUCH for your help in helping me fix this! ^_^

 

P.S. -- Is this the first working laptop 4600? I don't recall seeing any others posting success. Hmm...

Link to comment
Share on other sites

I'm glad it's working!  :thumbsup_anim: I don't have much time this weekend to go into more details do to family commitments. But as far as Npci=0x2000 leave it there as I've found it is required on the vast majority of systems. Its also safe to leave systemid=10 you can play with this if you want. But my theory is if it ain't broke don't fix it...The graphics bugs may be related to the Nvidia card or Framebuffer. Hard to tell at this point. Is there a way to disable the Nvidia graphics from Bios?? If not search for Pini function on how to possibly disable graphics VIA DSDT. Also check the amount of memory allocated for HD4600 in bios try 32mb 64 mb and 96mb. Chances are if you go any higher you will get a Kernel panic. Note however this value has no real effect on graphics performance. It just sometimes helps to smooths things out. The logical thing to do at this point is to leave DSDT as is until either one of the above methods corrects the issues you still have or 10.8.5 GM comes out. Otherwise you may be chasing fixes that can only be fixed via update. 

Link to comment
Share on other sites

OK, well keep me informed if you can find time to. Trying to merge my SSDT-1 with my DSDT was not working well for me so until I can get that working properly, I won't be able to disable my geforce, which was something I wanted to do for better battery life. Since my bios options are terrible and very limited, I have none for my GeForce or for my 4600 so I can't change anything in that to fix the gfx corruption. I'll play around more with the DSDT and see if that gets me anywhere. I might try to figure put a way to get my backlight brightness fixed too, since I currently am stuck on full brightness with no options to change it. :-)

Link to comment
Share on other sites

I did a partition with 10.8.5 (not so stable as 10.8.4 sometimes I get Kernel Panic at CPU ).

Maybe it's for the acceleration that I don't have... Can you tellme how to get it?

Thanks Cobra!

Have you tried running 10.8.5b with the 10.8.4 kernel? That's what i've been doing for quite some time now. If you are having CPU troubles the stock ACPIPlatform might cause problems, so it might be a wise idea to downgrade that too. If all else fails, try NullCPUPM to bypass the CPU check until the final is live.

Link to comment
Share on other sites

Have you tried running 10.8.5b with the 10.8.4 kernel? That's what i've been doing for quite some time now. If you are having CPU troubles the stock ACPIPlatform might cause problems, so it might be a wise idea to downgrade that too. If all else fails, try NullCPUPM to bypass the CPU check until the final is live.

Yes, you are right. I downgrade to 10.8.4 with mach kernel 10.8.5 and it's stable. The beta is not ready.

Don't you know if I copy hd5000 from 10.8.5 and place into 10.8.4 can i get hardware acceleration for video? Thanks!

Link to comment
Share on other sites

//    { 0x80860a16, "HD Graphics ???? Mobile" }, // Haswell-ULT Integrated Graphics Controller - AppleIntelHD5000Graphics.kext

 
I think this is the HD4400 device id. Has anyone tried it yet?
Link to comment
Share on other sites

I'm glad it's working!  :thumbsup_anim: I don't have much time this weekend to go into more details do to family commitments. But as far as Npci=0x2000 leave it there as I've found it is required on the vast majority of systems. Its also safe to leave systemid=10 you can play with this if you want. But my theory is if it ain't broke don't fix it...The graphics bugs may be related to the Nvidia card or Framebuffer. Hard to tell at this point. Is there a way to disable the Nvidia graphics from Bios?? If not search for Pini function on how to possibly disable graphics VIA DSDT. Also check the amount of memory allocated for HD4600 in bios try 32mb 64 mb and 96mb. Chances are if you go any higher you will get a Kernel panic. Note however this value has no real effect on graphics performance. It just sometimes helps to smooths things out. The logical thing to do at this point is to leave DSDT as is until either one of the above methods corrects the issues you still have or 10.8.5 GM comes out. Otherwise you may be chasing fixes that can only be fixed via update. 

Just an update on progress since last time. Since I don't have any options in my BIOS to modify the VRAM provided to the 4600, I tried playing around with the values under DSDT. I literally tested every value listed from 2GB - 1MB and it didn't seem to do anything about the glitches and artifacts. Some may have made it glitch faster, giving more image to work with before I would fix it but otherwise, no real significant change. I haven't looked much into trying to disable my GeForce yet, but I am planning on giving it a test within the next few days. At the very least, i'm hoping my battery performance goes up with it disabled.

 

I changed my SystemType back to 2 and haven't had any issues since that i've noticed. I briefly tested out ssdtPRGen to see if maybe, just maybe I could get CPUPM to work with my Haswell and give me support but that didn't work either. It's looking like waiting for 10.8.5 final is my only option at this point.

 

I also merged your IGPU change into my current DSDT. Performance doesn't seem to have changed since doing so, so that's good. I did notice that after the merge, I am given a brightness slider under Display prefs but it's purely cosmetic and doesn't work. I really need to look into fixing that. >_>

Link to comment
Share on other sites

 Share

×
×
  • Create New...