# Emulated NVRAM
This is not up to date for OpenCore 0.8.3!
So this section is for those who don't have native NVRAM, the most common hardware to have incompatible native NVRAM with macOS are X99 and some X299 series chipsets:
For B360, B365, H310, H370, and Z390 users, make sure you have SSDT-PMC (opens new window) both under EFI/OC/ACPI and config.plist -> ACPI -> Add. For more info on making and compiling SSDTs, please see Getting started with ACPI (opens new window)
# Cleaning out the Clover gunk
So some may not have noticed but Clover may have installed RC scripts into macOS for proper NVRAM emulation. This is an issue as it conflicts with OpenCore's method of emulation.
Files to delete:
If folders are empty then delete them as well:
# Verifying if you have working NVRAM
To start, open the terminal and run the following command, which sets a variable named
test in your NVRAM to the current date and time:
sudo nvram myvar="$(date)"
Now reboot and run this:
If nothing returns then your NVRAM is not working. If a line containing
myvar and then the current date, your NVRAM is working.
# Emulating NVRAM (with a
If you don't have native NVRAM, don't fret. We can set up emulated NVRAM by using a script to save the NVRAM contents to a plist during the shutdown process, which will then be loaded by OpenCore at the next startup.
To enable emulated NVRAM, you'll need the following set:
Within your config.plist:
- Booter -> Quirks:
DisableVariableWrite: set to
- Misc -> Security:
ExposeSensitiveData: set to at least
LegacySchema: NVRAM variables set (OpenCore compares these to the variables present in
WriteFlash: set to
And within your EFI:
OpenRuntime.efidriver (this is needed for proper sleep, shutdown and other services to work correctly)
Make sure to snapshot after to make sure the drivers are listed in your config.plist. Afterwards, make sure that both
LoadEarly set to
YES, and that
OpenVariableRuntimeDxe.efi is placed before
OpenRuntime.efi in your config .
Now grab the LogoutHook folder (opens new window) (inside
Utilities) and place it somewhere safe (e.g. within your user directory, as shown below):
Open up terminal and run the following (one at a time):
cd /Users/$(whoami)/LogoutHook/ ./Launchd.command install
And voila! You have emulated NVRAM!