Contribute
Register

How to enable 'Kaby Lake' Intel 6xx Graphics (10.12.6+)

tonymacx86

Administrator
Staff member
Joined
Nov 18, 2009
Messages
8,523
Motherboard
GA-Z270X-UD5
CPU
Core i3-7100
Graphics
HD 630
Mac
MacBook Pro, Mac mini
Classic Mac
Apple, PowerBook
Mobile Phone
iOS
Screen Shot 2017-07-19 at 5.51.23 PM.png

Native Kaby Lake graphics drivers for Kaby Lake HD 630 are now available in 10.12.6. In order to enable native KBL graphics, the following changes are necessary.

Intel HD 6xx


For desktop systems with Intel HD 6xx graphics. Fix for most Intel HD 6xx graphics port layouts on 200 Series motherboards. Installs Lilu.kext and IntelGraphicsFixup.kext in /Library/Extensions. Adds the following to Volumes/EFI/EFI/CLOVER/config.plist: ig-platform-id=0x59120000.

https://github.com/vit9696/Lilu/releases
https://sourceforge.net/projects/intelgraphicsfixup/
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Intel HD 6xx

For desktop systems with Intel HD 6xx graphics. Fix for most Intel HD 6xx graphics port layouts on 200 Series motherboards. Installs Lilu.kext and IntelGraphicsFixup.kext in /Library/Extensions. Adds the following to Volumes/EFI/EFI/CLOVER/config.plist: ig-platform-id=0x59120000 and 'Skylake Glitch Fix' (AAPL,GfxYTile) to Devices/AddProperties/.
I think Y-tiling is turned on via the driver's Info.plist, so GfxYTile is probably not needed. That's probably why it is not needed anymore on 10.12.5. But, since it is already turned on by default, it probably does nothing if injected. And... I think Clover may be automatically injecting it for config.plist/Graphics/Inject/Intel=true anyway.

Clover will inject a fake device-id automatically if you don't specify config.plist/Devices/FakeID/IntelGFX=native-value (eg. 0x59128086). That might change, but it would need to be conditional within Clover code (depending on version of macOS boot target), and I'm not sure if that work will actually be done.

As I wrote here: http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-48#entry2447474
.. you might need -disablegfxfirmware kernel flag
(I needed it with the ASUS Z270-AR + i7-7700k setup here...)

I wrote about what a typical setup might look like:
http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-48#entry2447504

One thing nice about 0x59120000 for desktop use is that the LVDS connector present in 0x19120000 was left out, such that the 0306 connector is active, therefore no need for the "4 displays" patch (or connector re-arrange) that was needed with Skylake 0x19120000.

And, of course, sleep is still broken, which makes a compatible graphics card almost compulsory.

At least that's how it stands in the 10.13.dp1. I suspect 10.12.6 (and the special 10.12.5 build) is the same...
 
Last edited:

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
I think Y-tiling is turned on via the driver's Info.plist, so GfxYTile is probably not needed. That's probably why it is not needed anymore on 10.12.5. But, since it is already turned on by default, it probably does nothing if injected. And... I think Clover may be automatically injecting it for config.plist/Graphics/Inject/Intel=true anyway.

Clover will inject a fake device-id automatically if you don't specify config.plist/Devices/FakeID/IntelGFX=0. That might change, but it would need to be conditional within Clover code (depending on version of macOS boot target), and I'm not sure if that work will actually be done.

As I wrote here: http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-48#entry2447474
.. you might need -disablegfxfirmware kernel flag
(I needed it with the ASUS Z270-AR + i7-7700k setup here...)

I wrote about what a typical setup might look like:
http://www.insanelymac.com/forum/topic/324194-pre-release-macos-high-sierra/page-48#entry2447504

One thing nice about 0x59120000 for desktop use is that the LVDS connector present in 0x19120000 was left out, such that the 0306 connector is active, therefore no need for the "4 displays" patch (or connector re-arrange) that was needed with Skylake 0x19120000.

And, of course, sleep is still broken, which makes a compatible graphics card almost compulsory.

At least that's how it stands in the 10.13.dp1. I suspect 10.12.6 (and the special 10.12.5 build) is the same...
Update... did some testing with latest 10.12.6 beta.

Kernel flag -disablegfxfirmware not needed with KBL drivers on 10.12.6. It appears this is a change that is, so far, specific to 10.13. You can use -disablegfxfirmware to prevent 10.12.6 from attempting a firmware load (and some of the resulting logs), but the behavior of failing firmware load is different 10.12.6 vs. 10.13 (10.13 has what seems to be an endless retry effort).

On 10.12.6, you need to set config.plist/Devices/FakeID/IntelGFX=native-device-id... Because otherwise (even with IntelGFX=0), Clover will inject the SKL device-id, which of course won't work with your KBL ig-platform-id. So, I set config.plist/Devices/FakeID/IntelGFX=0x59128086.

Framebuffer connectors on ig-platform-id 0x59120000 in KBL framebuffer kext are as I expected (0105, 0204, 0306)... same as 10.13.dp1.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Kaby Lake MEI (HECI) device_id?
Native AppleIntelMEIDriver support?
If no, compatible device_id?
I haven't noticed any issue with Kaby Lake IMEI support.
HECI->IMEI rename should be considered as a requirement.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Confirm HD630/Desktop/HECI/Device_id: 0xba2a
Confirm HD530/Desktop/HECI/Compatible/Device_id: 0x3a1c is no longer necessary
It will be a while before I can confirm/check anything with any of the three Kaby Lake systems I have here.
(busy working on other things, and going away for a few days...)
What, specifically, do you want checked?

Note: I always rename HECI->IMEI. I haven't done any tests without the rename, as it is well known that the Intel MEI device must be named 'IMEI'...
 
  • Like
Reactions: zyz

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
Confirm HD630/Desktop/HECI/Device_id: 0xba2a
Confirm HD530/Desktop/HECI/Compatible/Device_id: 0x3a1c is no longer necessary
In latest 10.12.6 beta, cannot boot without using SKL spoof (SKL spoof still works, IMEI driver still loads). Using native KBL (device-id 0x5912, ig-platform-id 0x59120000) results in hang when it should switch to using the gfx drivers. It is as if Lilu.kext + IntelGraphicsFixup.kext not working (gIOConsoleUsers hang). I will check that I have latest Lilu.kext + IntelGraphicsFixup.kext on my 10.12.6 install, as I do on my 10.13 beta install.

10.12.6 beta using Nvidia 1050 Ti (IGPU disabled, build identifier in Info.plist for NVDAStartupWeb.kext modified to match 10.12.6 beta), results in AppleIntelMEIDriver not loading. Not surprising given it is the IGPU drivers that load it.

In latest 10.13 beta, Intel HD630 still working... AppleIntelMEIDriver loads fine against IMEI 0xba2a.

In 10.12.5... SKL spoofing, AppleIntelMEIDriver loads fine against IMEI 0xba2a, no spoofing for IMEI required.
 

RehabMan

Moderator
Joined
May 3, 2012
Messages
191,134
Motherboard
Intel DH67BL
CPU
Core i7-2600K
Graphics
Intel HD 3000
Mac
MacBook Air
Mobile Phone
iOS
In latest 10.12.6 beta, cannot boot without using SKL spoof (SKL spoof still works, IMEI driver still loads). Using native KBL (device-id 0x5912, ig-platform-id 0x59120000) results in hang when it should switch to using the gfx drivers. It is as if Lilu.kext + IntelGraphicsFixup.kext not working (gIOConsoleUsers hang). I will check that I have latest Lilu.kext + IntelGraphicsFixup.kext on my 10.12.6 install, as I do on my 10.13 beta install.
10.12.6 latest beta now working native KBL with updated Lilu.kext + IntelGraphicsFixup.kext.
Results regarding IMEI are same as 10.13 beta (native KBL)/10.12.5 (SKL spoof).

Note: SKL/KBL HD530/HD520/HD620/HD630 sleep still broken, so compatible graphics card still required.

Good config for Nvidia+Intel:
- Nvidia primary
- IGPU only enabled for compute/QuickSync (not tested)
- ig-platform-id 0x59120003 (no connectors)

In that scenario, AppleIntelMEIDriver loads against native IMEI (as expected)... sleep still working.
 
Last edited:
Top