Contribute
Register

Skylake Intel HD 530 Integrated Graphics Working as of 10.11.4

Status
Not open for further replies.
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.
This is looking better. Ignore port0x0 from now on. Your HDMI connector edits are correct from what you've posted above. I can't open your IOReg's as they are created with another version of IORegistry Explorer and show as corrupt. Best to use the version attached to Post#1 of this thread [Guide] How to Make a Copy of IOReg | tonymacx86.com

Moving on, what happens when you hot plug, are you losing both monitors and have to hard reset, or just nothing on the 2nd monitor? If the latter after hot plugging the 2nd monitor open IOReg and check under GFX1/framebuffer@? if a second display shows itself. My assumption here is that if it shows in IOReg and doesn't crash your system then AGDP is enabled although it shouldn't be with GFX0 renamed to GFX1.

You can patch your DVI (Port0x7) the same as HDMI.

Comment: 10.11.5-SKL_Port0x7-DP2DVI
Find : <03060a00 00040000>
Name : AppleIntelSKLGraphicsFramebuffer
Replace : <03060a00 00080000>
 
This is looking better. Ignore port0x0 from now on. Your HDMI connector edits are correct from what you've posted above. I can't open your IOReg's as they are created with another version of IORegistry Explorer and show as corrupt. Best to use the version attached to Post#1 of this thread [Guide] How to Make a Copy of IOReg | tonymacx86.com

Moving on, what happens when you hot plug, are you losing both monitors and have to hard reset, or just nothing on the 2nd monitor? If the latter after hot plugging the 2nd monitor open IOReg and check under GFX1/framebuffer@? if a second display shows itself. My assumption here is that if it shows in IOReg and doesn't crash your system then AGDP is enabled although it shouldn't be with GFX0 renamed to GFX1.

You can patch your DVI (Port0x7) the same as HDMI.

Comment: 10.11.5-SKL_Port0x7-DP2DVI
Find : <03060a00 00040000>
Name : AppleIntelSKLGraphicsFramebuffer
Replace : <03060a00 00080000>

Thanks once again for your help.

So first things first - I tried to sort out the DVI port. I think the Replace string is a bit wrong on your example, as 000080000 is HDMI. I think it should be 00020000. I now have what appears to be the correct port set up, using this entry in config.plist:
Screen Shot 2016-06-11 at 12.01.33.png
Back to multiple monitors, what happens when the second HDMI is plugged in is precisely nothing (same with DVI). It doesn't crash, it doesn't reboot, it just carries on as if nothing had happened and the second display does not work.

The IORegistryExplorer I was using comes with the current XCode. It can load its own output, but it clearly isn't back compatible. Attached is a copy of the output from the old version that the thread you referenced recommended. This was taken with the second HDMI port connected, and as you can see it shows no second display connected.

I agree that this looks just like AGDP is running. Below is a screenshot of the AGDP section showing the Board-ID (17,1) I am using highlighted. This shows Config2 should be in operation, which should not do anything because it's meant to work with GFX0 only. I'm not sure whether the fact it's attached below GFX1 actually means it is active or merely just 'there'. Perhaps you can tell from the attached ioreg file.
Screen Shot 2016-06-11 at 12.06.12.png
I did the GFX0->GFX1 rename by inserting a DSDT entry like this:
Screen Shot 2016-06-11 at 12.14.54.png
I'm afraid I can't remember quite where that came from, but it was one of the guides on here. It does seem to be effective in renaming GFX0 to GFX1 but perhaps it's done too late or similar?

I found the following in the console log which might be interesting. It appears to be complaining about PAVP (2 lines above the blue bar), and not being able to load the graphics firmware. Is this relevant?
Screen Shot 2016-06-11 at 12.37.06.png

I feel somehow we are getting closer to the answer. Any ideas how to proceed from here?
 

Attachments

  • ioregexplorer-post-dvi-change.ioreg
    3.1 MB · Views: 152
Last edited:
I feel somehow we are getting closer to the answer. Any ideas how to proceed from here?
Patching the DVI port as an HDMI port will work as DVI port. FYI there are 2 types of DVI, DVI-D(dual link)
DVI-S(single link).

From here I think you should run Shilohh's app from Post#1 Black Screen with MacPro 6,1 or iMac 15 or iMac 17 System Definition This will back up the original AGDP.kext to the desktop. AGDP.kext is loading on your system hence why I imagine a second screen is not showing. Suggest testing HDMI connections that are configured correctly in the framebuffer/connector edits with the hot plug method.
Reply with IOReg.

AGDP.kext loaded shows your board-id = Mac - B809C3757DA9BB8D Value/Config2 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX1@2/AppleIntelFramebufferController/AppleGraphicsDevicePolicy.
 
Patching the DVI port as an HDMI port will work as DVI port. FYI there are 2 types of DVI, DVI-D(dual link)
DVI-S(single link).

From here I think you should run Shilohh's app from Post#1 Black Screen with MacPro 6,1 or iMac 15 or iMac 17 System Definition This will back up the original AGDP.kext to the desktop. AGDP.kext is loading on your system hence why I imagine a second screen is not showing. Suggest testing HDMI connections that are configured correctly in the framebuffer/connector edits with the hot plug method.
Reply with IOReg.

AGDP.kext loaded shows your board-id = Mac - B809C3757DA9BB8D Value/Config2 IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/GFX1@2/AppleIntelFramebufferController/AppleGraphicsDevicePolicy.

Well, there was good news, then there was very bad news.

The good news was that I disabled the DSDT renaming of GFX0 to GFX1, then ran the AGDP app, which did its stuff. I then rebooted, and hotplugged the second monitor, and it worked first time! Hurrah.

The very bad news, is then I rebooted the system with the second monitor plugged in. This led to a corrupt display on the first monitor, and a blank display on the second monitor. Well, fair enough. The bad news is that now rebooting, after a complete power off and removal of the second monitor's connection, on the first monitor I get a white-noise / snow type pattern and crackling sounds even before the BIOS screen comes up. Reboot and complete power off appears not to fix this. I left it a couple of minutes and managed to get it to boot up once, but the display was very shimmery. I couldn't get it to reboot successfully again :( I'm going to leave it for 15 minutes with nothing connected and see if that fixes it.

Any ideas what might have gone wrong? And if I do get it back up, how do I restore the unpatched kext (I have the backup folder on the desktop, obviously)?

This method looks like it may be a little dangerous.
 
Last edited:
Well, there was good news, then there was very bad news.

The good news was that I disabled the DSDT renaming of GFX0 to GFX1, then ran the AGDP app, which did its stuff. I then rebooted, and hotplugged the second monitor, and it worked first time! Hurrah.

The very bad news, is then I rebooted the system with the second monitor plugged in. This led to a corrupt display on the first monitor, and a blank display on the second monitor. Well, fair enough. The bad news is that now rebooting, after a complete power off and removal of the second monitor's connection, on the first monitor I get a white-noise / snow type pattern and crackling sounds even before the BIOS screen comes up. Reboot and complete power off appears not to fix this. I left it a couple of minutes and managed to get it to boot up once, but the display was very shimmery. I couldn't get it to reboot successfully again :( I'm going to leave it for 15 minutes with nothing connected and see if that fixes it.

Any ideas what might have gone wrong? And if I do get it back up, how do I restore the unpatched kext (I have the backup folder on the desktop, obviously)?

This method looks like it may be a little dangerous.
To note that the method isn't dangerous, and as mentioned numerous times nothing fixes booting to the desktop with multi-monitors connected( i know you had to try it). Its the Intel driver crashing, if your motherboard supports native NVRAM you will be greeted at the desktop with a lovely kernel panic report mentioning that IOGraphicsFamily and AppleIntelSKLGraphicsFrambuffer.kext were in backtrace. I've seen this on my system testing multi-monitors several times. This is not the only problem with HD530 as seen in Post#1, waking from sleep doesn't work and again will greet you with a KP report at the desktop. But now you know how to use dual monitors with HD530 it shouldn't be a problem. As to why your monitor is mis-behaving I'm not sure, hopefully it'll settle down.
 
To note that the method isn't dangerous, and as mentioned numerous times nothing fixes booting to the desktop with multi-monitors connected( i know you had to try it). Its the Intel driver crashing, if your motherboard supports native NVRAM you will be greeted at the desktop with a lovely kernel panic report mentioning that IOGraphicsFamily and AppleIntelSKLGraphicsFrambuffer.kext were in backtrace. I've seen this on my system testing multi-monitors several times. This is not the only problem with HD530 as seen in Post#1, waking from sleep doesn't work and again will greet you with a KP report at the desktop. But now you know how to use dual monitors with HD530 it shouldn't be a problem. As to why your monitor is mis-behaving I'm not sure, hopefully it'll settle down.

OK, so that was a little scary. 15 minutes switched off seemed to sort it out. So I booted it up again, attached the second display (which worked again), and now attach an IOReg file.

It wasn't the monitor misbehaving, it was the motherboard - plugging in the other monitor did the same thing. I thought for a minute I might have fried it.

Is there any way to make an accidental reboot with both monitors plugged in not quite so, um, dangerous? Even if one can't make them work across a reboot (which would be the best solution)? Last time this was happening it was something to do with DVMT memory. I've got both the preallocated and max DVMT memory set at 256MB (with 64 I couldn't even boot, 96/128 and 512/MAX did the same as 256/256 before I changed AGDP).

I've got sleep disabled so I'm not too worried about that (with a single monitor, sleep did work just fine, save that audio was broken on wake, the simple solution to which was disable sleep).

Anyway, thanks for your help getting multiple monitors working. Is anyone working on getting them work on boot?
 
Last edited:
OK, so that was a little scary. 15 minutes switched off seemed to sort it out. So I booted it up again, attached the second display (which worked again), and now attach an IOReg file.

It wasn't the monitor misbehaving, it was the motherboard - plugging in the other monitor did the same thing. I thought for a minute I might have fried it.

Is there any way to make an accidental reboot with both monitors plugged in not quite so, um, dangerous? Even if one can't make them work across a reboot (which would be the best solution)? Last time this was happening it was something to do with DVMT memory. I've got both the preallocated and max DVMT memory set at 256MB (with 64 I couldn't even boot, 96/128 and 512/MAX did the same as 256/256 before I changed AGDP).

I've got sleep disabled so I'm not too worried about that.

Anyway, thanks for your help getting multiple monitors working. Is anyone working on getting them work on boot?
Some things for you to try regarding reboot and shutdown. At your own risk: Try turning off the second display before you restart/shutdown the system other than disconnecting it from the motherboard. If I have both monitors connected and POST with the Primary monitor on, 2nd monitor off until after POST beep then switch on my 2nd monitor I get a dual monitors booting to the desktop with no driver crashing.

I've been testing HD530 a lot to try and fix this and somewhere between BIOS graphics initialisation(2 monitors connected when powered up)and OS X knowing both monitors are there crashes the driver. Switching on the 2nd monitor after POST is like tricking graphics initialisation/OS X.

If any of this led my to believe AGDP was causing the problem, then surely disabling it would enable Intel's supported 3 displays don't you think?
 
Some things for you to try regarding reboot and shutdown. At your own risk: Try turning off the second display before you restart/shutdown the system other than disconnecting it from the motherboard. If I have both monitors connected and POST with the Primary monitor on, 2nd monitor off until after POST beep then switch on my 2nd monitor I get a dual monitors booting to the desktop with no driver crashing.

When I am feeling brave I may well try that.

I've been testing HD530 a lot to try and fix this and somewhere between BIOS graphics initialisation(2 monitors connected when powered up)and OS X knowing both monitors are there crashes the driver. Switching on the 2nd monitor after POST is like tricking graphics initialisation/OS X.

I wasn't sure whether it was the BIOS or Clover causing the issue, but based on that, it sounds like BIOS. BIOS seems to put the two displays into mirrored mode, as clover then appears on both of them (I can't believe the Clover folks explicitly support two displays). It's possible that the Mac BIOS does not do this. Perhaps there is some Clover hack that could be done to reinitialise the Intel 530 and take it out of mirrored mode (or more precisely put it into the state it would have been in with a single monitor). Apparently there is an 'IGPU Multi monitor' setting in BIOS somewhere. Perhaps I will fiddle with that.

If any of this led my to believe AGDP was causing the problem, then surely disabling it would enable Intel's supported 3 displays don't you think?

I suppose I was thinking 'perhaps AGPD is put there for a reason, i.e. to protect the motherboard against setting things that are dangerous'. Back in the day (I'm talking 20+ years ago) when I used to design graphics cards, it was actually possible to fry chips by sending them the wrong values (various timers if I recall correctly), so I am probably just slightly paranoid.
 
I wasn't sure whether it was the BIOS or Clover causing the issue, but based on that, it sounds like BIOS. BIOS seems to put the two displays into mirrored mode, as clover then appears on both of them (I can't believe the Clover folks explicitly support two displays). It's possible that the Mac BIOS does not do this. Perhaps there is some Clover hack that could be done to reinitialise the Intel 530 and take it out of mirrored mode (or more precisely put it into the state it would have been in with a single monitor). Apparently there is an 'IGPU Multi monitor' setting in BIOS somewhere. Perhaps I will fiddle with that.
Agreed, interesting point you've also seen. I noticed mirrored screens in the BIOS, this isn't apparent in 7/8/9 series BIOSes using dual monitors, as you've got 2 different resolution monitors, you'll see using 2 different resolution monitors brings down your higher resolution monitor to the same resolution of the lower monitor when in the BIOS/Splash screen or Clover boot screen, I believe this has something to do with dual monitors crashing at the desktop at the moment when they are both plugged in and working, OS X doesn't know what to do hence the Intel driver crash. Mac BIOS? I'm not sure, remember other than the iMac17,1(Skylake) which uses R9 380M the only Apple Skylake releases are the MacBooks that use HD515 so really, we're lucky to have any support regarding HD530 although limited.

In your BIOS IGPU Multi Monitor has no affect. I've been through this too and what it means is if you have a discreet graphics card and you want to make use of integrated too, this setting makes it happen with a shared memory of 64M.
 
Agreed, interesting point you've also seen. I noticed mirrored screens in the BIOS, this isn't apparent in 7/8/9 series BIOSes using dual monitors, as you've got 2 different resolution monitors, you'll see using 2 different resolution monitors brings down your higher resolution monitor to the same resolution of the lower monitor when in the BIOS/Splash screen or Clover boot screen, I believe this has something to do with dual monitors crashing at the desktop at the moment when they are both plugged in and working, OS X doesn't know what to do hence the Intel driver crash. Mac BIOS? I'm not sure, remember other than the iMac17,1(Skylake) which uses R9 380M the only Apple Skylake releases are the MacBooks that use HD515 so really, we're lucky to have any support regarding HD530 although limited.

I'm running F6 BIOS at the moment. I suppose an upgrade to F7 might be worth it if I can be bothered to find a USB stick etc.

Well, from what you said above, there is clearly a state that the computer can be in (and I'm betting it's a state the Intel 530 can be in) where it's attached to two monitors and boots successfully - that's whatever state it's in when you power on the second monitor e.g. during the clover boot process. And there's another state where it crashes. If Clover could put the Intel 530 back into the first state, it seems to me it would be indistiguishable from the monitor just having been plugged in.

I agree re the Skylake Macbooks, but it may be precisely that they are only expecting to set up an HD515, not an HD530, so the HD530 may be consequently be in some invalid state. I'm presuming the clover setup is UEFI GOP or Int 15h or similar. I'm thinking perhaps one could so something like this (set the output device using GOP SetMode). Clover is already playing with GOP's SetMode - see here. Perhaps Clover could be persuaded, as in the PDF, to set things up for a single monitor only.

In your BIOS IGPU Multi Monitor has no affect. I've been through this too and what it means is if you have a discreet graphics card and you want to make use of integrated too, this setting makes it happen with a shared memory of 64M.

Actually despite what the Internet says, the actual BIOS doesn't seem to have that setting anyway.
 
Status
Not open for further replies.
Back
Top