Intel HD Graphics 3000 on Hackintosh: A Practical Guide for macOS 10.7–10.13
Detailed guide for configuring Intel HD Graphics 3000 on Hackintosh systems running macOS 10.7–10.13. Covers framebuffer IDs, kext patches, switchable GPU handling, and troubleshooting.
Intel HD Graphics 3000 is one of the most thoroughly documented integrated GPUs in the legacy Hackintosh space, yet it remains a frequent source of boot failures and graphical corruption for builders who assume it will work out of the box. The chip is found in Sandy Bridge mobile and desktop processors — Core i3-2105, i5-2405S, i5-2500K (with HD 3000), and virtually every dual-core and quad-core mobile CPU from the 2xxx series. Unlike its predecessor HD 2000, HD 3000 includes full hardware acceleration for H.264 encoding and decoding, which makes it a viable choice for macOS Lion through High Sierra, provided the framebuffer and device-id are injected correctly.
The most common mistake when configuring HD 3000 is assuming that a single ig-platform-id works for every Sandy Bridge system. In reality, macOS expects different framebuffer configurations depending on the display output type (LVDS, eDP, HDMI, DisplayPort) and the presence of a separate GPU. Injecting the wrong identifier can lead to a black screen after the boot progress bar, a system that boots but shows only 7 MB of VRAM, or a kernel panic at AppleIntelSNBGraphicsFB::start. This guide covers the three scenarios you are most likely to encounter and provides the exact kexts, bootloader patches, and SMBIOS selections required for each.
Identifying Your Intel HD Graphics 3000 Variant
Before touching any configuration file, verify that your processor actually contains HD 3000 and not HD 2000. Sandy Bridge desktop CPUs with HD 2000 have a PCI device ID of 0102, while HD 3000 uses 0122. Mobile HD 3000 carries device ID 0126. You can check this in Windows Device Manager, Linux lspci -nn, or from the macOS IORegistry after a successful boot with minimal graphics. If you see 0102, the methods in this article will not work — that GPU has no native macOS support and requires a discrete card.
For the rest of this guide, we assume a device ID of 0122 (desktop) or 0126 (mobile). The SMBIOS choice matters: desktop HD 3000 systems should use iMac12,1 or iMac12,2; laptops should use MacBookPro8,1, MacBookPro8,2, or MacBookPro8,3. Using a Mac mini SMBIOS (e.g., Macmini5,1) may also work but often results in missing audio routing or sleep issues.
Framebuffer Injection: The Three Common Profiles
macOS 10.7 through 10.13 ship with a single framebuffer kext for Sandy Bridge graphics: AppleIntelSNBGraphicsFB.kext. This kext contains multiple framebuffer personalities, each identified by a unique ig-platform-id. The correct ID depends entirely on your physical display connections.
Scenario A: Single Internal Display (Laptop) or Single DVI/HDMI Monitor (Desktop)
Use 0x00010000 (or 0x00010010 on some revisions). This personality enables a single pipe with one LVDS or one digital output. In Clover, set ig-platform-id under Graphics → Inject Intel. In OpenCore, add the same value to DeviceProperties → Add → PciRoot(0x0)/Pci(0x2,0x0) as a data property. After injection, the system should show a full-resolution display with QE/CI acceleration. If the screen remains blank, try adding 0x00020000 — this forces a different framebuffer layout that sometimes resolves timing issues with certain monitors.
Scenario B: Dual Display (Two Monitors or Laptop + External)
For dual monitors, use 0x00030010 (desktop) or 0x00030020 (mobile). These personalities allocate two pipes and two transcoders. On laptops, the external output may be limited to DisplayPort or HDMI depending on your hardware routing. If the external monitor is detected but shows a corrupted image, you may need to patch the framebuffer connector type in AppleIntelSNBGraphicsFB — a process that is covered in detail in our earlier article on Hackintosh High Sierra Graphics Injection: A Practical Guide, which explains how to dump and modify connector-info entries using IOJones and hex editing.
Scenario C: HD 3000 with Discrete GPU (Switchable Graphics)
Sandy Bridge laptops with switchable graphics (e.g., HD 3000 + AMD Radeon 6xxx) are the most problematic. macOS does not support GPU switching on these machines. The only reliable approach is to disable the discrete GPU via ACPI patching and run solely on HD 3000. This requires a DSDT edit or a SSDT-IGPU that sets the _OFF method for the PEGP device. For a step-by-step walkthrough on extracting and verifying your DSDT before making changes, see our guide Anatomy of a DSDT Extraction Screenshot: Verifying a Clean Hackintosh Dump. After disabling the discrete GPU, use 0x00010000 as your platform ID.
Kext Dependencies and Patching
HD 3000 requires AppleIntelSNBGraphicsFB.kext and AppleIntelSNBVA.bundle (for hardware video encoding). Both are present in macOS 10.7 through 10.13. If you are running macOS 10.14 or newer, these kexts have been removed — HD 3000 is unsupported on Mojave and later. Do not attempt to force-load them; the result is a kernel panic at boot.
For macOS 10.12.6 and 10.13.6, Apple introduced a security check that verifies the kext signature against the board-id. If your SMBIOS does not match a Sandy Bridge Mac model, the kext may fail to load. The workaround is to add keepsyms=1 and debug=0x100 to your boot arguments, then apply a KextsToPatch entry (Clover) or a Kernel -> Patch (OpenCore) that changes the board-id check to a dummy value. A common patch targets the string Mac-942B5F581BF51 (iMac12,2 board-id) and replaces it with your own SMBIOS board-id. Without this patch, you may see a black screen despite correct platform-id injection.
VRAM Allocation and Memory Settings
In BIOS/UEFI, set the integrated graphics aperture size to 64 MB or higher. A 32 MB aperture may cause HD 3000 to report only 3 MB of VRAM in macOS, which disables acceleration. On desktop boards, also ensure that the primary display adapter is set to IGFX (or Onboard) and that DVMT Pre-Allocated is at least 64 MB. Some HP and Dell OEM BIOSes hide these options; you may need to use a modified BIOS or a tool like setup_var to change them. If you cannot increase DVMT, try adding dvmt_fix=1 to your boot arguments — this instructs the framebuffer to use a fallback allocation method.
Common Post-Install Problems
System boots but screen is black
If you hear the startup chime and the system responds to keyboard input but the display remains dark, the framebuffer is likely not initializing the output. Boot with -v and watch for AppleIntelSNBGraphicsFB::start messages. If the log shows no matching display, try a different ig-platform-id or add a connector-type patch. On laptops, the internal display is usually connected via LVDS with connector-type 0x02000000; desktops use 0x00040000 for DVI or 0x00080000 for HDMI. You can inject these values in DeviceProperties under the same PCI root path.
Graphics glitches or artifacts
Corrupted menus, flickering windows, or random lines indicate a timing mismatch between the framebuffer and your monitor’s EDID. The fix is to provide a custom EDID override. Extract your monitor’s EDID using a tool like AW EDID Editor in Windows or edid-decode in Linux, then place the 128-byte binary in /System/Library/Displays/Contents/Resources/Overrides/DisplayVendorID-XXXX/. The vendor and product IDs must match your display. After a reboot, the system will use your override instead of the auto-detected EDID, often eliminating artifacts.
No H.264 hardware acceleration
Open VideoProc or Intel Power Gadget to check if the Video Encoder/Decoder engines are active. If they are not, ensure AppleIntelSNBVA.bundle is present in /System/Library/Extensions/AppleIntelSNBGraphicsFB.kext/Contents/PlugIns/. On macOS 10.13, Apple removed this bundle for certain SMBIOS models; you can restore it from a 10.12 installation. Copy the bundle, repair permissions with kextutil, and reboot.
Testing and Final Validation
After applying the configuration, boot with -v and confirm that the output shows IOConsoleUsers: gIOScreenLockState 3 followed by the login window. Once logged in, open System Information → Graphics/Displays. You should see Chipset Model: Intel HD Graphics 3000, VRAM (Dynamic, Max): 384 MB or 512 MB, and Core Image: Hardware Accelerated. Run the OpenGL Extensions Viewer to verify that OpenGL 3.3 or 4.1 is available. If all checks pass, your configuration is stable for daily use with macOS up to 10.13.6.
One final note on backup: before any DSDT or framebuffer patch, create a full disk image with dd or SuperDuper. A wrong connector-type value can render the system unbootable even in safe mode, and recovery from a backup is far faster than rebuilding from scratch. Keep the backup on a separate drive or partition that is not part of the Hackintosh boot chain.
