Jump to content
bcc9

Intel HD Graphics 4600 (Haswell) working displayport

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.

Share this post


Link to post
Share on other sites
Advertisement

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. :(

Share this post


Link to post
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

Share this post


Link to post
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!!

Share this post


Link to post
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

Share this post


Link to post
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

Share this post


Link to post
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. 

Share this post


Link to post
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. :)

Share this post


Link to post
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

Share this post


Link to post
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!

Share this post


Link to post
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

Share this post


Link to post
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!

Share this post


Link to post
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...

Share this post


Link to post
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. 

Share this post


Link to post
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. :-)

Share this post


Link to post
Share on other sites

HI guys! 

Can someone attached me the PATCH for HD4600 to try in ML 10.8.5?

I have 4770K mobo ga-z87x-ud5h

No Graphic Card.

 

 

Thanks and go Forward!

Share this post


Link to post
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.

Share this post


Link to post
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!

Share this post


Link to post
Share on other sites

You could try it but I doubt it'll work. 5000 support is only included in 10.8.5. If you want support, running on 10.8.5 is your best bet to get it.

Share this post


Link to post
Share on other sites

You could try it but I doubt it'll work. 5000 support is only included in 10.8.5. If you want support, running on 10.8.5 is your best bet to get it.

And what else I have to do with 10.8.5? It's not native. 

Share this post


Link to post
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?

Share this post


Link to post
Share on other sites

And what else I have to do with 10.8.5? It's not native.

 

Trial and error with the DSDT patch for your system. Search the forum carefully, the code is here but you'll probably need to tweak it for your setup.

Share this post


Link to post
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. >_>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

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

Create an account

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

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By magneto5371
      Hello guys.
      I am setting up my first Hackintosh. Here are the specs:
       
      Mobo: Adlink M-342 with AMI Aptio 4 UEFI
      Intel i3 2120 SandyBridge
      4GB RAM
      500 GB SeaGate HDD
       
      So, here's the issue. The first part of the installation process works perfectly. At the end of the process, I am asked to perform a restart. I do that, it boots back to Clover. I select the HFS partition where I installed OSx, it loads for a while and then the screen goes blank.
      The only way I found so far to be able to boot to OSx is to set a FakeID in Clover's Graphics Injection menu. The only FakeID that works is this one:
      0x041680862 Which is not even a real FakeID. There is no other way, at the moment, to boot to OSx but this one, which is far from a perfect solution (the screen flickers every now and then and I cannot select resolutions different from 1024x768).
       
      I really need help on this. HD4600 is known to be fully compatible with OSx, so nobody else has ever had this issue before (apparently).
      Thanks for your help.
    • By Dmitry R
      Hi guys, 
       
      I've just faced with a strange problem of lacking QE/CI acceleration on a fresh 10.10.4 install on my Samsung NP900x3c, i7 ivy, HD4000, 1920x1080, ALC269VC, no dsdt patches, Clover 3259 bootloader. The thing is that with the same Clover config I can boot 10.9 and have full acceleration while 10.10 is booting but no QE/CI. Another thing is that 10.9 provides desktop and QE/CI only with the following ig-platform-id:  0x01660002 0x01660008 and 0x01660009, other ig-platform-id prevents 10.9 from booting, while 10.10 provides fully functional desktop with any ig-platform-id but no QE/CI at all
      I attached clover config, darwindump and ioreg of 10.10 Any help would be very much appreciated
       
      Thank you, Dmitry
      config.plist.zip
      Dmitry’s Samsung clover-only.zip
      DarwinDumper_2.9.8_Clover_X64_3259_Yos_dima.zip
    • By Austere.J
      After several weeks' work with @lisai9093, now it's time to post a guide.  
       
      GUIDE: Intel HD Graphics 5500 on OS X Yosemite 10.10.3  
       

       
      Before we get started:
       
      The basic idea to make Broadwell's integrated graphics card work does not change. If you have Intel HD Graphics 5300 or other IGPU models supported by AppleIntelBDWGraphicsFramebuffer.kext, you can try it by yourself.
       
      Brief Introduction:
       
      The basic idea to let Intel HD Graphics 5500 work is still injecting AAPL, ig-platform-id.
       
      However, Apple raised the minimum stolen memory in the AppleIntelBDWGraphicsFramebuffer binary of OS X Yosemite 10.10.3. Kernel panic will happen if the DVMT pre-allocated memory in BIOS settings is lower than 66MB. This is not a big deal for Desktop PCs users, because one can easily change the DVMT pre-allocated memory in BIOS.
       
      But this is catastrophic for laptop users, because
      (1) the default value of DVMT pre-allocated memory in most laptops BIOS is 32MB.
      (2) OEM will not unlock these advanced settings/menus for us.
      (3) We can try to modify BIOS but cannot pass the security check during flashing modified BIOS.
       
      Detailed Step-by-step guide:
       
      STEP 1: Check the current DVMT pre-allocated memory size.
      Open the Screen Resolution window, click the Advanced settings and check Dedicated Video Memory.
       

       
      After I played with changing DVMT pre-allocated memory in BIOS, the following pattern can be found.
      If Dedicated Video Memory = 0MB, then DVMT pre-allocated memory in BIOS settings is 32MB.
      If Dedicated Video Memory = 32MB, then DVMT pre-allocated memory in BIOS settings is 64MB.
      If Dedicated Video Memory = 64MB, then DVMT pre-allocated memory in BIOS settings is 96MB.
      If Dedicated Video Memory = 128MB, then DVMT pre-allocated memory in BIOS settings is 128MB.
       
      TABLES: Relationship between Dedicated Video Memory detected by OS and DVMT pre-allocated memory in BIOS settings.

      In general, if DVMT pre-allocated memory in BIOS settings is less or equal to 96MB, the StolenMemory that could be detected by OS is (DVMT - 32) MB.
      If DVMT pre-allocated memory in BIOS settings is larger or equal to 128MB, the StolenMemory that could be detected by OS is (DVMT) MB. (equal to the value of DVMT pre-allocated memory)
       
      Now let's come back to our main topic, Dedicated Video Memory >=64MB (i.e. DVMT pre-allocated memory >= 96MB) will pass the assertion/kernel panic.
      Note that OS X can not boot on some laptops if DVMT pre-allocated memory is >= 128MB.
      Therefore, if your current DVMT pre-allocated memory size <= 64MB (i.e. Dedicated Video Memory <= 32MB), you can either choose using our patch in STEP 2.1 or changing DVMT pre-allocated setting in STEP 2.2
       
      STEP 2.1: Apply the patch to pass the Stolen Memory assertion.
       
      We need to patch AppleIntelBDWGraphicsFramebuffer binary file.
      Find 39CF763C and replace it with 39CF773C.
       
      After using this patch, in theory you don't have to change your BIOS settings. You can try to inject ig-platform-id and see what happens.
      If you encounter some problems, try to modify Framebuffer data in AppleIntelBDWGraphicsFramebuffer binary.
      Detailed information on Broadwell's framebuffer can be found on this page.
       
      STEP 2.2: Using EFI Shell to change DVMT settings in BIOS.
       
      (1) Prepare a bootable USB drive with EFI Shell
      Prepare a USB stick and format it with FAT32 filesystem.
      Download this EFI shell and you can find a folder named BOOT after extracting.
      Copy this BOOT folder to your USB stick.
       
      (2) Dump/Fetch a completed BIOS file.
      You can use specific BIOS utility to save a copy of your BIOS on Desktop.
      e.g. For AMI Aptio UEFI BIOS, you can use AMI BIOS Utility.
       
      (3) Extract BIOS Settings from a BIOS file.
      Download UEFITools from https://github.com/LongSoft/UEFITool/releases
      Open your BIOS file with UEFITools.
      Find the module labeled with Setup and extract the PE32 image section in this module as a binary file.
       

       
      Now, you will have a binary file on your Desktop. In my case, I name it Setup.bin.
      Next, download the Universal IFR Extractor (Windows version only) from http://donovan6000.blogspot.ca/2014/02/universal-ifr-extractor.html or from here: Universal IFR Extractor.exe.
       
      Open the Universal IFR Extractor in Windows, open the binary you just extracted from UEFITools and click Extract to save the BIOS settings in plain text format.

       
      Now open the extracted setup IFR.txt and find the keyword "DVMT".
      And you can find the variable representing DVMT pre-allocated memory and its values.
       

       
      In this case, DVMT pre-allocated memory's variable is 0x1C3. The value of 96MB is 0x3. Record these two values.
      Next, restart your computer and boot from the USB drive with EFI Shell.
      Here, we use setup_var command to change our BIOS settings.
      syntax: setup_var address value OK, now type the command in EFI shell.
      In this case, the command is setup_var 0x1C3 0x3. (Change the value of 0x1C3 to 0x3, which means changing the DVMT to 96MB.)
      After changing the DVMT pre-allocated memory, go back to Windows and double check whether your current Dedicated Video Memory is 64MB. (96 - 32 = 64MB)
      STEP 3: Injecting AAPL, ig-platform-id
      You can use either Clover or DSDT/SSDTs to inject AAPL, ig-platform-id.
       
      If you want to use Clover, let InjectIntel = True and ig-platform-id=0x16160002.
       
      If you want to use DSDT/SSDT to inject AAPL, ig-platform-id, 0x16160002 is working fine.
      Then open your DSDT, find Device (GFX0) or Device (IGPU) or Name (_ADR, 0x00020000) and add the Device-Specific Method.
      Method (_DSM, 4, NotSerialized) { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x08) { "device-id", Buffer (0x04) { 0x16, 0x16, 0x00, 0x00 }, "AAPL,ig-platform-id", Buffer (0x04) { 0x02, 0x00, 0x16, 0x16 }, "model", Buffer (0x17) { "Intel HD Graphics 5500" }, "hda-gfx", Buffer (0x0A) { "onboard-1" } }) } Place your DSDT in /EFI/Clover/ACPI/Patched/
      Restart your computer and you will find Intel HD Graphics 5500 is working now.
       
      Some Issues you may encounter:
      (1) Garbled Screen Issue
      Enable Legacy Support in your BIOS settings.
       
      (2) Screen Freeze Issue (GPU hang and restart)
      Using FakeSMC 5.3.820 or other 5.x.xxx version will decrease the opportunity to freeze.
      (Note that please delete CPUSensors.kext from FakeSMC.kext if you get kernel panic related to CPUSensors.kext)
       
      Reference and Special Thanks:
      Thanks to Rehabman for his advice on garbled screen issue.
      Thanks to nguyenmac for his clues on freeze issue.
      Thanks to sontrg for his direction to BIOS modification.
      Thanks to Google for providing information. Thanks to the-darkvoid for his QHD+ Guide on HD4600.
×