How to Inject Legacy GPUs in macOS Big Sur (AMD & Nvidia)

Step-by-step guide to injecting DeviceProperties for AMD Radeon HD 7xxx and Nvidia Kepler GPUs in macOS Big Sur. Fix black screen, 7 MB VRAM, and get full acceleration.

OpenCore boot picker displaying GPU injection parameters in config.plist

macOS 11 Big Sur dropped support for legacy GPUs that worked in earlier versions via kext patches. Hackintosh users with older AMD Radeon HD 7xxx or Nvidia Kepler cards now need precise DeviceProperty injection to get a working system. This technique tells the operating system how to interpret the GPU's PCIe configuration without relying on deprecated kexts. Here are the specific injection methods that work with Big Sur (11.x) on legacy hardware, including the necessary framebuffer patches, device-id overrides, and boot argument adjustments.

Why Injection Became Critical in Big Sur

macOS 11 introduced stricter kext signing requirements and removed several legacy GPU drivers from the kernel cache. Cards like the Radeon HD 7870 (Pitcairn) or Nvidia GeForce GTX 680 (GK104) no longer render accelerated graphics out of the box. Instead of loading a dedicated kext, Big Sur expects the GPU to present itself with a specific set of properties that match a supported model. Injection is the act of inserting those properties—often via the bootloader's DeviceProperties section—so the system recognizes the card as a compatible device (e.g., an AMD Radeon R9 270 or a Mac Edition GTX 680). Without injection, you get a black screen, 7 MB of VRAM, or a system that refuses to boot past the GPU initialization stage.

Core Injection Methods for Big Sur

Three approaches exist for injecting GPU properties on a legacy Hackintosh running Big Sur:

  • DeviceProperties injection (recommended) – Add entries under DeviceProperties → Add in your config.plist (Clover or OpenCore). This is the cleanest method because it does not modify system files and survives system updates.
  • DSDT/SSDT patches – Override the GPU's _DSM method with a custom injected property set. More invasive and harder to maintain across firmware revisions.
  • Kext-based injection (deprecated) – Older tools like FakePCIID or WhateverGreen with manual spoofing. While WhateverGreen still works in Big Sur, it now relies on DeviceProperties for many functions; pure kext injection without property entries often fails.

This guide focuses on the DeviceProperties method because it offers the best balance of reliability and simplicity for legacy hardware.

OpenCore boot picker displaying GPU injection parameters in config.plist

Step-by-Step: Injecting an AMD Radeon HD 7870 (Pitcairn) in Big Sur

Assume you have a Gigabyte GA-Z77X-UD5H motherboard with an Intel Core i7-3770K and a Sapphire Radeon HD 7870 2 GB. The card is not natively supported in Big Sur, but with proper injection it works with full acceleration. Follow these steps:

  1. Identify your GPU's PCI device-id and vendor-id. For the HD 7870, the device-id is 0x6818 and vendor-id is 0x1002 (AMD). You can find these in Windows Device Manager or by booting a Linux live USB and running lspci -nn.
  2. Determine the compatible framebuffer. Big Sur's AMD drivers use a framebuffer name like Hamachi or Futomaki for Pitcairn. The safest choice is Hamachi (used by the R9 270). Add the following DeviceProperties entry to your config.plist:
<key>DeviceProperties</key>
<dict>
    <key>Add</key>
    <dict>
        <key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)</key>
        <dict>
            <key>device-id</key>
            <data>GBgA</data>
            <key>vendor-id</key>
            <data>AAI=</data>
            <key>model</key>
            <string>AMD Radeon HD 7870</string>
            <key>framebuffer-patch-enable</key>
            <data>AQAAAA==</data>
            <key>framebuffer-con0-enable</key>
            <data>AQAAAA==</data>
            <key>framebuffer-con0-type</key>
            <data>AAQAAA==</data>
        </dict>
    </dict>
</dict>

Explanation: The device-id is base64-encoded from the hex value 0x6818 (little-endian: 18 68 00 00 = GBgA). The vendor-id for AMD is 0x1002 (02 10 00 00 = AAI=). The framebuffer-con0-type set to 0x00040000 (DisplayPort) matches the physical port layout; adjust if you use HDMI or DVI. For dual-link DVI use 0x00020000.

  1. Add boot arguments for stability. In your config.plist under Boot → Arguments, add agdpmod=pikera (for AMD cards) to disable the board-id check that can cause a black screen on unsupported Mac models. For Nvidia Kepler cards, use nvda_drv=1 (if using the legacy Web Driver, though Big Sur no longer supports it—Kepler users must rely on the built-in driver with injection).
  2. Save and reboot. If the screen stays black after the Apple logo, try a different framebuffer name (e.g., Futomaki) or adjust connector types. Use a single display on the first port during testing.

Nvidia Kepler Injection in Big Sur

Nvidia Kepler cards (GTX 6xx/7xx) are partially supported in Big Sur through the built-in NVDAGK100Hal kext, but only if the card is injected as a Mac Edition model. For a GTX 680, add the following DeviceProperties:

<key>device-id</key>
<data>gBAAAA==</data>  <!-- 0x1180 -->
<key>vendor-id</key>
<data>BwAAAA==</data>  <!-- 0x10DE -->
<key>model</key>
<string>NVIDIA GeForce GTX 680</string>
<key>@0,name</key>
<string>NVDA,Display-A</string>
<key>@1,name</key>
<string>NVDA,Display-B</string>

Note that Kepler cards in Big Sur may exhibit sleep/wake issues or random hangs. For a deeper dive into power management, see our guide on AGPM Editing for Hackintosh: Tuning Vender, LogControl, and Voltage on Unsupported GPUs.

Common Pitfalls and How to Avoid Them

Issue Likely Cause Solution
Black screen after Apple logo Wrong framebuffer or connector type Try Futomaki for Pitcairn; set framebuffer-con0-type to match your monitor's connection
7 MB VRAM shown No injection or wrong device-id Verify that the device-id is correct and that the property is being applied (check with IORegistryExplorer)
System crashes on wake from sleep AGPM settings not tuned for the injected card Edit AGPM kext as described in Fixing macOS Sleep/Wake on Legacy Hackintosh by Editing AGPM Kext
GPU acceleration works but no audio over HDMI Missing HDMI audio injection Add hda-gfx property with value onboard-1 and ensure AppleHDA is patched for HDMI

Verification After Injection

After rebooting, open System Information ( → About This Mac → System Report → Graphics/Displays). You should see your injected model name and the correct VRAM size. If the name is still generic (e.g., “AMD Radeon HD 7xxx”), double-check the device-id encoding and the model string. Use IORegistryExplorer to confirm that the properties appear under the GPU's PCI path. A common oversight is forgetting to add the compatible string for certain AMD cards—some require pci1002,6818 as a fallback. For Nvidia Kepler, ensure the board-id in your SMBIOS matches a Mac model that originally shipped with that GPU (e.g., MacPro6,1 for GTX 680). Without a matching board-id, the system may fall back to VESA drivers, resulting in no acceleration and a maximum resolution of 1024×768.

If you still see 7 MB VRAM after injection, double-check that your config.plist's DeviceProperties section is correctly placed under the right PciRoot path. A common mistake is using the wrong PCI path, especially on motherboards with multiple PCIe slots. Use gfxutil or Hackintool to find the exact path. Once everything is set, test with a GPU-intensive app like Geekbench or a video render to confirm full acceleration. If you encounter sleep/wake issues, refer to the AGPM editing guide linked above.