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


Leoyzen

Recommended Posts

Thank you for you answer but it seem over my capacities ☺️. I managed to find the path (PciRoot(0x1)/Pci(0x2,0x3)/Pci(0x0,0x0)). I added the device to "DeviceProperties" but I did not find out how to set the "built-in" property to true... (and I searched).

But, I does not seem that having the nvme recognize as external drive will impact performance, right ? So I might just leave it like that.

Edited by bjornatic
typos...
Link to comment
1 hour ago, bjornatic said:

Thank you for you answer but it seem over my capacities ☺️. I managed to find the path (PciRoot(0x1)/Pci(0x2,0x3)/Pci(0x0,0x0)). I added the device to "DeviceProperties" but I did not find out how to set the "built-in" property to true... (and I searched).

But, I does not seem that having the nvme recognize as external drive will impact performance, right ? So I might just leave it like that.

Try this:
Mount the EFI with terminal or clover configurator or opencore configurator, navigate to EFI/OC, open with a text editor config.plist and add this in DeviceProperties:

	<key>DeviceProperties</key>
	<dict>
		<key>Add</key>
		<dict>
			<key>PciRoot(0x1)/Pci(0x2,0x3)/Pci(0x0,0x0)</key>
			<dict>
				<key>built-in</key>
				<data>01000000</data>
			</dict>
		</dict>
...
...
...
...

 

Edited by ghost82
  • Like 1
  • Thanks 1
Link to comment

Question guys, probably a silly one but...bare with me!! :)

 

I have a fully working Hackintosh, Opencore bare metal install. 

 

I would still like to use UNRAID though.....I would assume I should just be able to passthrough the NVME disk as I would with a windows install, yes?

 

I tried using Macinabox, latest version, installed a working BigSur, tested it, all fine.  Until I tried to pass through either an RX580 or GT710. Black screen as soon as I tried.  It is something funky with my motherboard (ASUS X299 TUF MK II) I am sure, as ended up having to downgrade the BIOS to much earlier versions before I could get a bare metal Hackintosh going.  I have all of the required kexts etc, all working perfect...on Bare Metal.

 

I then tried to edit the new Big Sur VM, removed the disks and passed through the NVME which has the bare metal Big Sur install, assuming it would just boot as it did previously when I did this for Windows. Wrong, of course haha!

 

What would I need to do?

 

Hardware:

 

ASUS X299 TUF MKII Motherboard

Intel i910940x CPU

128GB RAM

1 x ASUS AMD DUAL-RX580-O8G Radeon RX 580 OC Edition 8 GB GDDR5

1 x MSI 1GB GT710

Fenvi FV-HB1200 BCM4360 BT4.0

1 x 2TB NVME (macOS Big Sur bare metal install)

1 x 2TB NVME (Spare for now)

1 x 480GB SSD (Single UNRAID Disk for now)

 

 

Link to comment
1 hour ago, ne10g said:

Question guys, probably a silly one but...bare with me!! :)

 

I have a fully working Hackintosh, Opencore bare metal install. 

 

I would still like to use UNRAID though.....I would assume I should just be able to passthrough the NVME disk as I would with a windows install, yes?

 

I tried using Macinabox, latest version, installed a working BigSur, tested it, all fine.  Until I tried to pass through either an RX580 or GT710. Black screen as soon as I tried.  It is something funky with my motherboard (ASUS X299 TUF MK II) I am sure, as ended up having to downgrade the BIOS to much earlier versions before I could get a bare metal Hackintosh going.  I have all of the required kexts etc, all working perfect...on Bare Metal.

 

I then tried to edit the new Big Sur VM, removed the disks and passed through the NVME which has the bare metal Big Sur install, assuming it would just boot as it did previously when I did this for Windows. Wrong, of course haha!

 

What would I need to do?

 

Hardware:

 

ASUS X299 TUF MKII Motherboard

Intel i910940x CPU

128GB RAM

1 x ASUS AMD DUAL-RX580-O8G Radeon RX 580 OC Edition 8 GB GDDR5

1 x MSI 1GB GT710

Fenvi FV-HB1200 BCM4360 BT4.0

1 x 2TB NVME (macOS Big Sur bare metal install)

1 x 2TB NVME (Spare for now)

1 x 480GB SSD (Single UNRAID Disk for now)

 

 

 

Passthrough sometimes needs newer bios to get the newest functions for virtualisation.

NVME for example need bifurcation in the bios to split up the pcie lanes correctly, that unraid can passthrough these devices.
So have a look at your bios if it supports bifurication or if newer bios versions will give you this feature.
Without it might be hard to channel your pcie devices all together.

PS: Remember that you have to edit your XML to the root of your unassigned NVME.

For example: /dev/disk/by-id/ata-myNVMW-XXXXX

The red part ist the identification of your unassigned NVME you find this under unassigned devices in Unraid main window.

 

Edited by derpuma
Link to comment
3 hours ago, derpuma said:

 

Passthrough sometimes needs newer bios to get the newest functions for virtualisation.

NVME for example need bifurcation in the bios to split up the pcie lanes correctly, that unraid can passthrough these devices.
So have a look at your bios if it supports bifurication or if newer bios versions will give you this feature.
Without it might be hard to channel your pcie devices all together.

PS: Remember that you have to edit your XML to the root of your unassigned NVME.

For example: /dev/disk/by-id/ata-myNVMW-XXXXX

The red part ist the identification of your unassigned NVME you find this under unassigned devices in Unraid main window.

 

 

Thanks, I'm a touch confused still!

 

I guess I need to remove the sub for my NVME disk, as it doesn't show in the disk by ID folder, probably as UNRAID cannot see it due to me stubbing it.  I done this for windows installs previously, so UNRAID did not see the NVME. Do I need to do the opposite for MacOS?

 

To confirm, if possible, I would like to passthrough the whole NVME, including the EFI partition (is this even possible?) as that EFI partition has all of my customisations to make macOS Big Sur work on my particular hardware.

 

Or....as I am going to be virtualising it, do I forget this EFI and I have to start from scratch?

 

 

**edit** had some coffee and now my brain works. Simple really! Just used Macinabox, created a dummy Big Sur VM and used only the Opencore image to boot from, deleted the other disks as I don't need to install. Then just passed through the NVME and all is good :)

 

With VNC anyway....next step, see if the GPU will pass through!

Edited by ne10g
Link to comment
1 hour ago, AussieKenDoll said:

When I boot windows 10 from opencore bootloader, system manufacturer,base board version,bios version etc. is showing as Acidenthera and even i have to sign in again to microsoft account and also iTunes on windows is signed out. Is there anyway to fix itimage.thumb.png.d484fdc3daab5f0523cd6ab7489b5dbc.png

How are you booting windows with opencore?Are you speaking for unraid?describe your booting "layout".

Acidanthera as system manufacturer (or anything different from apple) is strongly recommended.

Link to comment

All working! GPU passed through and all nice and smooth.

 

One issue, probably related to the reset bug for AMD GPU's, I just tried to restart MacOS, as you would, and it hung UNRAID and maxed out the allocated CPU's.

 

I seem to remember someone had a way to resolve this, anyone recall?

Link to comment
1 hour ago, ne10g said:

All working! GPU passed through and all nice and smooth.

 

One issue, probably related to the reset bug for AMD GPU's, I just tried to restart MacOS, as you would, and it hung UNRAID and maxed out the allocated CPU's.

 

I seem to remember someone had a way to resolve this, anyone recall?

Do you use a 5700xt?

Which Bootloader do you use?

Are you using a custom unraid build?

 

I have a working macOS vm with a 5700xt passed through, but atm I am using the clover bootloader. I will setup a macOS vm with opencore soon for testing.

Link to comment
Just now, giganode said:

Do you use a 5700xt?

Which Bootloader do you use?

Are you using a custom unraid build?

 

I have a working macOS vm with a 5700xt passed through, but atm I am using the clover bootloader. I will setup a macOS vm with opencore soon for testing.

I returned the 5700XT, now using ASUS AMD DUAL-RX580-O8G Radeon RX 580 OC Edition 8 GB GDDR5

 

Opencore bootloader (from macinabox) and when using bare metal, also using OpenCore.

 

Not a custom UNRAID, just the latest beta.

 

I spoke too soon as well, after the AMD reset bug I just cannot get the machine working anymore! This was what kept putting me off using UNRAID as my main daily driver, too many times things have just broken with no real reason as to why.

 

I now cannot get any display when passing through the GPU, switched to VNC and it now doesn't work with that either!! 

Link to comment
7 minutes ago, ne10g said:

I returned the 5700XT, now using ASUS AMD DUAL-RX580-O8G Radeon RX 580 OC Edition 8 GB GDDR5

 

Opencore bootloader (from macinabox) and when using bare metal, also using OpenCore.

 

Not a custom UNRAID, just the latest beta.

 

I spoke too soon as well, after the AMD reset bug I just cannot get the machine working anymore! This was what kept putting me off using UNRAID as my main daily driver, too many times things have just broken with no real reason as to why.

 

I now cannot get any display when passing through the GPU, switched to VNC and it now doesn't work with that either!! 

As I only have an 5700xt I sadly cannot try to help you...

Link to comment
3 minutes ago, giganode said:

As I only have an 5700xt I sadly cannot try to help you...

 

The good thing is, it is quick to get back to "square one"

 

1. Delete the VM

2. Restart Macinabox

3. Run the scripts to generate the VM

4. Edit the VM template

5. Change RAM, CPU, Passthrough NVME and other PCI devices, delete all discs except Opencore (use this to boot)

6. Save changes and run script to fix the XML.

7. Start VM and it is all good.

 

I will pass through the GPU again and see how it behaves.

Link to comment

I'm here for some help again...

 

I passed through my Nvme and I finally put it on the right soket (the one wich support GEN 4 over chipset).

The command : lspci -vvvn -s 04:00.0 | grep LnkSta

results in : LnkSta:    Speed 16GT/s (ok), Width x4 (ok)

 

But, in System Report, I get a blank for the "link speed" information.

 

After the install of BigSur, as my drive was on the first socket (GEN 3), "link speed" was 8GT/s (as it should have been).

 

Now how do I get my drive at 16GT/s under Big Sur ?

 

 

Link to comment
1 minute ago, giganode said:

Did a quick fresh install with opencore and big sur.

 

I can confirm that a 5700xt runs with opencore aswell.

When you say fresh install, what method did you use?

 

If I create the base with Macinabox and then keep only the Opencore img file to boot, delete other disks and then passthrough the NVME, it will both and work perfect first time with VNC. Then I can change and pass through the 580XT, works fine first time, perfect, very close to bare metal performance.  Then as soon as I either restart, or shut down, it's game over. Can't get back into MacOS with the GPU, or even reverting back to VNC!

 

Reproducible each time, every time. Nothing in the logs that looks odd, really strange!

Link to comment
16 minutes ago, ne10g said:

When you say fresh install, what method did you use?

 

If I create the base with Macinabox and then keep only the Opencore img file to boot, delete other disks and then passthrough the NVME, it will both and work perfect first time with VNC. Then I can change and pass through the 580XT, works fine first time, perfect, very close to bare metal performance.  Then as soon as I either restart, or shut down, it's game over. Can't get back into MacOS with the GPU, or even reverting back to VNC!

 

Reproducible each time, every time. Nothing in the logs that looks odd, really strange!

I went for the macinabox solution as I have no experience with opencore. Have always used clover.

After the installation I just added AAPL,ig-platform-id .... and agdpmod=pikera.

Edited xml for passthrough and booted into macOS.

Link to comment
On 12/13/2020 at 6:34 PM, ne10g said:

Broke again!

 

Passthrough GPU. Works. Shutdown (or restart) VM - can never get display back from GPU.

 

Remove GPU (editing VM template) and switch back to VNC, Guest has not initialised the display error.

 

Nothing obvious in the logs.


Do you use a proper Rom File for your GPU?
If you do not save your bios rom from your own GPU card, you can use a techpowerup bios rom.

https://www.techpowerup.com/vgabios/194592/asus-rx580-8192-170417

But you have to edit this with a hexeditor and make minor changes!

 

Edited by derpuma
Link to comment

Has anyone completed an upgrade to OpenCore 0.64?

 

I'm getting errors loading OpenCore after updating from 0.63. I guess because of the BootProtect changes. I've followed the instructions and set it to None as well as ensuring RequestBootVarRouting is enabled. "sudo nvram -c" fails with a not permitted error so I was relying on clearing NVRAM via the boot menu but never get to it. Have I missed something?

 

Also, has anyone upgraded to 11.1? Any issues?

Link to comment
3 hours ago, david279 said:

I'm on opencore 0.6.4 and Big Sur 11.1. I'm not at home right now I can uploaded when I get home tommorow. But I had no issues when updating either way...

 

Fixed! Simple error. Missed a file (EFI/OC/Bootstrap/Bootstrap.efi) with the opencore upgrade.

 

Doing the 11.1 upgrade now.

 

Thanks again for the offer to help.

Edited by paulmorabi
Link to comment

As I have a lot of sparesbundle backups of older mac OS, OSX system disks, and also some SSDs with Sierra, Mojave, High Sierra, I thought it would be nice to get them bootabele as a VM in UNRAID.
As I know, each individual Apple OS needs its own opencore or clover (kexts, config.plist, etc.) to boot properly. 
So my thought was, to build some universal opencore versions, which suit the boot of older macOS images or disks.

 

So far I have tested it with an older Mojave SSD and the Mojave-opencore.img from the Spaceinvaderone Macinabox install.
First try was, that I was able to boot into opencore, seeing Mojave on my SSD, but booting from it ends in a bootloop going back to opencore selection.

Then I tried to make a vdisk from my SSD:
 

qemu-img convert -p -O raw /dev/sdX /mnt/disks/xxx.img

 

This worked but trying to boot from the image ended in the same bootloop.


So there might be an error in my macOS Files or in the opencore Folder, to make a boot possible.
Unfortunately I am not able to mount the created vdsik via unraid, cause it has apfs file-system.


I thought the SSD or image should be bootable, as there is a Mojave which should boot out of the box with the Mojave specific opencore I used.
Any hints what I could do to solve the issue?
Help would be great! As always... ;-)

 

Link to comment
  • 2 weeks later...

[Qemu 5.2] -- Pay attention to addresses in your config.plist for devices

 

When Qemu 5.2 will be available for unraid (I'm still on 6.8.3, qemu 5.2 should be inside 6.9rc2 (?), or for sure in 6.9 stable) pay attention to addresses of your devices in your config.plist

I just tried Qemu 5.2 on another machine and I noticed that layout-id for built in audio was not correctly applied, resulting in no audio detected once inside mac os, but boot chime working well at boot (bootloader level).

I then noticed that also the built-in=true property of my en0 ethernet was not applied inside mac os.

 

Qemu 5.2 has probably changed the way of managing addresses, it's a bug fix, so it's ok, I noticed a wrong address assignment when I was playing with boot chime in the past with qemu 5.1 and lower versions: with Qemu 5.1 and lower versions mac os address for audio was PciRoot(0x1)/Pci(0x2,0x0) but the bootloader detected audio at PciRoot(0x0)/Pci(0x2,0x0)

 

With Qemu 5.2 now the right address of the PciRoot is (0x0).

 

As an example, this was my old (qemu 5.1 and lower) config.plist for the device injection:

	<key>DeviceProperties</key>
	<dict>
		<key>Add</key>
		<dict>
			<key>PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)</key>
			<dict>
				<key>built-in</key>
				<data>AQ==</data>
			</dict>
			<key>PciRoot(0x1)/Pci(0x2,0x0)</key>
			<dict>
				<key>layout-id</key>
				<data>BwAAAA==</data>
			</dict>
			<key>PciRoot(0x1)/Pci(0x1F,0x0)</key>
			<dict>
				<key>compatible</key>
				<string>pci8086,2916</string>
				<key>device-id</key>
				<data>FikA</data>
				<key>name</key>
				<string>pci8086,2916</string>
			</dict>
		</dict>
      ....
      ....
      ....

First block is for en0 built-in

Second block is for audio layout

Third block is for LPC

 

As you see, for all devices, the PciRoot was PciRoot(0x1)

In the same config.plist for boot chime I had:

		<key>Audio</key>
		<dict>
			<key>AudioCodec</key>
			<integer>0</integer>
			<key>AudioDevice</key>
			<string>PciRoot(0x0)/Pci(0x2,0x0)</string>
          ....
          ....
          ....

with PciRoot(0x0): again this was needed instead of 0x1, because the bootloader didn't see the audio device at PciRoot(0x1)

-------------------------

 

Now, with Qemu 5.2 the same snippet of code is replaced with:

	<key>DeviceProperties</key>
	<dict>
		<key>Add</key>
		<dict>
			<key>PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)</key>
			<dict>
				<key>built-in</key>
				<data>AQ==</data>
			</dict>
			<key>PciRoot(0x0)/Pci(0x2,0x0)</key>
			<dict>
				<key>layout-id</key>
				<data>BwAAAA==</data>
			</dict>
			<key>PciRoot(0x0)/Pci(0x1F,0x0)</key>
			<dict>
				<key>compatible</key>
				<string>pci8086,2916</string>
				<key>device-id</key>
				<data>FikA</data>
				<key>name</key>
				<string>pci8086,2916</string>
			</dict>
		</dict>
      ....
      ....
      ....

With PciRoot(0x0) as the root address.

So, pay attention to addresses, as this may apply to all your addresses you have in the config.plist

Edited by ghost82
  • Thanks 2
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.