Gathering files

Gathering files

Last edited: Febuary 14, 2020

This section is for gathering miscellaneous files for booting macOS, we do expect you to know your hardware well before starting and hopefully made a Hackintosh before as we won't be deep diving in here.

What's the best way to figure out if my hardware is supported?

See the supported hardware section for some better insight into what macOS requires to boot, hardware support between Clover and OpenCore are quite similar.

Firmware Drivers

These are the drivers used by OpenCore, for the majority of systems you only need 3 .efi drivers to get up and running:

For legacy users:

For a full list of compatible drivers, see 11.2 Properties in the OpenCorePkg Docs. These files will go in your Drivers folder in your EFI

Kexts

A kext is a kernel extension, you can think of this as a driver for macOS, these files will go into the Kexts folder in your EFI

All kext listed below can be found pre-compiled in the Kext Repo. Kexts here are compiled each time there's a new commit.

Must haves:

  • VirtualSMC

    • Emulates the SMC chip found on real macs, without this macOS will not boot

    • Alternative is FakeSMC which can have better or worse support, most commonly used on legacy hardware.

  • Lilu

    • A kext to patch many processes, required for AppleALC and WhateverGreen and recommended for VirtualSMC

VirtualSMC Plugins:

  • SMCProcessor.kext

    • Used for monitoring CPU temperature, doesn't work AMD CPU based systems

  • SMCSuperIO.kext

    • Used for monitoring fan speed, doesn't work AMD CPU based systems

  • SMCLightSensor.kext

    • Used for the ambient light sensor on laptops, desktops can ignore

    • Do not use if you don't have an ambient light sensor, can cause issues otherwise

  • SMCBatteryManager.kext

    • Used for measuring battery readouts on laptops, desktops can ignore

    • Do not use until battery has been poperly patched, can cause issues otherwise

Graphics:

  • WhateverGreen

    • Used for graphics patching DRM, boardID, framebuffer fixes, etc, all GPUs benefit from this kext.

Audio:

  • AppleALC

    • Used for AppleHDA patching, used for giving you onboard audio. AMD 15h/16h may have issues with this and Ryzen/Threadripper systems rarely have mic support

Ethernet:

USB:

  • USBInjectAll

    • Used for injecting Intel USB controllers, H370, B360, H310 and X79/X99/X299 systems will likely need XHCI-unsupported as well. Does not work on AMD CPU based systems

WiFi and Bluetooth:

  • AirportBrcmFixup

    • Used for patching non-Apple Broadcom cards, will not work on intel, Killer, Realtek, etc

  • BrcmPatchRAM

    • Used for uploading firmware on broadcom bluetooth chipset, required for all non-Apple Airport cards.

    • To be paired with BrcmFirmwareData.kext

      • BrcmPatchRAM3 for 10.14+ (must be paired with BrcmBluetoothInjector)

      • BrcmPatchRAM2 for 10.11-10.14

      • BrcmPatchRAM for 10.10 or older

The order in Kernel -> Add should be:

  1. BrcmBluetoothInjector

  2. BrcmFirmwareData

  3. BrcmPatchRAM3

AMD CPU Specific kexts:

  • NullCPUPowerManagment

    • Thanks to OpenCore 0.5.5, we have a much better solution known as DummyPowerManagement found under Kernel -> Quirks

  • XLNCUSBFIX

    • USB fix for AMD FX systems, no effect on Ryzen

  • VoodooHDA

    • Audio for FX systems and front panel Mic+Audio support for Ryzen system, do not mix with AppleALC. Audio quality is noticably worse than AppleALC on Zen CPUs

Extra's:

  • AppleMCEReporterDisabler

    • Useful starting with Catalina to disable the AppleMCEReporter kext which will cause kernel panics on AMD CPUs and dual-socket systems

    • Affected SMBIOS:

      • MacPro6,1

      • MacPro7,1

      • iMacPro1,1

  • VoodooTSCSync

    • Needed for syncing TSC on some of Intel's HEDT and server motherboards, without this macOS may be extremly slow or even unbootable. Skylake-X should use TSCAdjustReset instead

  • TSCAdjustReset

    • On Skylake-X, many firmwares including Asus and EVGA won't write to all cores. So we'll need to reset the TSC on cold boot and wake. Compiled version can be found here: TSCAdjustReset.kext. Note that you must open up the kext(ShowPackageContents in finder, Contents -> Info.plist) and change the Info.plist -> IOKitPersonalities -> IOPropertyMatch -> IOCPUNumber to the number of CPU threads you have starting from 0(i9 7980xe 18 core would be 35 as it has 36 threads total)

  • NVMeFix

    • Used for fixing power management and initialization on non-Apple NVMe, requires macOS 10.14 or newer

Please refer to Kexts.md for a full list of supported kexts

SSDTs

So you see all those SSDTs in the AcpiSamples folder and wonder whether you need any of them. For us, we will be going over what SSDTs you need in your specific ACPI section of the config.plist, as the SSDTs you need are platform specific. With some even system specific where they need to be configured and you can easily get lost if I give you a list of SSDTs to choose from now.

Getting started with ACPI has an extended section on SSDTs including compiling them on different platforms.

A quick TL;DR of needed SSDTs(This is source code, you will have to compile them into a .aml file):

Ivy Bridge:

Haswell:

Skylake:

Kabylake:

Coffeelake:

Haswell-E:

Broadwell-E:

Skylake-X:

AMD:

Now head to your specific CPU section to setup your config.plist

Intel Config.plist

Intel HEDT Config.plist

AMD Config.plist