Intel HD Graphics on Legacy Hackintosh: A Practical Guide for Ivy Bridge, Haswell, and Broadwell
Step-by-step guide to configuring Intel HD Graphics 2500, 4000, 4400, 4600, 5000, and 5200 on legacy Hackintosh systems with Clover and OpenCore.
Building a legacy Hackintosh around an Ivy Bridge or Haswell processor often means relying on Intel HD Graphics as your only practical GPU option. Maybe you don't have a discrete card, or you need a clean, low-power setup for a specific macOS version. The integrated graphics on these CPUs aren't plug-and-play. Each generation needs a distinct combination of framebuffer injection, device-id spoofing, and ACPI patches. This guide covers the six most common Intel HD Graphics variants found in Sandy Bridge (HD 2500), Ivy Bridge (HD 4000), Haswell (HD 4400, HD 4600, HD 5000), and Broadwell (HD 5200) systems, with concrete steps for macOS 10.8 through 10.15.
Identifying Your iGPU Generation and macOS Target
Before touching any configuration file, confirm the exact GPU model through system information or a Linux live USB. The table below lists the typical CPU families and their integrated graphics:
| GPU Model | CPU Generation | macOS Support Range | Bootloader Requirement |
|---|---|---|---|
| HD 2500 | Ivy Bridge (3rd gen) | 10.8 – 10.13 | Clover or OpenCore |
| HD 4000 | Ivy Bridge (3rd gen) | 10.8 – 10.15 | Clover or OpenCore |
| HD 4400 | Haswell (4th gen) | 10.8 – 10.15 | Clover or OpenCore |
| HD 4600 | Haswell (4th gen) | 10.8 – 10.15 | Clover or OpenCore |
| HD 5000 | Haswell (4th gen) | 10.8 – 10.15 | Clover or OpenCore |
| HD 5200 (Iris Pro) | Broadwell (5th gen) | 10.10 – 10.15 | Clover or OpenCore |
HD 2500 lacks full Core Image acceleration in macOS 10.14 and later because Apple dropped Metal driver support for it. If you plan to run Mojave or higher, use a discrete GPU or stick with HD 4000 and above.
Framebuffer Injection: The Core Principle
All Intel HD Graphics in this family require a framebuffer personality injected via ACPI or device properties. The framebuffer defines port mapping, display pipeline configuration, and memory allocation. Without it, macOS either boots to a black screen or shows only 7 MB of VRAM (no acceleration).
For Clover, you inject the framebuffer through the Graphics section of config.plist or via DeviceProperties. For OpenCore, you must add the correct device-id and ig-platform-id under DeviceProperties -> Add -> PciRoot(0x0)/Pci(0x2,0x0). The exact ig-platform-id depends on the GPU and the display output type (LVDS, HDMI, DP, or eDP).
HD 2500 – The Problematic Entry
HD 2500 is the least compatible iGPU on this list. Apple never shipped a Mac with this exact GPU, so you must spoof the device-id to 0x01620006 (the ID of HD 4000) and use the HD 4000 framebuffer 0x01660003. Even then, expect no QE/CI on macOS 10.14 and above. For High Sierra and earlier, the spoof works reliably with Clover’s FakeID section:
- Set
FakeID -> IntelGFXto0x01620006 - Set
ig-platform-idto0x01660003 - Add
AAPL,ig-platform-idunderDevicePropertieswith the same value
Always test with a single display connected via the motherboard’s DVI or VGA port. HDMI output may remain black without additional EDID injection.
HD 4000 – The Most Forgiving iGPU
HD 4000 is natively supported in macOS from 10.8.4 onward. The recommended ig-platform-id for desktop Ivy Bridge CPUs (e.g., i5-3570K, i7-3770K) is 0x01660003 (three outputs: LVDS, HDMI, DP). For laptops, use 0x01660004 (LVDS + DP). If you experience boot loops, try 0x01660000 or 0x01620001 — these are fallback framebuffers with fewer ports.
No device-id spoofing is required for HD 4000. Just inject the correct platform-id and ensure your SMBIOS matches an Ivy Bridge Mac (MacBookPro9,1 or Macmini6,1 for desktops).
HD 4400 and HD 4600 – Haswell Tweaks
Haswell iGPUs behave similarly but require a different set of platform-ids. For HD 4600 (desktop), use 0x0D220003 for a single HDMI or DP output, or 0x0D260007 for dual displays. For HD 4400 (found in i5-4210U and similar), use 0x0A160000 or 0x0A260005.
A common problem with Haswell iGPUs is black screen after wake from sleep. To mitigate this, add the following ACPI patch in Clover or OpenCore:
- Rename
_DSMtoXDSMon the IGPU device scope (prevents conflicting property injection) - Or inject
enable-backlight-registers-fixproperty (AppleBacklightInjector kext)
If you are using OpenCore, the WhateverGreen kext handles most sleep/wake issues automatically, but you still need the correct ig-platform-id in your config.
HD 5000 and HD 5200 – Mobile and Iris Pro Considerations
HD 5000 is a Haswell mobile GPU (e.g., i5-4250U). Its native macOS support is limited to MacBookAir6,2 and MacBookPro11,1 SMBIOS. Use ig-platform-id 0x0A260006 for dual display (LVDS + DP). The Iris Pro HD 5200 (Broadwell) requires ig-platform-id 0x16220007 and a MacBookPro12,1 SMBIOS. HD 5200 only works on macOS 10.10 and later — no support for Mavericks or earlier.
For both GPUs, ensure your BIOS allocates at least 64 MB of DVMT pre-allocated memory. Anything below 32 MB will cause a kernel panic on boot. Set “IGD Memory” to 64 MB or higher in BIOS settings.
BIOS Settings That Make or Break Intel Graphics
Regardless of the GPU model, the following UEFI/BIOS settings are critical for a stable Hackintosh with Intel HD Graphics:
- Primary Display: set to “IGFX” (internal graphics) — do not leave it on “Auto” if a discrete card is absent
- DVMT Pre-Allocated: 64 MB minimum; 96 MB or 128 MB recommended for dual 4K displays
- DVMT Total Gfx Mem: “MAX” or 1024 MB if available
- VT-d: disable unless you have a working DMAR table in your ACPI
- XHCI Handoff: enable (prevents USB issues that can interfere with display detection)
- Fast Boot: disable — it may skip IGPU initialization
If your BIOS lacks a DVMT setting (common on OEM boards), you may need to patch the framebuffer memory allocation via ACPI. This is advanced and risky — always back up your current firmware settings first.
Kexts and Patches for Acceleration
Beyond framebuffer injection, two kexts are essential for full graphics acceleration on legacy Intel HD Graphics:
- WhateverGreen.kext — handles connector patching, backlight control, and sleep/wake fixes. Version 1.4.0 or later supports all GPUs listed here. Older versions may lack support for HD 5200.
- Lilu.kext — required as a dependency for WhateverGreen. Use Lilu 1.4.0 or higher for macOS 10.15 compatibility.
If you are running macOS 10.13 or earlier, you may also need IntelGraphicsFixup.kext (now merged into WhateverGreen). Avoid mixing both — use only WhateverGreen for modern setups.
Diagnosing Black Screen and 7 MB VRAM
The two most frequent symptoms of misconfigured Intel HD Graphics are black screen after boot (no display output) and “Display 7 MB” in System Information (no hardware acceleration). Here is a diagnostic checklist:
- Verify that
ig-platform-idmatches your GPU and output type. Test multiple platform-ids if the first fails. - Ensure your SMBIOS is correct for the GPU generation. Using a MacPro6,1 SMBIOS with HD 4000 will cause a black screen because macOS expects a discrete GPU.
- Check that Lilu and WhateverGreen are loaded. In OpenCore, add
-liludbgto boot args and inspect the log for “IGPU” entries. - If using Clover, disable “Inject Intel” in the Graphics section and rely solely on DeviceProperties — this avoids double injection.
- Test with a different display cable (HDMI vs. DVI). Some motherboards route HDMI through a separate controller that macOS cannot initialize without a custom connector patch.
For a deeper dive into the injection mechanics, see the detailed post on Configuring Intel HD Graphics 2500, 4000, 4400, 4600, 5000, and 5200 on Legacy Hackintosh, which includes specific plist snippets for both Clover and OpenCore.
Sleep, Wake, and Backlight
Sleep issues with Intel HD Graphics are typically caused by missing or incorrect backlight registers. On laptops, inject the property applesmc-backlight-control or use the SSDT-PNLF.aml table from WhateverGreen’s build repository. On desktops, sleep failure is rare unless you are using an unsupported display resolution (e.g., 4K on HD 2500). If the system sleeps but the display stays black on wake, add igfxonln=1 to your boot args — this forces a display re-detection on wake.
For HD 5200 (Iris Pro), a known issue is the loss of display after a warm reboot. The workaround is to perform a cold boot (power off, wait 10 seconds, power on) or add enable-hdmi20=1 in the device properties for the IGPU.
Preserving Your Working Configuration
Once you have a stable Intel HD Graphics setup, back up your entire EFI partition and note the exact BIOS settings. Future macOS updates (especially minor point releases) may reset the framebuffer cache and cause a black screen. Keep a copy of your working config.plist on a separate USB drive. If you plan to upgrade to a newer macOS version, test with a spare disk first — some iGPUs lose support in later releases (e.g., HD 2500 in Mojave).
For those building a system around HD 4600 or HD 4000, these GPUs remain the most reliable choice for legacy Hackintosh projects targeting High Sierra or Mojave. They offer native acceleration, stable sleep, and broad display compatibility without the complexity of discrete GPU spoofing.
