Getting Wi‑Fi Working on a Legacy Hackintosh: Chipsets, Kexts, and Configuration
A practical guide to making Wi‑Fi work on older macOS versions (Yosemite to Mojave) with Broadcom and Atheros cards, including kexts, OpenCore/Clover setup, and troubleshooting.
When you build a Hackintosh for an older version of macOS—say, Yosemite 10.10 or High Sierra 10.13—getting Wi‑Fi to work reliably is usually the biggest post-install headache. Unlike Ethernet, which can often be patched with a simple kext injection, wireless adapters require the correct combination of hardware revision, firmware version, and macOS‑compatible kexts. A Broadcom BCM94360CD that works plug‑and‑play in Mojave 10.14 may refuse to even appear in System Information on El Capitan 10.11 because the kext it depends on was never loaded. This guide covers the wireless chipsets that are most likely to succeed on legacy macOS installations, the kexts you need, and the pitfalls to avoid.
Supported Wireless Chipsets for Legacy macOS
Apple has historically used Broadcom and Atheros controllers in its own hardware. For a Hackintosh, the safest path is to use a card that macOS natively supports—ideally one that does not require any third‑party kexts. The table below lists the most common chipsets and their native support across macOS versions from 10.9 through 10.14.
| Chipset | Native macOS Support | Notes |
|---|---|---|
| Broadcom BCM94360CD (0x14E4, 0x43A0) | 10.9+ | Plug‑and‑play; often requires a PCIe adapter for desktop use |
| Broadcom BCM94352Z (0x14E4, 0x43B1) | 10.10+ (with FakePCIID) | Needs AirportBrcmFixup kext on 10.13+ |
| Atheros AR9285 (0x168C, 0x002B) | 10.6–10.13 | Dropped in 10.14; may cause kernel panics on newer builds |
| Broadcom BCM943224HMS (0x14E4, 0x4331) | 10.9–10.14 | Common in older MacBooks; works with AirportBrcmFixup |
| Intel AX200/AX210 | Not supported | Requires HeliPort and itlwm kexts; unstable on legacy OS |
For legacy builds, the BCM94360CD remains the gold standard because it requires zero patching. However, it is a native Apple card that uses a proprietary connector; you will need a PCIe adapter (often sold as “BCM94360CD” or “BCM943602CS” adapter) that fits a standard desktop slot. The BCM94352Z is a close second, but it needs the FakePCIID_Broadcom_WiFi kext on 10.11 and earlier, and AirportBrcmFixup on 10.12 and later.
Essential Kexts and Their Version Boundaries
Using the wrong kext version can produce a working network icon that never connects, or a kernel panic at boot. The table below lists the primary kexts you will need and the macOS versions they are tested against.
- AirportBrcmFixup – Supports Broadcom BCM94352Z, BCM943224HMS, and many others. Works from 10.9 to 10.14, but the
-brcmfxboot argument may be required on 10.12+ to force the correct firmware. - FakePCIID_Broadcom_WiFi – Only needed for 10.10–10.11 when using BCM94352Z without native injection. Obsolete on 10.12+.
- BrcmPatchRAM – Required for many Broadcom USB Bluetooth/Wi‑Fi combos. Version 2.3.x is the last to support 10.13; newer versions drop 10.11.
- IO80211Family.kext – The system kext that handles AirPort. Do not modify it directly; instead inject via OpenCore or Clover.
Always check the release notes of each kext. A common mistake is to load a BrcmPatchRAM build from 2022 on El Capitan; the result is a failure to attach the Bluetooth controller, which in turn can prevent the Wi‑Fi interface from starting.
Configuration in OpenCore and Clover
Both bootloaders require you to inject the appropriate kexts into the OS. The exact method differs slightly.
OpenCore (0.5.0–0.7.9 recommended for legacy)
Place the kexts in EFI/OC/Kexts/. In your config.plist, under Kernel -> Add, list each kext with its bundle path. For BCM94352Z, you also need to add a device property under DeviceProperties -> Add for PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0) (or whichever PCI path your card occupies) with key compatible set to pci14e4,43b1 and device-id set to 43b10000. This tricks macOS into treating the card as a native AirPort Extreme.
Clover (r5120–r5140 for 10.9–10.14)
Drop kexts into EFI/CLOVER/kexts/Other/. For device‑property injection, use the Devices -> Properties section or a custom SSDT. Many users prefer an SSDT for flexibility; see the Custom SSDTs for Legacy Hackintosh: Fixing EC, Ethernet, and CPU Power Management guide for a template you can adapt for Wi‑Fi.
One detail that often trips up builders: the PCI address of the Wi‑Fi card changes if you install it in a different slot. Use IORegistryExplorer to locate the exact IOPath of the device. A systematic approach to reading the registry is covered in RAM Disks on Legacy Hackintosh: Speed, Risks, and Automation (though that article focuses on RAM disks, the IORegistry diagnostic techniques are the same). After you find the correct path, update your config.plist SSDT or device properties accordingly.
Diagnosing No Wi‑Fi or No Interface
If the Wi‑Fi icon is absent or greyed out, follow this checklist:
- Confirm the card is detected in IORegistryExplorer. Search for
IO80211InterfaceorAirPort. If nothing appears, the kexts are not loading or the device is not compatible. - Check boot‑arg conflicts. Some users add
-no_compat_checkto bypass macOS version checks, but this can interfere with AirPort. Test with a clean boot without that argument. - Verify that the correct kexts are present in the loaded list. In OpenCore, enable
Kernel -> Quirks -> ProvideCurrentCpuInfoandDisableIoMapperif needed. In Clover, ensureKextsToPatchdoes not contain a broken patch for IO80211Family. - Test with a macOS installer USB. Boot the installer; if Wi‑Fi works there, the issue is in your post‑install configuration.
For legacy builds, a common cause of failure is using a kext originally compiled for macOS 10.15 on a 10.11 system. Always download kexts from sources that explicitly state the minimum macOS version. The AirportBrcmFixup repository, for example, tags releases with “legacy” builds for 10.9–10.13.
Preserving Your Configuration
Once you have a working Wi‑Fi setup, archive the entire EFI folder and the exact kext versions you used. Label them with the macOS version, the chipset model, and the bootloader revision. This practice is critical because kext repositories often remove older release binaries, and a future macOS update may break compatibility. A detailed guide on archiving is available in RAM Disks on Legacy Hackintosh: Speed, Risks, and Automation (the same archive principle applies to kexts).
Before making any changes—whether swapping the card, updating kexts, or moving to a newer macOS version—create a full backup of your system drive with SuperDuper! or Carbon Copy Cloner. A failed wireless kext injection can prevent the system from booting, and you will need to revert from a live USB.
Finally, if you are using a BCM94360CD and still cannot get connectivity, verify the card’s firmware version by checking the subsystem ID in IORegistry. Some counterfeit cards report a fake vendor ID and fail to load the AirPort driver. The only reliable solution is to source the card from a known Mac salvage or a reputable Hackintosh vendor.
