Kexts

macOS kernel drivers. OpenCore can inject or block drivers. You put them in EFI/OC/Kexts, but they also have to be specified in the config.plist. We will take care of the latter at a later step.

Kext stands for Kernel EXTension. Wowie!
Kexts are bundles (aka just folders) that end with the .kext extension. Only macOS treats them differently. If a folder does not end with .kext, it's likely not a kext (duh).

Necessities

You cannot boot at all without these.
  • Lilu (10.4+)
    Does arbitrary kext, library and program patching inside macOS.
  • VirtualSMC (10.4+)
    Emulates Apple's SMC.

VirtualSMC plug-ins

  • SMCProcessor (10.7+)
    Monitors CPU temperatures on Intel
  • SMCAMDProcessor (10.13+)
    Monitors CPU temperatures on AMD. Requires AMDRyzenCPUPowerManagement (same repository).
  • SMCRadeonGPU (10.15+)
    Monitors AMD GPU temperatures.
  • SMCSuperIO (10.6, 64-bit only)
    Monitors fan speeds.
  • SMCBatteryManager (10.4)
    Monitors laptop battery status.
  • SMCLightSensor (10.6, 64-bit only)
    Adds support for ACPI Ambient Light Sensor.
  • SMCDellSensors (10.7+)
    Monitors fan speeds on Dell systems that support System Management Mode (SMM).

Graphics

You may only use one of the below kexts. They conflict with each other.
  • NootRX (11+)
    Provides patches for AMD Navi 2x cards.
  • NootedRed (10.15+)
    Provides graphical acceleration for AMD Vega iGPUs.
  • WhateverGreen (10.6+, 64-bit only)
    Provides patches for Intel iGPUs and for AMD and NVIDIA dGPUs to allow for graphical acceleration, frame-buffer patching, backlight control, etc. Do not combine with the other aforementioned graphics kexts.

Audio

  • AppleALC (10.4+)
    Patches Apple's audio stack (AppleHDA/AppleGFXHDA) to allow unsupported audio codecs and HDMI audio.

Ethernet

  • LucyRTL8125Ethernet (10.14+)
    RTL8125 (2.5GBe Realtek) driver, ported from Linux.
  • RealtekRTL8111 (10.14+)
    RTL8111 (1GBe Realtek) driver, ported from Linux.
  • RealtekRTL8100 (10.14+)
    RTL8100 (10/100MBe Realtek) driver, ported from Linux.
  • AppleIGC (10.15+)
    I225-V/I226-V Ethernet driver, ported from Linux.
  • AppleIGB (10.9+)
    Fork of IntelMausi for Intel I210 and I211 Ethernet.
  • IntelMausi (10.9+, 10.6-10.8 with IntelSnowMausi)
    Driver for the majority of Intel Ethernet cards.
  • AtherosE2200Ethernet (10.12+)
    Driver for the majority of Atheros Ethernet cards.
Aquantia cards on AMD need CaseySJ's patches.

Wi-Fi/Bluetooth

  • Itlwm (10.13+)
    Supports most Intel Wi-Fi cards. AirportItlwm uses macOS' Wi-Fi stack, and Itlwm uses Heliport to connect to networks.
  • IntelBluetoothFirmware
    Supports most Intel Wi-Fi cards. On macOS 11 and lower you need to use all 3 included kexts. On macOS 12+ you need to use IntelBluetoothFirmware, IntelBTPatcher and BlueToolFixup from BrcmPatchRAM
  • AirportBrcmFixup
    Patches the AirPort kexts to allow non-native Broadcom cards to use the native Wi-Fi stack
  • BrcmPatchRam
    Patches the Bluetooth stack to allow non-native Broadcom (and all other ones in macOS 12+ with BlueToolFixup) to use the native Bluetooth stack
If your Wi-Fi card is unsupported and you don't have Ethernet, you can use HoRNDIS to enable Android USB tethering. iPhone USB tethering doesn't work in recoveryOS.

USB

  • XLNCUSBFix (10.13+)
    USB fix only for AMD FX CPUs.
  • USBToolBox (10.11+)
    USB mapping kext. Requires a companion UTBMap kext. Do not use UTBDefault.

Input

  • VoodooPS2 (10.11+)
    Driver for PS/2 peripherals. Used for laptop keyboards or PS/2 mice/keyboards on desktops.
  • VoodooI2C (10.13+)
    Driver for I2C input devices. The one linked is a pre-release version with added support for AMD I2C controllers.

    Satellites

    You cannot figure out the device type from just branding or display name.
    Device typeSatellite
    HIDVoodooI2CHID
    ELANVoodooI2CELAN
    FTEVoodooI2CFTE
    Atmel Multitouch ProtocolVoodooI2CAtmelMXT
    SynapticsVoodooRMI (also supports SMBus)
    AlpsAlpsHID

    HID is a very common device type. If you're on an AMD laptop, it is highly likely that your touchpad is wired through it. Still, double check.
  • VoodooSMBus (10.14+)
    For input devices wired through the SMBus controller (I2C-i801) and also some peculiar ELAN SMBus input devices.

Storage

  • NVMeFix (10.14+)
    Patches the NVMe stack (IONVMeFamily) to support Autonomous Power State Transition (APST), and to fix timeout kernel panics on some NVMe controllers.
  • EmeraldSDHC (10.13+)
    Driver for eMMC storage devices.

Extras/Miscellaneous

  • AppleMCEReporterDisabler (12.3+)
    Disables AppleIntelMCEReporter which panics on AMD systems and even some Intel systems
  • AmdTscSync (10.13+)
    Synchronises the TimeStamp Counter (TSC) - Generally only useful for AMD APUs that would be horrendously slow without it.
  • RestrictEvents (10.13+)
    Fixes the CPU name in About This Mac, and the memory and PCI warnings on MacPro7,1 SMBIOS. Also allows forcing VMM to fix OTA updates on T2 SMBIOSes on macOS Sonoma+, amongst other features.
  • ECEnabler (10.7+)
    Allows macOS to read EC fields over 8 bits long, removing the need to split them manually.
  • BrightnessKeys (10.11+)
    Provides support for ACPI brightness change notifications (which usually come from your keyboard's function (FN) keys)