Contribute
Register

[SUCCESS] Gigabyte Designare Z390 (Thunderbolt 3) + i7-9700K + AMD RX 580

Damn, I've formatted so many drives prior to the changes that I must have missed that. Sorry, been using OS X since tiger and I guess thats new in Mojave? No excuse though, should have read it. But the copy is created and booting.

Would you happen to know why Music/TV/Podcasts is not allowing me to sign in but iCloud and iMessage are?
My iTunes Music Store account is different from my iCloud account. So I have to login to them with separate IDs and passwords. It sounds as if the same is true for you. Are you getting an error about incorrect login ID or password?

Also try this:
  • Launch the new Music app.
  • From the Account menu, select Sign out.
  • Then Sign In again using the old iTunes Music Store login ID and password.
 
I'm interested in whether link aggregation works in the newer version.
Just ran some tests and unfortunately still no Link Aggregation with this driver. Its file size is very nearly the same as the previous so perhaps not much has changed between 1.0.6 and 1.2.5.
 
*** OcQuirks / FwRuntimeServices Experiment: Conclusion ***

As a follow-up to the original post describing this experiment, I'm happy to say that TEST 4 works on my system even from the NVMe SSD. This is so far the only combination of parameters that works universally across USB, SATA, Thunderbolt, and NVMe PCIe (on my system).

We may finally have a viable alternative to OsxAptioFix2Drv-free2000. But let's wait for additional user feedback.

Attached ZIP contains both:
  • OcQuirks-4.efi
  • FwRuntimeServes.efi
To install this on your system -- for Clover v5xxx only:
  • If you're running Clover 4xxx, please see this mini-guide for instructions to upgrade to Clover 5xxx.
  • Mount EFI partition of macOS SSD.
  • Move or delete existing memory fix driver from CLOVER/drivers/UEFI folder.
  • Copy the two new files into the CLOVER/drivers/UEFI folder.
  • Ensure that EmuVariableUefi.efi is present in that folder.
  • Ensure that slide=0 is present in config.plist --> Boot Arguments.
Please ensure you have another working EFI folder to boot from in case these drivers do not work.

Quirk Default Test 1 Test 2 Test 3 Test 4 (success)
AvoidRuntimeDefrag True True True True True
DevirtualiseMmio False True True True True
DisableSingleUser False False False False False
DisableVariableWrite False False False False False
DiscardHibernateMap False False False False False
EnableSafeModeSlide True True True True True
EnableWriteUnprotector True True True True True
ForceExitBootServices True True True True False
ProtectCsmRegion False False False True False
ProvideCustomSlide True True False True True
SetupVirtualMap True True True True True
ShrinkMemoryMap False False False False False
QuirksProvideConsoleGopEnable True True True True True
 

Attachments

  • OcQuirks-Test-4.zip
    17 KB · Views: 1,219
Last edited:
Hi, I have a IoGear USB 4.0 Bluetooth adapter that I use with this build, but I have to unplug and replug it in everytime I boot the computer up. Is there anyway to fix this problem?
 
@CaseySJ Test 4 works for me. Booting from M2M ADATA SX8200 Pro PCIe NVMe 1TB (macOS 10.15.1) and SATA 512GB Sandisk Ultra SSD (Windows 10). If you want any other system info let me know.
 
*** OcQuirks / FwRuntimeServices Experiment: Conclusion ***

As a follow-up to the original post describing this experiment, I'm happy to say that TEST 4 works on my system even from the NVMe SSD. This is, so far, the only combination of parameters that works universally across USB, SATA, Thunderbolt, and NVMe PCIe (on my system).

We may finally have a viable alternative to OsxAptioFix2Drv-free2000. But let's wait for additional user feedback.

Attached ZIP contains both:
  • OcQuirks-4.efi
  • FwRuntimeServes.efi
To test this on your system -- for Clover v5xxx only:
  • Mount EFI partition of macOS SSD.
  • Move or delete existing memory fix driver from CLOVER/drivers/UEFI folder.
  • Copy the two new files into the CLOVER/drivers/UEFI folder.
  • Ensure that EmuVariableUefi.efi is present in that folder.
  • Ensure that slide=0 is present in config.plist --> Boot Arguments.
Please ensure you have another working EFI folder to boot from in case these drivers do not work.

Quirk Default Test 1 Test 2 Test 3 Test 4 (success)
AvoidRuntimeDefrag True True True True True
DevirtualiseMmio False True True True True
DisableSingleUser False False False False False
DisableVariableWrite False False False False False
DiscardHibernateMap False False False False False
EnableSafeModeSlide True True True True True
EnableWriteUnprotector True True True True True
ForceExitBootServices True True True True False
ProtectCsmRegion False False False True False
ProvideCustomSlide True True False True True
SetupVirtualMap True True True True True
ShrinkMemoryMap False False False False False
QuirksProvideConsoleGopEnable True True True True True

I'm wondering if you can eliminate some of them further.

Judging by the OpenCore documentation we shouldn't need EnableSafeModeSlide.
Rich (BB code):
EnableSafeModeSlide
Type: plist boolean
Failsafe: false
Description: Patch bootloader to have KASLR enabled in safe mode.
This option is relevant to the users that have issues booting to safe mode (e.g. by holding shift or using -x boot
argument). By default safe mode forces 0 slide as if the system was launched with slide=0 boot argument. This
quirk tries to patch boot.efi to lift that limitation and let some other value (from 1 to 255) be used. This quirk
requires ProvideCustomSlide to be enabled.
Note: The necessity of this quirk is determined by safe mode availability. If booting to safe mode fails, this option
can be tried to be enabled.

We shouldn't need ProvideCustomSlide either. It seems to scan the memmap and attempt to determine a working slide, and without passing it as a bootarg (and therefore leaking it to the OS), but if we're going to force slide=0 this should be able to be turned off.
Code:
ProvideCustomSlide
Type: plist boolean
Failsafe: false
Description: Provide custom KASLR slide on low memory.
This option performs memory map analysis of your firmware and checks whether all slides (from 1 to 255) can be
used. As boot.efi generates this value randomly with rdrand or pseudo randomly rdtsc, there is a chance of
boot failure when it chooses a conflicting slide. In case potential conflicts exist, this option forces macOS to use a
16
pseudo random value among the available ones. This also ensures that slide= argument is never passed to the
operating system for security reasons.
Note: The necessity of this quirk is determined by OCABC: Only N/256 slide values are usable! message
in the debug log. If the message is present, this option is to be enabled.

I don't know if you need SetupVirtualMap. The docs say it's for some firmwares that have early boot crashes and this fixes it. I don't need it in my case and I would think since we run the same board that you wouldn't either.
Code:
SetupVirtualMap
Type: plist boolean
Failsafe: false
Description: Setup virtual memory at SetVirtualAddresses.
Select firmwares access memory by virtual addresses after SetVirtualAddresses call, which results in early boot
crashes. This quirk workarounds the problem by performing early boot identity mapping of assigned virtual
addresses to physical memory.
Note: The necessity of this quirk is determined by early boot failures.

You had SetupVirtualMap and EnableSafeModeSlide on in all tests. I see you disabled ProvideCustomSlide in test 3 only and may be able to disable it again.

I know from using OpenCore that I don't need ForceExitBootServices and you only disabled it at the end. I wonder if this fixed something for you. I don't think I ever enabled it, as the docs seem to discourage using it unless necessary.

I would say we'll always need AvoidRuntimeDefrag and EnableWriteUnprotector to boot at all. I never turned AvoidRuntimeDefrag off as the docs say basically anything that isn't a real Mac or VMware should keep it on. I can't boot without EnableWriteUnprotector. DevirtualizeMmio is what frees us up some extra space (though oddly on actual OC I still need to turn iGPU off), so we should keep it.

QuirksProvideConsoleGopEnable I'm not sure of. It's implemented differently in OpenCore (a different config section), but I need the OpenCore equivalent to boot.

A test on my to do list is to see if I can figure out what quirk is implemented differently between OpenCore and OcQuirks where OcQuirks lets me boot reliably with iGPU but OpenCore doesn't.
 
@CODYQX4

The OpenCore Configuration PDF, Section 5.4, discusses each of the Booter Quirks. However, the descriptions and usage notes are not necessarily strict. In other words, the authors provide general guidelines, but there are too many differences between motherboards -- and between different sets of devices connected to those motherboards -- for the authors to establish strict rules. There is another guide elsewhere that prescribes a specific set of Booter Quirks for Coffee Lake systems, and it's from that guide that TEST 4 arose.

While we can try to disable other parameters in search of an absolute minimum set, the experience with my personal system has shown that what works for most does not work for all. I'm one of the very few whose system failed with TEST-1 and TEST-2 and TEST-3. Every other participant in this experiment was successful with all three tests. So we would be tempted to say that TEST-1 was the minimum set (it deviated the least from default values) -- or we might start with TEST-1 and pare it down further.

But it takes just one deviant system to throw off our assumptions of a minimum universally applicable set. So my feeling is that we should not pursue a minimum set. Instead, we should pursue a set that works universally, which means over engineering it to accommodate unknowns. In other words, to error on the side of caution.
 
Last edited:
@CaseySJ Test 4 works for me. Booting from M2M ADATA SX8200 Pro PCIe NVMe 1TB (macOS 10.15.1) and SATA 512GB Sandisk Ultra SSD (Windows 10). If you want any other system info let me know.
Does TEST-1 also work on your system?
 
@CaseySJ I booted up with TEST-4 and everything works. I'll leave it that way until you say otherwise. :)
 
Back
Top