Updated: 10 August 2026
Kernel extensions (kexts) provide low-level hardware support, ACPI communication, and driver translation required to run macOS smoothly on non-Apple x86 hardware. This guide presents the essential kexts required for a stable, modern OpenCore configuration, their specific hardware roles, and their configuration requirements across macOS Sequoia, Sonoma, and Ventura.
1. Essential Baseline Kexts
| Kext Name | Primary Role | Target Hardware | Required Dependency |
|---|---|---|---|
| Lilu.kext | Dynamic kernel and Mach-O binary patcher; base engine for all companion kexts. | All Intel & AMD systems | None (Loads First) |
| VirtualSMC.kext | Emulates the Apple System Management Controller chip for power management, sensors, and boot validation. | All Intel & AMD systems | Lilu.kext |
| WhateverGreen.kext | Fixes display output, framebuffers, backlight controls, and DRM routing. | Intel iGPUs & AMD Radeon dGPUs | Lilu.kext |
| AppleALC.kext | Injects native AppleHDA audio profiles for onboard sound chips without file patching. | Realtek, Conexant, Intel HD Audio | Lilu.kext |
| NVMeFix.kext | Enables native autonomous power state transitions (APST) on third-party NVMe drives. | Samsung, WD, Crucial, Kingston SSDs | Lilu.kext |
| USBToolBox.kext + UTBMap.kext | Hardware-specific USB port injection mapping under the 15-port macOS limit. | All Intel & AMD motherboards | None |
2. Hardware-Specific Sensor & Companion Kexts
- SMCProcessor.kext: Enables temperature and frequency monitoring on Intel CPUs. (Do not enable on AMD platforms).
- SMCSuperIO.kext: Enables fan speed, voltage, and hardware health readouts via LPC chips (ITE, Nuvoton, Winbond).
- SMCBatteryManager.kext: Reads battery status, cycle count, and charging states on laptops via ACPI.
- BrightnessKeys.kext: Maps ACPI brightness keyboard shortcuts automatically on laptops.
- RestrictEvents.kext: Corrects CPU model names in 'About This Mac', bypasses MacPro memory warnings, and unblocks OTA updates.
3. Strict Load Ordering in config.plist
OpenCore injects kexts sequentially based on their numerical index in Kernel -> Add. An invalid loading sequence causes early boot kernel panics:
Lilu.kextVirtualSMC.kextWhateverGreen.kextAppleALC.kextNVMeFix.kextRestrictEvents.kext- VirtualSMC plugins (
SMCProcessor.kext,SMCSuperIO.kext,SMCBatteryManager.kext) - Ethernet drivers (
LucyRTL8125Ethernet.kext,IntelMausi.kext) - USB Maps (
UTBMap.kext/USBMap.kext) - Input drivers (
VoodooPS2Controller.kext,VoodooI2C.kext)
4. Safe Maintenance and Updates
- Sync with Lilu: Always update
Lilu.kextand its plugins simultaneously when updating OpenCore or macOS. - Verify Configuration: Run
ocvalidateto confirm that all kext bundle paths and executable paths match the actual files inEFI/OC/Kexts. - No Duplicate Drivers: Never combine legacy kexts (e.g. FakeSMC, VoodooHDA) with modern solutions (VirtualSMC, AppleALC).
Reliable Starting Points
- Acidanthera GitHub Organization — Official source for modern kext releases.
- Dortania Kext Guide — Detailed component selection for each hardware generation.