# Adding The Base OpenCore Files

  • Supported version: 0.6.0

To setup OpenCore’s folder structure, you’ll want to grab the EFI folder found in OpenCorePkg's releases. Regarding DEBUG versus RELEASE version:

  • DEBUG: Can greatly help with debugging boot issues, however can add some noticeable delay to boot times. Once installed you can easily transition to RELEASE
  • RELEASE: Much snappier boot times, however virtually no useful DEBUG info is provided in OpenCore making troubleshooting much more difficult.

And once downloaded, place the EFI folder(from OpenCorePkg) on the root of your EFI partition.

Note:

  • Windows users: This will already be done on the BOOT USB drive created by MakeInstall
  • Linux users: This is the OPENCORE partition we created earlier
    • Note that Method 1 only creates 1 partition, while Method 2 creates 2 partitions

base EFI folder

Now something you'll notice is that it comes with a bunch of files in Drivers and Tools folder, we don't want most of these:

  • Remove from Drivers:

    • AudioDxe.efi
      • Unrelated to Audio support in macOS
    • CrScreenshotDxe.efi
      • Used for taking screenshots in UEFI, not needed by us
    • OpenUsbKbDxe.efi
    • UsbMouseDxe.efi
      • similar idea to OpenUsbKbDxe, should only be needed on legacy systems using DuetPkg
    • NvmExpressDxe.efi
      • Used for Haswell and older when no NVMe driver is built into the firmware
    • XhciDxe.efi
      • Used for Sandy Bridge and older when no XHCI driver is built into the firmware
    • HiiDatabase.efi
      • Used for fixing GUI support like OpenShell.efi on Sandy Bridge and older
    • OpenCanopy.efi
      • This is OpenCore's optional GUI, we'll be going over how to set this up in Post Install so remove this for now
    • Ps2KeyboardDxe.efi + Ps2MouseDxe.efi
      • Pretty obvious when you need this, USB keyboard and mouse users don't need it
      • Reminder: PS2 ≠ USB
  • Remove everything from Tools:

    • Way to many to list them all, but I recommend keeping OpenShell.efi for troubleshooting purposes

A cleaned up EFI:

Clean EFI

Now you can place your necessary firmware drivers(.efi) into the Drivers folder and Kexts/ACPI into their respective folders. Please note that UEFI drivers from Clover are not supported with OpenCore!(EmuVariableUEFI, AptioMemoryFix, OsxAptioFixDrv, etc). Please see the Clover firmware driver conversion for more info on supported drivers and those merged into OpenCore.

Here's what a populated EFI can look like (yours will be different):

Populated EFI folder

Reminder:

  • SSDTs and custom DSDTs(.aml) go in ACPI folder
  • Kexts(.kext) go in Kexts folder
  • Firmware drivers(.efi) go in the Drivers folder

# Now with all this done, head to Gathering Files to get the needed kexts and firmware drivers