Contribute
Register

Skylake Intel HD 530 Integrated Graphics Working as of 10.11.4

Status
Not open for further replies.
alalal, here's what worked for me. I have an Asus Maximus VIII Hero motherboard, but the process might work for your motherboard too. The steps are pretty generic so I think it could work for you.

Some background:

Processor: i7 6700K
Graphics: Intel HD 530
Available Monitor Ports: 1 x DisplayPort, 1 x HDMI

My "primary" display is a HP ZR30W @ 2560x1600 connected via DisplayPort.
My "secondary" display is a Asus VK278 @ 1920x1080 connected via HDMI.

What was happening, was that I could not boot into OS X with both monitors connected. I haven't solved that, but now I'm able to "hot-plug" the 2nd monitor AFTER I login to OS X.

Here's what I did:
1. Boot into OS X with just one monitor connected. (In my case, I have the DisplayPort as my primary connection.)
2. Visit shilohh's post here: http://www.tonymacx86.com/threads/b...-imac-15-or-imac-17-system-definition.183113/
3. Download "AGDPfix.app.zip" at the end of the first post in that thread. Unzip and run the app.
4. Reboot after the app patch is complete (ensuring the HDMI cable remains disconnected).
5. Login to OS X, wait for desktop to load.
6. Connect the HDMI cable, wait for monitors to respond. (By default, my displays were mirrored.)
7. Go into System Preferences -> Displays -> Arrangement and uncheck "Mirror Displays".
8. Drag the displays to arrange and align them properly.

Whenever I reboot my computer, I still cannot have the HDMI cable connected, or I get a black screen instead of a login prompt. I can "hot-unplug" the HDMI cable if I forget to boot with it disconnected, but then if I re-plug it later, my computer becomes unresponsive and I have to force shutdown. (Can't even login with screen sharing at that point.)

I'm attaching my config.plist for reference too. Again, keep in mind it's for an Asus Maximus VIII board :)
 

Attachments

  • config.plist
    6.8 KB · Views: 227
I using vga cablo and doesnt work HD 530. Help me please.

My motherboard H110m Pro Vd

I'm using HDMI > DMI cable, connected to my Dell U2312HM monitor (1920x1080) works very well with HD 530. My motherboard H110m-d.
 
Any chance you could help me a little with this

Just to clarify, disabling AppleGraphicsDevicePolicy(AGDP) board-id's was necessary when using certain system definitions when the policy checked GFX0. Nvidia graphics shows under GFX0 in the DSDT. No you don't have a Nvidia card but the linked thread has a how to disable AGDP method.

If you want to create an SSDT to inject a graphics rename this can be done using shilohh's thread. Usually integrated graphics would be edited in the DSDT or SSDT to IGPU. I'm not sure what version of OS X 10.11.X it began but even with integrated graphics defined as IGPU in an SSDT, AGDP needed to be disabled when using the conflicting board-ids/system definitions. The policy seems to check and disable HD530 multi-monitor support using iMac17,1.

If you've not renamed GFX0 to IGPU in your DSDT you could rename GFX0 to GFX1 in config.plist/ACPI/DSDT/Patches.
Name : Rename GFX02GFX1
Find <47 46 58 30>
Replace <47 46 58 31>

Note, this does not allow HD530 dual monitors to boot. Hot plugging or(for me) switching my HDMI monitor on after POST allows me to dual boot into OS X El Capitan, taking out the need to hot plug.
 
Just to clarify, disabling AppleGraphicsDevicePolicy(AGDP) board-id's was necessary when using certain system definitions when the policy checked GFX0. Nvidia graphics shows under GFX0 in the DSDT. No you don't have a Nvidia card but the linked thread has a how to disable AGDP method.

If you want to create an SSDT to inject a graphics rename this can be done using shilohh's thread. Usually integrated graphics would be edited in the DSDT or SSDT to IGPU. I'm not sure what version of OS X 10.11.X it began but even with integrated graphics defined as IGPU in an SSDT, AGDP needed to be disabled when using the conflicting board-ids/system definitions. The policy seems to check and disable HD530 multi-monitor support using iMac17,1.

If you've not renamed GFX0 to IGPU in your DSDT you could rename GFX0 to GFX1 in config.plist/ACPI/DSDT/Patches.
Name : Rename GFX02GFX1
Find <47 46 58 30>
Replace <47 46 58 31>

Note, this does not allow HD530 dual monitors to boot. Hot plugging or(for me) switching my HDMI monitor on after POST allows me to dual boot into OS X El Capitan, taking out the need to hot plug.

I have not renamed GFX0 to IGPU in my DSDT (or at least not consciously!). I tried to do what you suggested by loading EFI/CLOVER/config.plist into XCode, and added a second entry in ACPI/DSDT/Patches as follows:
View media item 186909First time I've done this, so I pretty much copied this from the Item 0 entry in the array. The raw file has the values Base64 encoded by the look of it. Spaces were removed by XCode.

However, it does not make any difference (hotplug does not work, System Report still shows only one monitor). A reboot with both monitors attached (I know you said this doesn't work) still corrupts video and System Report (accessed through screen sharing) still shows only one monitor.

The rename does appear to have had effect (see IORegistryExplorer screenshot below):
Screen Shot 2016-06-08 at 20.53.44.png


For good measure I tried connecting the second display by DVI rather than HDMI, but no change.

Any ideas?

Is there a way to make it work AND have booting with two monitors working?

For clarity I did not disable AGPD as I think you are saying if the graphics controller is not called GFX0, it won't be an issue.
 
Last edited:
Is there a way to make it work AND have booting with two monitors working?

For clarity I did not disable AGPD as I think you are saying if the graphics controller is not called GFX0, it won't be an issue.
You should be able to get dual monitors to work with the hot plug method. First add the 4th display patch from Post#1(credit toleda). Looking at your IOReg screen shot you have AppleIntelFramebuffer@0,@1(Display-HDMI)and@2.
The connector @0 is an unused connector leaving only 2 external display port connectors for your 3 port motherboard without the 4th port patch. Could be that the 2nd HDMI port is falling on @0 or could be that DVI port is @2.
After adding the 4th display patch shutdown your system and boot with the 2nd HDMI monitor as primary, if it reaches the desktop open IOReg and take another screen shot at the same entry GFX1, patches may/may not be necessary.
Hot plug the first HDMI connection to test 2 screens, if this works, great, if not boot with the other HDMI screen as primary and then hot plug the second HDMI connection. OS X may like one monitor as master.
AGDP is disabled using GFX1.

I've got to run, be back tomorrow alalal.
 
Last edited:
You should be able to get dual monitors to work with the hot plug method. First add the 4th display patch from Post#1(credit toleda). Looking at your IOReg screen shot you have AppleIntelFramebuffer@0,@1(Display-HDMI)and@2.
The connector @0 is an unused connector leaving only 2 external display port connectors for your 3 port motherboard without the 4th port patch. Could be that the 2nd HDMI port is falling on @0 or could be that DVI port is @2.
After adding the 4th display patch shutdown your system and boot with the 2nd HDMI monitor as primary, if it reaches the desktop open IOReg and take another screen shot at the same entry GFX1, patches may/may not be necessary.
Hot plug the first HDMI connection to test 2 screens, if this works, great, if not boot with the other HDMI screen as primary and then hot plug the second HDMI connection. OS X may like one monitor as master.
AGDP is disabled using GFX1.

I've got to run, be back tomorrow alalal.

OK, I added the 4 display patch. Here it is in situ. Note that there are three other HDMI patches (presumably put there by Clover, I certainly did not add them manually) to do with ports 5, 6 and 7 (which I don't have, just 2 x HDMI + DVI). I have not tried disabling these as I suspect they are there for a reason.

Screen Shot 2016-06-09 at 10.11.30.png

I then successfully booted up using the second HDMI only (as you asked) - IE this was the one I was not using before. This worked, and IORegistryExplorer showed:

Screen Shot 2016-06-09 at 10.14.28.png

Which was good news. However, hot plugging the original display did not work (no output on HDMI). I then rebooted with the first screen (only) attached, and attempted to hotplug the second. This failed in the same way. For completeness, I tried the second screen on DVI again, which also failed. I also tried booting with both HDMI connections in, with the same result (though interestingly both screens were mirrored until 2/3 of the way through the boot process, where the connection I've described as 'second' switched off, and the one I described as 'first' became corrupt shortly thereafter - so I think the 'first' display is indeed the primary one in some sense).

So now I can use either one screen or the other, but not both :(

Looking at this post, which has:
Code:
#define CONNECTORTYPE_LVDS 0x00000002 /* Ie internal Low Voltage display,
such as laptop */
#define CONNECTORTYPE_DVI_DUAL 0x00000004 /* Dual link(?) DVI */
#define CONNECTORTYPE_VGA 0x00000010 /* Per mucha */
#define CONNECTORTYPE_SVIDEO 0x00000080 /* Per mucha */
#define CONNECTORTYPE_DVI 0x00000200 /* Single link DVI(?), Per azimutz */
#define CONNECTORTYPE_DP 0x00000400 /* Displayport */
#define CONNECTORTYPE_HDMI 0x00000800
and inspecting connector-type in the framebuffer entries in IORegistryExplorer, it would seem Framebuffer 0 is DVI, FrameBuffers 1 and 2 are HDMI (and FrameBuffer 2 is now fully set up when it wasn't before the patch), and FrameBuffer 3 is DisplayPort (interesting as the GA-Z170N does not have DisplayPort, just DVI + 2 x HDMI).

Thanks for your help so far, but I don't quite seem to have got there yet. Any further ideas?
 
Last edited:
Any further ideas?
Clover doesn't add connector edits so if you didn't add them then maybe you're using someone else's config.plist.
The patches you have in place eliminates the point of adding the 4th display patch. The idea is get one of your connections away from Port 0x0. The Port0x7 patch you have in place is patching the unused connector on Port0x0. What we want to see is that your 3 ports end up with a similar arrangement as the example below.
  • Framebuffer@0 > Port0x0 unused connector
  • Framebuffer@1 > Port0x5 HDMI
  • Framebuffer@2 > Port0x6 HDMI
  • Framebuffer@3 > Port0x7 DVI
Remove connector edit patches from config.plist/KernelandKextPatches/KextsToPatch leaving only the 4th display patch. Boot your system connected to each individual port, open IOReg, note the port number and the external port connector type i.e Main HDMI display is on Port0x5. Reply with the results and you could also test hot plugging a second display at the desktop.
 
Clover doesn't add connector edits so if you didn't add them then maybe you're using someone else's config.plist.
The patches you have in place eliminates the point of adding the 4th display patch. The idea is get one of your connections away from Port 0x0. The Port0x7 patch you have in place is patching the unused connector on Port0x0. What we want to see is that your 3 ports end up with a similar arrangement as the example below.
  • Framebuffer@0 > Port0x0 unused connector
  • Framebuffer@1 > Port0x5 HDMI
  • Framebuffer@2 > Port0x6 HDMI
  • Framebuffer@3 > Port0x7 DVI
Remove connector edit patches from config.plist/KernelandKextPatches/KextsToPatch leaving only the 4th display patch. Boot your system connected to each individual port, open IOReg, note the port number and the external port connector type i.e Main HDMI display is on Port0x5. Reply with the results and you could also test hot plugging a second display at the desktop.

Thanks.

I didn't add those entries to config.plist knowingly. What I did was follow (exactly) the instructions on the GA-H170N-WIFI guide. This has:
so I'm guessing they came from there.

I think the configuration you suggest is actually almost configuration I already had before I did what you suggest above (disabling port 5 and 6 patches):
  • Framebuffer@0 was connected to port 7 with connector type <00 02 00 00> which is DVI.
  • Framebuffer@1 was connected to port 5 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@2 was connected to port 6 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@3 was connected to port 7 with connector type <00 04 00 00> which is DisplayLink.
Note, Framebuffer@0 and Framebuffer@3 are connected to the same port.

I then as you suggested disabled (rather than removed - hope that's OK) the port 5 and port 6 patches, leaving the patch for port 7 in. On a reboot, the resolution of the main screen had been reduced from 2560x1600 to 1080p. Now we have:
  • Framebuffer@0 is still connected to port 7 with connector type <00 02 00 00> type DVI (unchanged).
  • Framebuffer@1 is still connected to port 5 but with connector type <00 04 00 00> - DisplayLink (which I don't have, but perhaps explains 1080p)
  • Framebuffer@1 is still connected to port 6 but with connector type <00 04 00 00> - DisplayLink (as above)
  • Framebuffer@3 is still connected to port 7 with connector type <00 04 00 00> and is - the same - which is DisplayLink. I note Framebuffer@0 and Framebuffer@3 are connected to the same port.

Rebooting with the secondary HDMI port did the same thing, i.e. I got 1080p, and hotplugging the primary failed.

IORegistryExplorer looks like this:
Screen Shot 2016-06-09 at 20.25.26.png


At a guess here, I think the patches for port 5 and port 6 were right, as they made port 5 and 6 HDMI as opposed to DVI - that seems to be correct (as opposed to Framebuffer@5 and Framebuffer@6). However, Framebuffer@0 should somehow be marked as unused (I'm guessing the iMac 17,1 normally has that as its internal panel - it's currently DVI), and Framebuffer@3 should be marked as DVI, and not on the same port as Framebuffer@0. Alternatively Framebuffer@0 should be DVI and Framebuffer@3 simply disabled.

I've backed this change out (i.e. reenabled the port 5 and port 6 changes).

Also after this change was put in then backed out, I have 4 Intel Accelerator entries with 2 crossed out in red (see below). Originally there were 2, both in black. Should I worry?

Screen Shot 2016-06-09 at 20.43.59.png
 
Last edited:
leaving the patch for port 7 in. On a reboot, the resolution of the main screen had been reduced from 2560x1600 to 1080p.
Read post#237 again which says:
Remove connector edit patches from config.plist/KernelandKextPatches/KextsToPatch leaving only the 4th display patch
Both your results in Post#238 are flawed. Neither looks like the example in post#237 which is what we are hoping to achieve.
First result 2 x Port0x5, 2 x Port0x7. (as you noted)
Second result 1 x Port0x5, 1 x Port0x6, 2x Port0x7.

Ignore the screen resolution for now, we weren't finished yet. To get anywhere at all with multi-monitor we need to begin with a un-patched framebuffer which can be used with your port layout. Once this appears correct in IOReg we can patch the individual connectors which in return will give you back higher resolution. Until then we need a blank canvas with only the 4th display patch. This time reply with results and IOReg file/save as/attach, not a screen shot.
 
Read post#237 again which says:

Both your results in Post#238 are flawed. Neither looks like the example in post#237 which is what we are hoping to achieve.
First result 2 x Port0x5, 2 x Port0x7. (as you noted)
Second result 1 x Port0x5, 1 x Port0x6, 2x Port0x7.

Ignore the screen resolution for now, we weren't finished yet. To get anywhere at all with multi-monitor we need to begin with a un-patched framebuffer which can be used with your port layout. Once this appears correct in IOReg we can patch the individual connectors which in return will give you back higher resolution. Until then we need a blank canvas with only the 4th display patch. This time reply with results and IOReg file/save as/attach, not a screen shot.

Sorry, I got the wrong end of the stick there. Thanks for your help so far.

Here is the information you asked for before the change, IE with all the kextpatches enabled.

config.plist looked like this:
Screen Shot 2016-06-10 at 09.44.24.png
and ioreg explorer's output is in ioregexplorer-before-changes.ioreg (attached).

As a reminder
  • Framebuffer@0 was connected to port 7 with connector type <00 02 00 00> which is DVI.
  • Framebuffer@1 was connected to port 5 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@2 was connected to port 6 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@3 was connected to port 7 with connector type <00 04 00 00> which is DisplayLink.
Note Framebuffer@0 and Framebuffer@3 are connected to the same port.

I then disabled all the kext patches to do with the Intel 530, apart from the 4 display patch:

config.plist looked like this:
Screen Shot 2016-06-10 at 09.46.35.png
and ioreg explorer's out is in ioregexplorer-after-suggested-changes.ioreg (attached)

At this point a reboot on the primary monitor produced something in seemingly the right resolution (2560x1440) but looking either as if it was in factor rendered onto 1080p (but at 2560x1440 size graphics) or was transmitted via a terrible analogue cable. I suspect it was in 1080p mode. Hotplug of the second HDMI monitor failed. Hotplug of DVI failed. Rebooting to the second HDMI monitor produced a 1080p display, and hotplug of the first HDMI monitor failed

Inspecting the output:
  • Framebuffer@0 was connected to port 0 with connector type <01 00 00 00> which is low voltage display.
  • Framebuffer@1 was connected to port 5 with connector type <00 04 00 00> which is DisplayLink.
  • Framebuffer@2 was connected to port 6 with connector type <00 04 00 00> which is DisplayLink.
  • Framebuffer@3 was connected to port 7 with connector type <00 04 00 00> which is DisplayLink.

For completeness (and this was not what you asked me to do, but done in addition), I reenabled only the kext patches to put ports 5 and 6 into HDMI mode (in addition of course to the 4 port patch which has never been reenabled).

config.plist looked like this:
Screen Shot 2016-06-10 at 10.30.30.png
And ioreg explorer's output is attached as ioregexplorer-after-hdmi-patches-reenabled.ioreg

At this point a reboot on the primary monitor produced a correct resolution display (2560x1440) Hotplug of the second HDMI monitor failed. Rebooting to the second HDMI monitor produced a correct resolution display, and hotplug of the first HDMI monitor failed.

Inspecting the output:
  • Framebuffer@0 was connected to port 0 with connector type <01 00 00 00> which is low voltage display.
  • Framebuffer@1 was connected to port 5 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@2 was connected to port 6 with connector type <00 08 00 00> which is HDMI.
  • Framebuffer@3 was connected to port 7 with connector type <00 04 00 00> which is DisplayLink.
On none of these does anything show as a DVI port.

I recorded the config.plist at each stage (not attached due to serial numbers etc) and took screenshots too if those are useful.
 

Attachments

  • ioregexplorer-before-changes.ioreg
    7.4 MB · Views: 171
  • ioregexplorer-after-suggested-changes.ioreg
    6.7 MB · Views: 158
  • ioregexplorer-after-hdmi-patches-reenabled.ioreg
    6.6 MB · Views: 158
Status
Not open for further replies.
Back
Top