** Hackintosh ** Tips to make a bare metal MacOS


Recommended Posts

5 hours ago, meep said:

So I'm having a torrid time attempting to get  HEVC enabled on my RX570 in Mojave VM. Hopefully someone here can offer some insights.

 

I have a long-standing Mojave VM booting from a physical SSD.  EFI partition is on the SSD as well, so only one disk configured in VM XML.

 

Clover v. 4xxx is installed in EFI. RX570 is passed through and is working with Metal support and H.265 reported in VidProc. HEVC remains resolutely disabled in VidProc despite my best attempts.

 

I've configured my SMBIOS to  be a wide variety of systems from MacPro 1,1 through 7,1 and iMacPro 1,1, all to no avail.

 

There are a few points of note;

  • I cannot get Clover to load Lilu/WEG from the /other folder. I must install to /library/extensions using HackInTool for it to show as loaded in ioRegistry. (I have checked that load kexts is set to 'yes' in clover configurator)
  • Despite WEG being loaded, my GPU remains stubbornly attached to parent S28@5 in ioRegistry. I understand this should be GFX0 - but I cannot make this happen
  • I've tried updating to Clover 5xxxx but this just hangs at 'scanning devices'. (I understand that newer versions are more trouble than they are worth - I just thought an update might load kexts from 'other'.

 

The VM is running very smoothly and is very stable. i'd just like to have it as close to bare metal as possible and HEVC is that elusive functionality I'm chasing.

 

I want to make one last attempt at this before I go through a full fresh install.

 

Any tips appreciated.

 

 

 

If you trying to get HEVC/H265 HW work, you must set SMBios to iMacPro1,1 or MacPro7,1 (also latest WEG and Lilu), others won't work without iGPU.

Does you Lilu and WEG are latest version? I add a patch adding QEMU support for Lilu after 1.3.9, so you must be sure Lilu and WEG is latest.

Those extension works well for me when located in others folder, so something must be wrong.

 

I'm using clover 5099 which works fine for me now.

Edited by Leoyzen
Link to comment
On 1/17/2020 at 2:58 PM, Leoyzen said:

If you trying to get HEVC/H265 HW work, you must set SMBios to iMacPro1,1 or MacPro7,1 (also latest WEG and Lilu), others won't work without iGPU.

Does you Lilu and WEG are latest version? I add a patch adding QEMU support for Lilu after 1.3.9, so you must be sure Lilu and WEG is latest.

Those extension works well for me when located in others folder, so something must be wrong.

 

I'm using clover 5099 which works fine for me now.

Thanks for the pointers.

 

As noted, I did try both iMacPro1,1 and MacPro 7,1

LiLu & WEG are both the very latest versions

 

I'll try that specific version of clover and iMacPro one more time and then give up and just do a fresh install. As I say, this VM has been serving me well for some time, but who knows what idiosyncrasies have crept in.

 

Thanks for all your work and effort in this thread, by the way, I've found it more than useful!

 

UPDATE:

Finally got this working after a complete VM re-install and even more pfaffing around. Full details on my blog for future reference!

 

 

Edited by meep
got it working update
Link to comment

Wondering if anyone successfully has a Radeon VII working with Metal / OpenCL acceleration in Catalina 10.15.2, or anyone has any advice?

I have no graphics acceleration, and it is not recognized for Metal / OpenCL by GeekBench 4 or 5.  

 

I can successfully pass through the Radeon VII, it's recognized by the MacOS VM, is listed correctly with 16GB RAM in "About this Mac", and shows up as GFX0 using IORegistryExplorer.

[I can post screenshots later if it helps].

 

When I swap the Radeon VII with a Radeon RX 580 - same VM, with exactly the same MacOS install and Clover install/settings - then I get full metal acceleration, and it is recognized by GeekBench 4/5 as a compute capable GPU.

 

 

For background, I'm using the latest version of SpaceInvaderOne's Macinabox docker to create the VM, and using the version of Clover, Lilu and WEG that is contains.

 

System:

UnRAID 6.8.1   |   ASRock Taichi X570  |  AMD Ryzen 9 3950X  |  64 GB RAM  |   GFX#1: Nvidia RTX 2070  |  GFX#2: XFX Radeon VII

 

 

Edited by dmarshman
Link to comment
18 hours ago, david279 said:

Have you tried updating clover, WEG and Lilu?

I've tried with multiple versions of [Unraid &] QEMU, Clover, WEG and Lilu over the past couple of months, **EDIT** and just verified I was using Lilu 1.4.0 and WEG 1.3.5.   I also use MacPro1,1 as the machine ID.

I just updated to Lilu 1.4.1 and WEG 1.3.6, but end up with the same result [Metal/OpenCL not supported].  **/EDIT**

 

 

Since the RX 580 works with no issues with my current setup, I was hoping someone else had a success story with Unraid and a Radeon VII in order to evaluate if it's worth the continued effort or a waste of time trying to get the Radeon VII working with Metal / OpenCL.

If nothing else comes up, I'll try and put some time aside this weekend to see if I can make any progress...

 

As an aside, both the RX 580 and Radeon VII work perfectly as eGPUs using an external Thunderbolt 3 enclosure [Sonnet] with MacOS Catalina [10.15.0->.2] on a real Mac [2018 Macmini].    [Vanilla MacOS - no kexts, or anything].

Edited by dmarshman
Link to comment

Catalina 10.15.3 is released, backup your vm before update!

What we know about the update:

  1. macOS Build 19D76
  2. Updated Intel and AMD graphics drivers
  3. Updated audio drivers- established users of Catalina with AppleALC or VoodooHDA should not need to update
  4. Install macOS Catalina App has been updated
  5. Optimizes gamma handling of low gray levels on Pro Display XDR for SDR workflows when using macOS

  6. Improves multi-stream video editing performance for HEVC and H.264 encoded 4K video on the 16-inch MacBook Pro (2019)

Will try to update in the morning and report back if all is ok.

 

[UPDATED]: updated to 10.15.3 without any problems.

 

 

 

Edited by ghost82
Link to comment
Hello, do you know where i can get an Opencore config.plist file?
 
I am wanting to switch my clover to opencore, but do not know how to make the config file for this (want to switch clover to opencore)



I have no awnser for you unfortunately, but why do you want to switch out of curiocity ? See a lot mentioned lately but what is the exact benefit you are looking for when moving to opencore.
I am more of a , if it works stable dont change it, kind of guy when it relates to hackintosh. But am very curious by all the rumours lately.
Link to comment

My VFIO r9-380 does not work with mojave or catalina, and when i try and pass a rom file, it reboots the whole system (the entire host) and takes down vm's ect. without rom file it loads but doesn't do anything, has no vram, and has not monitor attached. i can only see/talk to the mac install via rdp or spice.

 

 

i have tried debugging whatevergreen with -raddvi and other functions, but i think clover may be standing in the way of vfio.

 

at this point i wanted to try another boot loader to see if i can get the graphics card to work.

 

without VFIO the machine is pointless.

 

 

I am trying to use this guide to get a graphics card to work in the first place. and then later i will try and do the HEVC stuff!

Link to comment
4 hours ago, ghost82 said:

I switched because I ha kp with imacpro1,1 and I couldn't apply the patch in clover. With opencore the patch is applied, I don't know why, I tried several times.

can you share your config files / efi folder with me????

 

i want to try and debug my vfio.

 

thanks.

Link to comment
On 2/4/2020 at 2:09 PM, ameeno said:

can you share your config files / efi folder with me????

 

i want to try and debug my vfio.

 

thanks.

I would like to see this also if possible please? I have a Ryzen 3950x and am interested to see how opencore presents the CPU to the VM and what performance benefits there might be (if any). I'd also like to use Filevault2.

Link to comment

For those of you running opencore as bootloader, if you are experiencing problems if you are upgrading after the commits made on 8th February, reading an error message in the console on boot, such as "configuration requires vault but no vault provided!", here the solution:

you may have in your config.plist these values, under misc-->security: RequireVault and RequireSignature (most probably with a value of "false").

RequireVault and RequireSignature are no longer supported: in their place there is now "Vault".

So you can delete in the config.plist both strings related to RequireVault and RequireSignature and add the string Vault.

From the manual:

Quote

Valid values:
• Optional — require nothing, no vault is enforced, insecure.
• Basic — require vault.plist file present in OC directory. This provides basic filesystem integrity verification
and may protect from unintentional filesystem corruption.
• Secure — require vault.sig signature file for vault.plist in OC directory. This includes Basic integrity
checking but also attempts to build a trusted bootchain.

So the config.plist will have this structure:

		<key>Security</key>
		<dict>
          ........
          ........
			<key>Vault</key>
			<string>Basic</string>
          ........
          ........
		</dict>

I chose "Basic" for Vault: this means that you need an additional file in the /EFI/OC folder, vault.plist.

From the manual:

Quote

vault.plist file should contain SHA-256 hashes for all files used by OpenCore. Presence of this file is highly
recommended to ensure that unintentional file modifications (including filesystem corruption) do not happen
unnoticed. To create this file automatically use create_vault.sh script. Regardless of the underlying filesystem,
path name and case must match between config.plist and vault.plist.

You can download create_vault.sh from:

https://github.com/acidanthera/OcSupportPkg/tree/master/Utilities/CreateVault

 

So, once mounted the EFI folder, run the script with this commnad:

./create_vault.sh /Volumes/EFI/EFI/OC

And check that the file vault.plist is created inside /EFI/OC folder.

Note that if you modify the files in the OC folder you must create again the vault.plist file.

 

If you want the Secure profile instead of Basic, check this:

Quote

vault.sig file should contain a raw 256 byte RSA-2048 signature from SHA-256 hash of vault.plist. The
signature is verified against the public key embedded into OpenCore.efi. To embed the public key you should
do either of the following:
• Provide public key during the OpenCore.efi compilation in OpenCoreVault.c file.
• Binary patch OpenCore.efi replacing zeroes with the public key between =BEGIN OC VAULT= and ==END
OC VAULT== ASCII markers.
RSA public key 520 byte format description can be found in Chromium OS documentation. To convert public
key from X.509 certificate or from PEM file use RsaTool.

Check the manual on github for more information.

Link to comment
1 minute ago, david279 said:

I need to rebase my entire opencore plist as its still kinda based on 0.5.1 but still boots. Lots of changes added but the way clover progress has slowed its probably the best way to go. 

you are right, the changes almost kill me....I still can't get my 10gib nic work in baremetal server but works in VM.....

Link to comment
On 2/4/2020 at 3:09 PM, ameeno said:

can you share your config files / efi folder with me????

 

i want to try and debug my vfio.

Sorry I missed your message.

Attached my EFI folder (opencore and kexts updated as of today).

Please note that:

1- config.plist is modified to hide sensitive data (serial number, etc.)--> you will see REDACTED

2- copy paste the EFI folder will not work, as it lacks sensitive information, and vault.plist has not the right sha256 hashes

3- you need to create your vault.plist, please read above posts

EFI.zip

Link to comment

Hello everybody, I am relatively new here and I am trying out UnRaid.

Although I am sure I am missing out on some very useful functionality of UnRaid, at the moment the sole purpose for me of using it is to setup a MacOs VM passing through as much system resources as possible.

Thanks to the generous work of SpaceInvaderOne as well as reading this forum, I managed to have a working Mojave on my i9 7980xe and Asus x299 TUF MK2. The process was simpler than a bare metal hackintosh. This motherboard, for being a x299 one, is quite entry level and the management of the IOMMU groups is not ideal. I am considering in buying a new one, but since most of my works is CPU-bound, I might sell everything and switch to a new gen Threadripper instead. How much more difficult, compared to intel, would it be to have a working Mojave (or Catalina) VM with 3rd gen Threadripper?

Thanks!

Link to comment

I'm attempting to get IvyBridge working on my Threadripper 3970X and having difficulties. Using "Penryn" works without issue, but as soon as I try IvyBridge, I get a hang while trying to load OpenCore. This happens at the TianoCore logo, before getting to the OpenCore boot selection.

 

...
OC: OcMiscEarlyInit...
OC: Loaded configuration of 12285 bytes

I'm using the latest OpenCore (5.5) with all drivers up to date as well. I'm clearly missing something, but I'm not sure what do do in the mean time other than just deal with Penryn and the lack of CPU features.

 

This is my VM XML. For `cpu mode` I've tried host-passthrough and custom, and neither works. This version posted boots correctly into macOS, passing through all my devices and everything. Just changing "Penryn" to "IvyBridge" results in the error. I've tried command lines similar to others in this thread, in case I'm missing an option, but nothing seems to help.

<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
  <name>macOS</name>
  <uuid>-------------------------------</uuid>
  <memory unit="KiB">67108864</memory>
  <currentMemory unit="KiB">67108864</currentMemory>
  <vcpu placement="static">64</vcpu>
  <os>
    <type arch="x86_64" machine="pc-q35-4.2">hvm</type>
    <loader readonly="yes" type="pflash">/home/path/to/vms/macOS-Simple-KVM/firmware/OVMF_CODE.fd</loader>
    <nvram>/home/path/to/vms/macOS-Simple-KVM/firmware/OSX-PCI_VARS.fd</nvram>
    <bootmenu enable="no"/>
  </os>
  <features>
    <acpi/>
    <pae/>
  </features>
  <cpu mode="custom" match="exact" check="none">
    <model fallback="forbid">qemu64</model>
  </cpu>
  <clock offset="utc"/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/home/path/to/vms/opencore.release.qcow2"/>
      <target dev="sda" bus="sata"/>
      <boot order="1"/>
      <address type="drive" controller="0" bus="0" target="0" unit="0"/>
    </disk>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/home/path/to/vms/macOS-Simple-KVM/MyDisk.qcow2"/>
      <target dev="sdb" bus="sata"/>
      <address type="drive" controller="0" bus="0" target="0" unit="1"/>
    </disk>
    <controller type="usb" index="0" model="piix3-uhci">
      <address type="pci" domain="0x0000" bus="0x02" slot="0x01" function="0x0"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
    </controller>
    <controller type="pci" index="0" model="pcie-root"/>
    <controller type="pci" index="1" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="1" port="0x10"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="2" model="pcie-to-pci-bridge">
      <model name="pcie-pci-bridge"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </controller>
    <controller type="pci" index="3" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="3" port="0x11"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="pci" index="4" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="4" port="0x8"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="5" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="5" port="0x9"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x1"/>
    </controller>
    <controller type="pci" index="6" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="6" port="0xa"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x2"/>
    </controller>
    <controller type="pci" index="7" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="7" port="0xb"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x3"/>
    </controller>
    <controller type="pci" index="8" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="8" port="0xc"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x01" function="0x4"/>
    </controller>
    <interface type="direct">
      <mac address="52:54:00:18:b0:28"/>
      <source dev="enp69s0f1" mode="bridge"/>
      <model type="e1000-82545em"/>
      <address type="pci" domain="0x0000" bus="0x02" slot="0x02" function="0x0"/>
    </interface>
    <input type="keyboard" bus="usb">
      <address type="usb" bus="0" port="1"/>
    </input>
    <input type="mouse" bus="usb">
      <address type="usb" bus="0" port="2"/>
    </input>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <sound model="ich9">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
    </sound>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x4d" slot="0x00" function="0x0"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0" multifunction="on"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x4d" slot="0x00" function="0x1"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x1"/>
    </hostdev>
    <memballoon model="none"/>
  </devices>
  <qemu:commandline>
    <qemu:arg value="-cpu"/>
    <qemu:arg value="Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+avx2,+aes,+xsave,+xsaveopt,check"/>
    <qemu:arg value="-device"/>
    <qemu:arg value="************************"/>
    <qemu:arg value="-smbios"/>
    <qemu:arg value="type=2"/>
  </qemu:commandline>
</domain>

 

Edited by nofdak
Remove red herring error message
Link to comment

Good suggestion, I hadn't thought of that. Unfortunately it didn't make a difference. Is there any way to get a log so I can see why OpenCore is failing?

 

I tried updating my Clover from 5070 to 5104 and that won't boot at all, regardless of Penryn or IvyBridge. It just hangs at the TianoCore logo like OpenCore does with IvyBridge.

Edited by nofdak
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.