Jump to content

[GUIDE] Updating and maintaining OpenCore (NEW METHOD!)


5T33Z0
 Share

27 posts in this topic

Recommended Posts

DISCLAIMER: This is not a guide for creating a working OpenCore configuration from scratch! Please use the OpenCore Install Guide from Dortania for this instead or search the Forums.

 

Last Update: September 18th, 2021.

 

Preface: In this guide I will show you a reliable method of keeping your OpenCore bootloader, Drivers, Kexts and Resources up to date without any issues and provide some useful tips and tweaks along the way. Most of it can be automated now with a relatively new tool which can update the config.plist automatically (which saves so much time and manual labour).

 

The issue: Unlike Clover, almost every aspect of OpenCore has to be defined in the config.plist itself. Apart from settings, this includes which SSDTs, Drivers and Kexts that are loaded as well as the order they are loaded in. Since OpenCore is in on-going development, it is important to know that with each new build features can be added, removed, renamed or relocated to other sections of the config. These changes have to be reflected by the config.plist, to avoid "No schema for…" errors during boot.

 

So keeping the EFI folder and config.plist up to date is crucial. But updating an outdated EFI folder - specifically the config.plist, used to be really time-consuming because most of this had to be done manually. While updating Drivers and Kexts is really not a big deal, updating an outdated config.plist was - it required various tools and steps to make it happen. (see Section "Old Method" if you are interested).

 

The solution: Since then, a new tool has been released which makes the process of updating OpenCore and the config.plist so much easier: OpenCore Auxiliary Tools (OCAT) which is – as of now – the best, easiest and fastest way to update and maintain OpenCore. Following is the guide with the new and recommended method...

 

NEW METHOD (much, much easier and faster)

Thanks to OCAT, updating and maintaining OpenCore basically boils the update process down to 3 major steps: Synchronizing the config.plist, Updating OpenCore and Drivers, Updating Kexts and Resources. That's it.

 

I. Preparation, Tools and Cautionary Measures:

  • Terminal - To find out which version of OpenCore you are currently using, enter: nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
  • ProperTree and a plist Editor. I use a combination of ProperTree for creating snapshots of and PlistEditPro for editing the config.plist. There's also the free open-source, cross-platform PlistEDPlus
  • Kext Updater - One of the must-have tools for maintaining your EFI Folder. It can mount the ESP Partition, download OpenCore, Clover, Drivers, Kexts and NVIDIA Webdrivers. It also has useful Tools integrated, like creating backups of your EFI Folder, Rebuild Kext Cache, Disable Gatekeeper, compare and validate config plists and calculate ScanPolicy. It is a tremendous time saver for maintaining your EFI Folder. For Kext Updater to work properly you need to disable SIP.
  • OCAT (OpenCore Auxiliary Tools) ­- Tool for editing and updating OpenCore files, Drivers and the config.plist. Its best feature is that it automatically updates any outdated config.plist to the latest structure and feature-set without changing your settings: like adding, renaming, removing or relocating entries. So no more manual editing of the config structure is required to bring it up to date, which was a tremendous p.i.t.a before.
  • CAUTION: When updating from version ≤ 0.6.5, disabling Bootstrap is mandatory prior to updating OpenCore, to avoid issues. Disable `BootProtect` (set it to None), reboot, reset NVRAM and then update OpenCore. More details here. My suggestion: don't use Bootstrap unless you really have to (for example, if you have Windows and macOS installed on the same disk, like Laptops often do).
  • CAUTION: If you are running  macOS older than Big Sur, you need to change the following values, otherwise you won't see your macOS Disk(s) in BootPicker, since the APFS Driver will not be loaded:

    UEFI > APFS > MinDate: set it to -1

    UEFI > APFS > MinVersion: set it to -1

II. Update Example 1: Updating a downloaded OpenCore EFI Folder

We all know this scenario: you want to try OpenCore but you don't know how to configure it and don't want to go through the install guide. So you look for an EFI on the net but it's outdated and produces a bunch or errors is you try it or won't boot at all. For this example, I am using a random EFI folder downloaded from GitHub which is at Version 0.6.5 demonstrate how to update it correctly.

 

1. Updating OpenCore, Drivers and config.plist with OCAuxiliaryTools

  • Run OCAuxiliaryTools (OCAT) and check for program updates if you haven't already (globe icon)!
  • Open the config.plist of the downloaded EFI you want to update
  • Next, hit "Save" (the Floppy Icon). This will automatically update the config.plist to the latest form with the latest feature-set. (Check Spoiler for proof).
    Spoiler

    Here's a counter-check I did. The old config (065) has UEFI Drivers sorted in a plain list:
    238810875_Bildschirmfoto3.png.89e0379bd0ea83a32983bda4236131f7.png
    Once I hit "save", the new structure (073) was applied:
    48948393_Bildschirmfoto2.png.3bbfff84ec278150ddfef4493f1c3903.png

    The same applies to other features like Quirks and such. Old UEFI > Quirks Section:
    Bildschirmfoto.png.265f23bbc9ddea2ecceead1858b94187.png
    Update UEFI > Quirks Section:
    996276978_Bildschirmfoto7.png.593bc94bc3183affd0fcbe35bb2e7e69.png

    To re-assure, that this really works, I validated the updated config using OC Validate:1332986163_Bildschirmfoto6.thumb.png.a9ad22187555c047187915876723d09b.png
    >> That's a tremendous time save compared what was necessary before to update a config.

  • Now it's time to update the Drivers. To do so, hit "Synchronize OC main program" (aka the Recycle Button). This will update OpenCore and the Drivers present in your EFI. In this example, these were the following:
    1251429153_Bildschirmfoto3.png.1d8c055cacc907ad499ebbb715d1d4f3.png
    Now that OpenCore, Drivers and the config.plist are up to date, we can continue updating Kexts and Resources...

2. Updating KEXTs and Resources with Kext Updater

OCAT isn't capable of updating Kexts and Resources yet (as far as I know), so we are going to use Kext Updater for that:

  • Open Kext Updater and click on the "Tools" Button. In the next Window, click on "Choose Folder"
  • Browse to the EFI Folder you want to check for Kext Updates and click "Open"
  • Back in the Menu, Click on "Check for Kext Updates". You will return to the main window showing the scan and download progress.
  • The downloaded Kext will be stored in a Folder called "Kext Updates" on your Desktop by default.
  • Back in the Main menu, click on "Bootloader"
  • From the Drop-down menu, select "OpenCore".
  • Another drop-down menu called "Please select" appears next to it. Select "OcBinaryData" and hit "Download"
  • The Kext Updates Folder on your Desktop now contains the latest Kexts and Resources:
    341448883_Bildschirmfoto2.thumb.png.82e037dd925ce07b383589876d825e30.png
  • Copy and replace only present outdated Kext files in the downloaded EFI > OC > Kexts Folder
  • Copy and replace the Resources Folder in the downloaded EFI > OC > Resources (ideally, update HfsPlus.efi as well if you use it - it's in the "Drivers" Folder of "OcBinaryData)
  • Add your SMBIOS info's to the downloaded config.plist as well as any additional ACPI files, Kexts, Drivers or Device Properties that are required for your hardware configuration which are missing from the downloaded EFI. In OCAT, you can Drag and Drop additional .aml Files into the "ACPI" section and Kexts into the "Kernel" section to create entries for them, so that you won't have to create a snapshot afterward. NOTE: you still have to copy the actual files to their respective locations inside the EFI Folder, though.
  • Save the config.plist
  • Basically, OpenCore, the Config, Drivers, Kexts and Resources are up to Date now. On to validating the config...

3. Create Snapshot, Validate and Test

  • In OCAT, click on the green check mark icon to validate the config.plist. Everything should be fine. If it is not, compare your config.plist with the sample.plist in included in the OpenCore Package to fix the errors mentioned in the log.
  • Optional: open the updated config.plist in ProperTree to create a new snapshot, if you added any additional files to the EFI folder that were not present before (only necessary if you didn't drag these files into the aforementioned sections of OCAT).
  • Put the downloaded EFI Folder on a FAT32 formatted USB stick and try booting from it (Perform an NVRAM Reset!)
  • If it works, you can then mount your ESP Partition on your HDD/SSD and put the folder into it and try booting from the HDD/SSD.

DONE!


II. Update Example 2: Updating/Maintaining your system's EFI Folder

Updating your system's EFI folder basically works the same as updating a downloaded EFI folder. The only difference is that we store a backup to a USB stick and perform the actual update directly on the mounted ESP. There are less steps to perform overall and the workflow in Kext Updater differs slightly. IMPORTANT: Before you do anything, Backup your working EFI Folder to a FAT32 formatted USB Stick as a fallback to boot from if the system won't boot after updating OpenCore.

 

1. Updating OpenCore, Drivers and config.plist with OCAT

  • Run OCAT and check for program updates if you haven't already (globe icon)!
  • Mount ESP (Hard Disk Icon)
  • BACKUP YOUR CURRENT EFI FOLDER ON A FAT32 FORMATTED USB STICK!
  • Open the config.plist
  • Next, hit "Save" (the Floppy Icon). This will automatically update the config.plist to the latest form with the latest feature-set.
  • Click "Synchronize OC main program" (aka the Recycle Button). This will update OpenCore and the Drivers present in your EFI.

2. Gathering latest Kexts and Resources using Kext Updater

  • Click on "Check" to download the latest kexts for your EFI. They will be stored in Desktop > Kext-Updates by default
  • Next, click on "Bootloader"
  • From the Drop-down menu, select "OpenCore".
  • Another drop-down menu called "Please select" appears next to it. Select "OcBinaryData" and hit "Download"
  • The Kext Updates Folder on your Desktop now contains the latest Kexts and Resources
  • Copy and replace only present outdated Kext files in the downloaded EFI > OC > Kexts Folder
  • Copy and replace the Resources Folder in the downloaded EFI > OC > Resources (ideally, update HfsPlus.efi as well if you use it - it's in the "Drivers" Folder of "OcBinaryData)
  • Basically, OpenCore, the Config, Drivers, Kexts and Resources are up to Date now. On to validating the config...

3. Validate and Test

  • Open the config again in OCAT and click on the green check mark icon to validate it. Everything should be fine. If it is not, compare your config.plist with the sample.plist in included in the OpenCore Package to fix the errors mentioned in the log.
  • Fix Errors if there any. Once they are fixed, save the config and reboot.

DONE! Congratulations you successfully updated your OpenCore EFI to the latest version!

 

OLD METHOD:

Spoiler

 

TL;DR QUICK GUIDE (for experienced users):

  • Mount the EFI Partition and copy the EFI Folder to an USB stick in FAT32 format.
  • CAUTION: disable Bootstrap if enabled, reboot, reset NVRAM before updating to 0.6.6 and newer! More details here
  • Download and unpack the latest OpenCore Package or grab the latest nightly build from here
  • Replace Boot, OpenCore.efi, Drivers, Kexts and existing Tools in the EFI folder on the USB stick
  • Compare config.plist with Sample.plist (OCConfig Compare), include new/missing/changed/deleted/moved entries in config.plist
  • Validate config.plist with ocvalidate and correct errors if necessary
  • Boot from USB stick (NVRAM reset may be required)
  • if boot is successful, replace EFI folder on your hard disk with the one from USB stick
  • Have a look at  OpenCore Config Tipps & Tweaks En.pdf

 

STEP-BY-STEP GUIDE (for everybody else)

Since the order of operations is important to properly update the OpenCore and avoid boot errors, please don't skip or change the sequence of the steps unless you know what you are doing.

 

I. Preparation/Tools:

  • Terminal: To find out the currently used version of OpenCore, enter: nvram 4D1FDA02-38C7-4A6A-9CC6-4BCCA8B30102:opencore-version
  • MacDown (optional): free text editor for opening and editing markdown files like "Changelog.md" included in every OpenCore packge. Important keywords to look for when inspecting the changelog are: Added, Changed/Renamed, Removed/Deleted, Moved. Whenever any of these terms appear in the changelog followed by some highlighted text, you most likely have to edit the config.plist to reflect the updated/changed feature-set. If you don't want to install an extra App for that you can use the changelog online of course: https://github.com/acidanthera/OpenCorePkg/releases
  • Kext Updater One of the must-have tools for maintaining your EFI Folder. It can mount the ESP Partition, download OpenCore, Clover, Drivers, Kexts and NVIDIA Webdrivers. It also has useful Tools integrated, like creating backups of your EFI Folder, Rebuild Kext Cache, Disable Gatekeeper, compare and vaildate config plists and calculate ScanPolicy. It is a tremendous time saver for maintaining your EFI Folder. For Kext Updater to work properly you need to disable SIP.
  • ProperTree and a plist Editor. I use a combination of ProperTree for creating snapshots of and PlistEditPro for editing the config.plist. There's also the free open-source, cross-platform PlistEDPlus
  • OpenCore ScanPolicy Generator Website for generating a ScanPolicy to enable/disable various Device Types and File formats in the Boot Picker.

CAUTION: Please don't use dedicated GUI-based Config Editors like OpenCore Configurator yet. Although convenient, they can ruin your config if they are not up to par with the latest feature-set of OpenCore which can change on a daily basis by features being added, juggled around or removed. Dedicated Config Editors have to accommodate for these changes by an update to their GUI to accomodate for the changed feature-set. That's why they are always slightly behind in development. With a simple plist Editor you can avoid this problem altogether.

 

II. Update Example 1: Updating a downloaded OpenCore EFI Folder

We all know this scenario: you want to try OpenCore but you don't know how to configure it and don't want to go through the install guide. So you look for an EFI on the net but it's outdated and produces a bunch or errors is you try it or won't boot at all. For this example, I am using an older version of an EFI folder for my previous Boards from this thread to demonstrate how to update it correctly. It's for version 0.6.0 so there's probably a lot to do to update it.

 

1. Gathering latest versions of OpenCore, Kexts, Drivers and Resources using Kext Updater

  1. Extract the downloaded zip of the EFI Folder you downloaded from the Internet
  2. Disable SIP and reboot so Kext Updater fully works. Instructions:
  3. Open Kext Updater and click on "Bootloader"
  4. Select "OpenCore" in both drop-down menus and hit "Download". This will download the latest release version of OpenCore to your Desktop > Kext-Updates by default
  5. Click on "Bootloader" again but this time select "OcBinaryData" from the right drop-down menu and click "Download"
  6. Back in the Main of Kext Updater, click on "Tools"
  7. Click on "Choose Folder", navigate to the downloaded EFI Folder and click "Open"
  8. Finally, click the highlighted "Check for Updates" button. Kext Updater will downloads the latest Kexts for the specified EFI to the Kext-Updates folder on your Desktop (your Kext-Updates Folder will included files for your system so it will look different):

gathererdfiles.png.6fcac1980ce1810c3a5eb35c2aa29f0d.png

Now that we have gathered all necessary files we can start updating OpenCore…

 

2. Updating OpenCore Files, Drivers, Kexts and Resources

Next, we will Update the OpenCore Files of the downloaded EFI Folder. To do so, drag and replace the following files from Kext-Updates to your downloaded EFI Folder. These files have to be replaced every time you update OpenCore:

  • EFI > BOOT > BOOTx64.efi
  • EFI > Bootstrap > Bootstrap.efi CAUTION: Bootstrap is included in OpenCore.efi since version 0.6.6. To safely disable and delete bootstrap.efi, please follow this guide
  • EFI > OC > OpenCore.efi
  • EFI > OC > Drivers > Only Replace existing .efi drivers, not the whole folder!.
    NOTE: Proprietary File System Drivers like HfsPlus.efi etc. are located in the OcBinaryData Package.
    CAUTION: If you are updating from OpenCore 0.5.6 or earlier, delete FwRuntimeServices.efi and replace it with OpenRuntime.efi!
  • Kexts: copy and replace all the downloaded .kext files. Any by .kext files I mean .kext ONLY. No Sub folders, no additional content like .dsls etc. – just .kext fIles.

If you use OpenCanopy for the GUI-based Boot Picker, copy over the "Resources" Folder from OcBinaryData as well. You only need to update the Resources if the Boot Picker doesn't work as expected after the release of a new OC build. Congratulations, you've successfully updated your OpenCore EFI Folder! Now on to the strenuous part: updating the config.plist…

 

3. Updating the config.plist using OCConfigCompare

  • Double-click OCConfigCompare.command to start the tool. Open the "Tools" Section in Kext Updater and click the "OCConfigCompare" Button
  • Press "5" and hit "Enter" to hide certain entries to be displayed from the results of the config comparison.
  • Press "2" to "Hide comments (#), PciRoot, and most OC NVRAM samples". Press "M" and hit "Enter" to return to the Main Menu
  • Press '1"' to download the latest Release Sample or '2' to download the latest Commit Sample (for nightly builds only)
  • Press "4", drag in your config.plist and hit "Enter"
  • Back in the Main Menu, Press '7' and hit Enter to begin the config comparison

The resulting output will contain 2 Sections: "Values missing from User plist" and "Values missing from Sample plist" and may look like this:

943164700_MissingfromUserConfig.thumb.png.00841d3d60b45a423312d3d9a7587d57.png

3.1 Interpreting the Results

What "Missing from user plist" means is pretty obvious. "Missing from Sample plist" on the other hand is not. It means that these entries/parameters are no longer being used in the current build of OpenCore and have to be deleted from the config.plist. So in other words, "Missing from Config plist" means adding entries to the config while "Missing from Sample plist" means deleting them. In this case, the list of missing entries is so long, that the "Missing from Sample plist" Section doesn't even fit in the visible screen space… oh boy…

 

3.2 Window Arrangement
Next, we need to arrange our workspace a bit to be able see both configs and the results from OCConfigCompare at the same time. I usually arrange my windows like this: config.plist on the left, sample.plist on the right and OCConfigCompare on the bottom. With the three windows in front of you, use OCConfigCompare as an aid to navigate through the sample config to find parameters to copy over to the config.plist:

1598073699_Arrangeworkspace.thumb.png.a63e1482b99b4127f87f4bad4f2dcc83.png

 

3.3 Adding version Info to the config.plist (optional but recommended)

Since you can only find out which build of OpenCore you are actually using is while it's running, it's good practice to include some basic information about the Build and System in your config – especially if plan on sharing it. In this case I added "#OC Version", #Date" and #Board/Chipset as Strings in PlistEditPro at the beginning of the config.plist. It's important to hash out ("#") the added lines, otherwise OpenCore thinks it's an instruction. Things like this you cannot do with GUI-based config editors.

 

3.4 Config Editing workflow

Now that we have all the windows arranged in a useful way, we can finally start to update the config line for line. This is how I do it:

  1. Check a) which Section of the config OCConfigCompare is referring to and b) which Parameter is missing from User Plist
  2. Navigate to said section in the Sample.plist, look for the parameter in question and either copy and paste it to the same location in the config.plist or drag and drop it
  3. Repeat from step 1 until nothing is missing from User Plist any longer.
    TIP:
    Save the config in between steps to shrink the list and update the results list. In OCConfigCompare, hit "Enter" to return to the main menu and then hit "5" and "Enter" again to compare the two configs again and continue working.
  4. Once you reached "Missing from Sample plist" section, the workflow changes. Now instead of adding things to the config.plist we delete entries from the config.plist
  5. Repeat step 4 until you reach the end of the list
  6. Save the config
  7. Update OCConfigCompare list.

NOTE: You can ignore the following results form OCConfigCompare: "DeviceProperties" and "Type Differences" if the selected parameter supports more then one Type of value  (like Integer, Data or Number). Here's a video of how this particular config.plist was updated:

 

 

4. Create a new Snapshot of the config.plist using ProperTree

In order to reflect any changes made to the file and folder structure of the updated EFI folder, it is a good idea to create a new snapshot of your config.plist using ProperTree. ProperTree also detects possible conflicts in the config.plist and can fix them automatically.

  1. Download and extract ProperTree
  2. In Finder, navigate to the ProperTree-master > Scripts Folder
  3. Double-click "buildapp.command". In Big Sur this may not work - use "buildapp-python3.command" instead
  4. This will compile the ProperTree App
  5. Run ProperTree
  6. Open the updated .plist (CMD+O)
  7. Click on File > OC Snapshot (CMD+R)
  8. Navigate to the updated EFI Folder > EFI > OC and click "Open"
  9. Save the config and quit ProperTree

5. Checking the config.plist for validity

Although ProperTree is great for synchronizing the config.plist with the contents of its EFI folder, it does not detect configuration issues or syntax errors in 'DeviceProperties' for example. To validate your config, you can either use Kext Updater or ocvalidate located in the downloaded OpenCore Package under "Utilities". In this example, we use Kext Updater since it is more user friendly foe novices. You'd be surprised how many configuration issues this will reveal you didn't know your config had… Happens all the time.

  1. In Kext Updater, click on "Tools"
  2. On the right click on "Choose .plist", navigate to the config.plist you want to validate (in this case the one from the downloaded EFI folder) and click "Open"
  3. Next, click "Check for validity". The remaining issues will be display in the main window.
  4. Use a combination of sample.plist, Dortania Installation Guide and/or Configuration.pdf located in the OpenCore Package under "Docs" to resolve the issues
  5. Validate the config again
  6. Repeat Steps 2 to 5 until all issues are fixed (ideally).

6. Copy updated EFI Folder to FAT32 formatted USB Stick

7. Reboot from USB Stick to test if the updated EFI works

8. Perform NVRAM Reset

9. Boot macOS

10. If the boot is successful, replace the system EFI with the one from the USB Stick

 

DONE! Congratulations you successfully updated OpenCore to the latest version!


II. Update Example 2: Updating/Maintaining the system's EFI Folder

Updating your system's EFI folder basically works the same as updating a downloaded EFI folder. The only difference is that we store a backup to a USB stick and perform the actual update directly on the mounted ESP. There are less steps to perform overall and the workflow in Kext Updater differs slightly.

1. Gathering latest versions of OpenCore, Kexts, Drivers and Resources using Kext Updater

  1. Disable SIP if you haven't already and reboot so Kext Updater fully works.
  2. Open Kext Updater, grand it admin privileges and hit the red "EFI" button to mount it. If it turns green the EFI is mounted
  3. IMPORTANT Backup your working EFI Folder to a FAT32 formatted USB Stick as a fallback to boot from if the system won't boot after updating OpenCore
  4. Back in Kext Updater, click on "Check" to download the latest kexts for your EFI. They will be stored in Desktop > Kext-Updates by default
  5. Click on "Bootloader"
  6. Select "OpenCore" in both drop-down menus and hit "Download". This will download the latest release version of OpenCore
  7. Click on "Bootloader" again but this time select "OcBinaryData" from the right drop-down menu and click "Download"

Steps 2 to 5 follow the same procedure as in Example 1 except that you are now working on your system EFI and config located on the ESP.

6. Reboot System

7. Perform NVRAM Reset

8. Start macOS. If the boot fails, start your Hackintosh from the backup on your USB Stick, fix the issue(s) and try again.

 

DONE! Congratulations you successfully updated OpenCore to the latest version!

 

II. Update Example 3: Migrating data from an outdated config.plist into the latest OpenCore build

As seen in example 1, updating an old config.plist can be tedious and time consuming task. Depending on the results of OCConfigCompare you may reach a junction where you have to decide: "do I update this config or should build it fresh from the current sample?". Well, if the difference in versions of two OpenCore builds is greater than 0.0.3 you should consider building the config fresh from scratch using OC Gen-X. Here's why: OpenCore builds are released on a monthly basis and with each release their version increases in 0.0.1 increments which is equivalent to one month of development time. So although a version difference of 0.0.7 (as in example 1) might seem pretty small, in reality it's a big deal because it resembles seven months of development time, which is an eon! So at this stage it's probably a good idea to generate a fresh EFI Folder using OC Gen-X and implement ACPI Patches and Settings from the existing config – especially if it is a Desktop PC. Here's how you do it:

  1. Download, unpack and run OC Gen-X
  2. Click through the different Tabs of the App and select everything you need for your config. It's pretty straight forward and self-explanatory
  3. Hit "Generate". An EFI Folder will be created on the Desktop
  4. From the old EFI folder copy over the ACPI Folder
  5. Copy over the Following sections from your old config into the current:
    • ACPI > Add
    • ACPI > Delete
    • ACPI > Patch
    • DeviceProperties
    • Kernel > Patch
    • Platforminfo > Generic
  6. Run Kext Updater check the EFI Folder on the Desktop for Kext Updates
  7. Hit "Kext Manager" and check all additional Kexts you may need for your System which are not included in OC Gen-X and hit "Download".
  8. Add the necessary Kexts to the EFI Folder
  9. Generate a snapshot of your config using ProperTree
  10. Check if your config has the correct settings for your CPU Family run the "Config Checker" loctated in OpenCoreConfigurator under "Tools":
    • Select the Family your CPU belangs to from the "CPU Family" dropdown menu
    • Select the OpenCore Version you are using
    • Click on the Drag and Drop Option, drag in your Config
    • Press "Check" button
    • Analyze the resuls. Greeen chekmarks mean, the setting is correct for the selected CPU Family. A red x means something is definitrly not ok. And a question mark means that the Option differs from what is default/recommended setting for the selected CPU Model but it doesn't have to be wrong either. In cases of uncertainty refer to Dortania's OpenCore Install Guide.
  11. Validate your config using the OCValidate Utility
  12. Fix any errors that may occur (like Booter and Kernel Quirks) with the OpenCore Installation Guide for your platform
  13. Re-Validated the config again
  14. Put the EFI Folder on a FAT32 formatted USB Stick and try booting from it
  15. If it works, congratulations. If it doesn't start over from Step 11.
  16. Once everything is working, copy the EFI Folder to your system ESP


DONE!

Edited by 5T33Z0
Update
  • Like 4
  • Thanks 4

 

58 minutes ago, 5T33Z0 said:

Since there is no tool out yet to update the bootloader files and config automatically most of it has to be done manually (for now).

@5T33Z0

Nice guide thanks; I think you forgot (or haven't used) a very useful tool by @Pavo called OC-Gen-X which helps to build and configure latest version of OpenCore and the kexts for various systems.

I just thought you might wanna add it to your guide.

  • Like 1

Posted (edited)

@Cyberdevs I haven't forgot. It's just another scnenario I will add later. Btw, is there an advanced mode in the editor to see the pure text? I think there are some hidden elements in the text I copied over form Typora which mess up the formatting.

Edited by 5T33Z0

@5T33Z0 I don't see any advanced features for editing the text but I can see the extra spaces between some parts of the post.


  • 5T33Z0 changed the title to [GUIDE] Updating OpenCore with Kext Updater and OCConfigCompare (plus config Tips and Tweaks)
  • 1 month later...
  • 5T33Z0 changed the title to [GUIDE] Updating OpenCore with Kext Updater and OCConfigCompare (plus Tips and Tweaks)

+++ URGENT UPDATE +++

 

Regarding Updating OpenCore 073:  During development of OpenCore 0.7.3, the structure of the UEFI > Drivers section was changed from a simple Array with Strings to an Array with Dictionary entries for each Driver, providing additional options to enable/disable and assigning extra arguments to them. If the structure isn't adapted during updating OpenCore, you won't have the Boot Picker GUI  and your system won't boot because the Drivers are not loaded. To fix this, open the sample.plist and copy the required entries from Drivers > UEFI to your config.

 

Old Structure (< 0.7.3):

1438030212_OldForm.png.b850e466d304d94e66277e7a975d1762.png

 

New Structure (≥ 073)

1160226904_NewForm.png.7490cad62c5de893e57c5dd365881262.png

 

Once you applied the changes everything will be back to normal.

  • Like 2

  • 5T33Z0 changed the title to [GUIDE] Reliably updating and maintaining OpenCore (plus Tips and Tweaks)
2 hours ago, 5T33Z0 said:

Are there any plans in the future to make it look less like a Windows program more macOS-like?

Of course, I'm more than happy to make any reasonable improvements to the app, including the UI, as time allows.
Any suggestions on the UI or other parts of the app are always welcome, thank you.

  • Like 2

@ic005k Thanks, I will have to work with it a bit more until I make suggestions. But the way it updates the config automatically to the latest feature set is really incredible. Doing this manually before was soooooo much work if the EFI was old. Now it's 2 clicks basically. Thanks for that!


  • 5T33Z0 changed the title to [GUIDE] Updating and Maintaining OpenCore (NEW METHOD)
On 3/15/2021 at 6:19 PM, 5T33Z0 said:

if you added any additional files to the EFI folder that were not present

At this point, you can single or multiple select these files and drag and drop them directly to the corresponding interface of OCAT, such as ACPI->Add, Kernel->Add, etc.

  • Like 1

  • 5T33Z0 changed the title to [GUIDE] Updating and maintaining OpenCore (NEW METHOD!)

@ic005k Thanks a lot. Is there a way to switch OCAT into a "nightly" mode, so it doesn't update the structure of the config when editing/saving? This would be really useful when working with nightly builds of the next OpenCore version which might have features that are not implemented into the app yet.

 

More desirable Features:

- Dragging and Dropping entries by mouse in Text lists would be nice (ACPI, Device Properties  and Kernel Section)

- Inclusion of a Kext Updater

- inclusion of a HEX converter.

 

A suggestion for the ESP Mounter: It would be nice if it also showed the actual name of the drive/container and not just the volume identifier (disk0s1, etc):

1881492969_Bildschirmfoto2021-09-16um08_53_14.thumb.png.68950d49e861ee26ea829c849351d0dd.png

Edited by 5T33Z0

 

@ic005k really appreciate your tool, having different OC plist's and two different OCAT versions side by side is wonderful for migrating, especially if one prefers to manually switch things over for paranoid reasons :).

 

A few changed are very much need if possible. Adding entries on the fly, currently it requires pressing Enter to save a field, but certain conditions would greatly be appreciated, like save entries when pressing tab or just moving out with the cursor, or paste entries without double-clicking the fields. Copy and pasting multiple fields too. 


1 hour ago, 5T33Z0 said:

Is there a way to switch OCAT into a "nightly" mode, so it doesn't update the structure of the config when editing/saving? This would be really useful when working with nightly builds of the next OpenCore version which might have features that are not implemented into the app yet.

OCAT has nothing to do with the version of OC, it only has to do with whether the structure of the OC configuration file has changed, for example the current OCAT can directly edit the OC 0.7.4 configuration file.
When you open an OC0.7.4 profile, if the "OC Verify" icon on the toolbar does not show a warning, the current OCAT does not need to be upgraded and it will continue to be able to edit OC0.7.4, otherwise I will upgrade the OCAT to fit the new OC0.7.4 profile structure.

  • Like 2

1 hour ago, 5T33Z0 said:

Dragging and Dropping entries by mouse in Text lists would be nice (ACPI, Device Properties  and Kernel Section)

This can be considered, but is used very infrequently. Because currently OC only kext has an order requirement (e.g. Lilu must be placed in the first position), everywhere else there is no order requirement and can be freely arranged without sorting.


1 hour ago, 5T33Z0 said:

Inclusion of a Kext Updater

This feature was actually considered when OCAT was first designed. But there are too many such apps, such as Kext Updater and so on. So for the time being, we should not consider adding this feature.
And upgrading kext is not a must when upgrading OC, for example, my kext has not been upgraded for a long time, because it is very stable and there is no need to upgrade it often.

1 hour ago, 5T33Z0 said:

inclusion of a HEX converter.

This gadget can be considered, very practical.

  • Like 1

2 hours ago, 5T33Z0 said:

It would be nice if it also showed the actual name of the drive/container and not just the volume identifier (disk0s1, etc):

The actual name of the drive is already shown, but you are using "EFI" as the volume label name, please change the volume label name, such as "EFI_OC", etc., you will find that it will change immediately.


58 minutes ago, PlutoDelic said:

Adding entries on the fly, currently it requires pressing Enter to save a field, but certain conditions would greatly be appreciated, like save entries when pressing tab or just moving out with the cursor, or paste entries without double-clicking the fields. Copy and pasting multiple fields too. 

I will take a closer look at what you have said.
If you want to exchange data between two config.plist, "copy or paste line" is a very good choice, it supports single or multiple selection.

  • Like 1

1 hour ago, ic005k said:

This can be considered, but is used very infrequently. Because currently OC only kext has an order requirement (e.g. Lilu must be placed in the first position), everywhere else there is no order requirement and can be freely arranged without sorting.

 

As far as I am aware, there is a minimal requirement for kext hierarchy: Lilu, VirtualSMC and Whatevergreen, then anything else. Because Whatevergreen also provides functionality to other kexts. But I might be mistaken

 

Since this is the OpenCore Update thread, it's probably wise to create a separate "OCAT Feedback and Suggestions" thread future discussions.


7 minutes ago, 5T33Z0 said:

As far as I am aware, there is a minimal requirement for kext hierarchy

Yes, you can open OCAT, select all the kext files in your kext directory and drag them into Kernel->Add, you will see that there will be a basic sorting of the files.


1 hour ago, ic005k said:

The actual name of the drive is already shown, but you are using "EFI" as the volume label name, please change the volume label name, such as "EFI_OC", etc., you will find that it will change immediately.

 

I meant the name of the Parent drive. Similar to this:

 

Bildschirmfoto.png.bf3487bc02ce0313d91802c549063490.png

 

1 minute ago, ic005k said:

Yes, you can open OCAT, select all the kext files in your kext directory and drag them into Kernel->Add, you will see that there will be a basic sorting of the files.

 

I know that. But I'd like to grab entries to move them around instead of using the up and down arrows.


 Share

×
×
  • Create New...