Contribute
Register

Emulated nvram on X99 board working or not?

Status
Not open for further replies.
Joined
Feb 28, 2020
Messages
18
Motherboard
Asus X99 Deluxe
CPU
E5 1660 v3
Graphics
Asus 5700XT reference model
Hello everyone,

My build is based on Asus X99 Deluxe which does have a nvram but not compatible with Mac. As a result, I need to do the emulated NVRAM.

I followed this guide "https://khronokernel-2.gitbook.io/opencore-vanilla-desktop-guide/extras/nvram"
and BTW I'm installing Catalina with Opencore 0.5.6.

The guide instructs me to have a precheck on the native NVRAM and surely it doesn't work as I mentioned it's not compatible with Mac as most X99 board.
"
sudo -s
sudo nvram -c
sudo nvram myvar=test
exit

Now reboot and run this:

nvram -p | grep -i myvar
"

After that, I followed all the steps to modify my config.plist(please notice I didn't touch anything under LegacySchema section) and use LogoutHook.command as well.

Now I see the nvram.plist is generated right under my EFI partition and it is getting updated every boot. (you can check the created timestamp & modified timestamp below)
Screen Shot 2020-03-18 at 11.47.37 AM.png


However, if I perform the test again:
sudo nvram myvar=test
then restart and run:
nvram -p | grep -i myvar

It still shows nothing to me. But the interesting part is the property "myvar" is actually in the nvram.plist if you mount the EFI folder and check the content.
Screen Shot 2020-03-18 at 11.54.40 AM.png


And finally, if I perform a reboot again and check the nvram.plist content, the "myvar" disapears from the list.

At this stage, I'm not sure if the emulated nvram is working or not and currently I don't have extra disks to select the startup disk to demostrate it's working.
Anyone knows this is the expected behavior or still there is something wrong?
 
In your post above you tried these commands:
Code:
sudo nvram myvar=test
then restart and run:
nvram -p | grep -i myvar
But instead of restarting, try shutting down. Then start up. Does it make a difference?

Also feel free to post your OpenCore folder, but you may remove serial numbers from PlatformInfo prior to posting.
 
In your post above you tried these commands:
Code:
sudo nvram myvar=test
then restart and run:
nvram -p | grep -i myvar
But instead of restarting, try shutting down. Then start up. Does it make a difference?

Also feel free to post your OpenCore folder, but you may remove serial numbers from PlatformInfo prior to posting.

Thanks CaseySJ

Now I have moved to Opencore 0.5.8 with Catalina 10.15.4 and the hardware is same.

I have tried your advice and looks it's nothing different from testing it via reboot.

I also tried to change startup disk via system perferences but it's just not working while I tried to lock the change.
Screen Shot 2020-05-10 at 10.41.24 PM.png


Attached my EFI.

With the setting in the EFI and LogoutHook mentioned in that guide, I can see nvram.plist is updated every time in my EFI partition. However, it seems nothing more than that is working.

Really appreciate if you can help.
 

Attachments

  • EFI.zip
    4.8 MB · Views: 104
Let me see what I can do. Quick question: Do you have the Asus X99 Deluxe II?
 
Let me see what I can do. Quick question: Do you have the Asus X99 Deluxe II?
No, it's first generation Ausu X99 Deluxe: https://www.asus.com/Motherboards/X99DELUXE/

I remembered I read some posts mentioned before that some Asus board require LoginHook as well. I tried to add it serveral months back but seems not working too thus I reverted that change. But still I can try with current build.
 
Some questions:
  • If you can boot with OpenCore 0.5.8 and you're already running Catalina 10.15.4, what problem or issue are you trying to resolve by enabling NVRAM?
  • Have you tried to disabled CFG-LOCK (MSR 0xE2) by modifying BIOS?
By the way I just finished upgrading my Asus X99 Deluxe II to Catalina 10.15.4 as follows:
  • Received a modified BIOS 1802 from someone on another Hackintosh forum. This version has MSR 0xE2 unlocked and latest Intel microcode.
  • The BIOS (.CAP) file could only be flashed using the BIOS Flashback feature. Attempts to install the firmware through BIOS Setup --> Tools --> BIOS Update always aborted with an error message rejecting the file.
  • I had been running Catalina 10.15.3 with Clover on a new BIOS 2101 with locked MSR, but this prevented me from updating to 10.15.4.
  • After installing unlocked BIOS, switching to OpenCore, and using latest Catalina kernel patches for X99 from Insanely Mac, the OpenCore 0.5.8 EFI successfully booted the machine and the update to 10.15.4 went very smoothly.
Lesson: Unlock the MSR 0xE2 register by modifying BIOS, or see if a pre-modified BIOS is available from somewhere.

However, if you are already up and running, then it's probably not necessary to worry about NVRAM. Future versions of OpenCore might make the "emulated NVRAM" process easier.
 
Last edited:
Some questions:
  • If you can boot with OpenCore 0.5.8 and you're already running Catalina 10.15.4, what problem or issue are you trying to resolve by enabling NVRAM?
  • Have you tried to disabled CFG-LOCK (MSR 0xE2) by modifying BIOS?
By the way I just finished upgrading my Asus X99 Deluxe II to Catalina 10.15.4 as follows:
  • Received a modified BIOS 1802 from someone on another Hackintosh forum. This version has MSR 0xE2 unlocked and latest Intel microcode.
  • The BIOS (.CAP) file could only be flashed using the BIOS Flashback feature. Attempts to install the firmware through BIOS Setup --> Tools --> BIOS Update always aborted with an error message rejecting the file.
  • I had been running Catalina 10.15.3 with Clover on a new BIOS 2101 with locked MSR, but this prevented me from updating to 10.15.4.
  • After installing unlocked BIOS, switching to OpenCore, and using latest Catalina kernel patches for X99 from Insanely Mac, the OpenCore 0.5.8 EFI successfully booted the machine and the update to 10.15.4 went very smoothly.
Lesson: Unlock the MSR 0xE2 register by modifying BIOS, or see if a pre-modified BIOS is available from somewhere.

However, if you are already up and running, then it's probably not necessary to worry about NVRAM. Future versions of OpenCore might make the "emulated NVRAM" process easier.

Thank you CaseSJ. Yes I have Catalina set up and running well(well, mostly). I have followed KGP's X99 guide thus the MSR 0xE2 is unlocked.

The reason I am trying to enable nvram is that this is one section in Opencore Vanilla desktop guide in post installation. Other than that, I read in some posts which mentioned a working nvram would enable you to use start up disk utility to change the default boot device. Now "Windows" is always the default one thus I need to change use keyboard to boot into MacOS every time. I also know that there are other ways to complish the same but it looks much more complicated and seems not as clean as this solution which only need to change in disk utility tool.

It's not a crucial feature but very nice to have. Hope later Opencore release would make it work.
 
Oh, so MSR 0xE2 is unlocked? In that case please make the following changes and see if it helps:

Screen Shot 2020-05-11 at 8.06.11 AM.png
Screen Shot 2020-05-11 at 8.06.26 AM.png

LogoutHook is not needed when native NVRAM is supported with unlocked MSR 0xE2.
 
Oh, so MSR 0xE2 is unlocked? In that case please make the following changes and see if it helps:

View attachment 468818View attachment 468819
LogoutHook is not needed when native NVRAM is supported with unlocked MSR 0xE2.

Sorry for late resonpse, it's extremely busy these days.

  • I have done those changes in config.plist and also removed both LoginHook & LogoutHook.
  • checked MSR 0xE2 with the tool brought by Opencore

IMG_4203.JPG


Now what I observed is:
  1. Setting Startup disk doesn't report error anymore. However, it just doesn't work. e.g. If I set MacOS as the startup disk, after click restart, Opencore still boots Windows by default as it's at the top of the booting list.
  2. If I try to set a variable to nvram by using command "nvram myvar=test", I will be able to check this variable existed by using "nvram -p" immediately after inserting the variable. However, if I try to shutdown and reboot again, this particular variable disappears if using "nvram -p" to check the existence.
I understand Asus X99 Deluxe has a built-in nvram but it seems it's not a native supported nvram. If we are not going to the emulated nvram solution, would there be a way to just make this nvram supported?
 
Javenl, did you manage to solve this problem?
 
Status
Not open for further replies.
Back
Top