Native German here, so Denglish incoming...
First, thanks Guys for your help !
But damn what a bad road trip, tr yd so much and every time I got stuck at boot...very frustrating but hey !
Now I have an installation screen from Catalina and my System is booting with Open Core 0.6.2 (Debug) yay !
My Configuration:
- Unraid Version: 6.8.3
- CPU: AMD Ryzen 9 3950X
- Motherboard: ASUS ROG Crosshair VIII Hero
- GPU: Currently VNC only, adding RX 550 this weekend.
- RAM: 2*16GB 3200MHz Crucial
- SSD: 1TB Samsung 970 NVME as Cache
- HDD: Several 4 TB HDD's
So, what got me stuck here ? I tested it out and changed everything step by step and here is my conclusion ->
- Using edk2-OVMF_202008_stable posted before, sadly got my system stuck at boot -> reverted to OVMF that comes with Macinabox fixed this
- Used the libvirt from david279 as base but my system got stuck at boot with the custom qemu stuff at the end -> used the stock qemu settings that came with Macinabox fixed this
- I used the Video above that explained everything really nice for my Ryzen, people with a similar System can follow it to the end but as ghost82 already mentioned -> don't apply the patches ! -> or else stuck at boot
I started nearly from scratch and compared the libvirt from david279 and the libvirt from Leoyzen.
Leoyzen also explains really nicely whats important to change in the libvirt (written in Grey).
Combined the following resources to get a (work in progress) booting OSX with Ryzen 3950X on Unraid (after so many failed attempts):
The First Post of this Thread
The Answer @ghost82gave me above / thanks dude !
The Youtube Video below and the included Files/Guides/Explanations
The libvirt from david and from Leoyzen
Sources and my 2 cents:
https://github.com/Leoyzen/KVM-Opencore/blob/master/libvirt.xml
- The libvirt from Leoyzen, also some nice explanations on the Main Page
https://forums.unraid.net/topic/84430-hackintosh-tips-to-make-a-bare-metal-macos/?do=findComment&comment=893286
- The libvirt from david279
https://www.technolli.com/downloads
- Nice Tools and Video Collections about Hackintosh etc.
https://dortania.github.io/OpenCore-Install-Guide/AMD/zen.html#starting-point
- The Open Core install Guide I mainly used
https://forums.unraid.net/topic/84430-hackintosh-tips-to-make-a-bare-metal-macos/?do=findComment&comment=849309
- How to create a qcow2 File, sadly this didn't work for me, my created File was somehow not bootable ? / I copied or cloned the qcow2 that Macinabox creates after triggering the Docker and restarting the Array for the first time. Worked for me.
https://youtu.be/cQhzQXsd_Ig
- The Video Guide I mainly used
https://dortania.github.io/OpenCore-Install-Guide/AMD/zen.html#amd-bios-settings
- The recommended Bios Settings for AMD Ryzen, getting everything (GPU Passtrough) to run without CSM and with UEFI only was tricky but the following Post helped
https://www.reddit.com/r/unRAID/comments/dhoek4/nvidia_gtx1060_primary_gpu_passthrough/
- Creating a User Script Macro that automatically starts after the Array, fixed everything about UEFI and CSM for me related to UEFI GPU Passtrough. The Macro contains the 3 Magic "Bind" lines mentioned at the end of the post. *Even Unraid boots in UEFI Mode, PCIe ACS override is set to "Both" in VM Manager advanced view)
https://github.com/dortania/OpenCore-Install-Guide/tree/master/clover-conversion
- Simple explanation how to clean up clover if u want to switch to Open Core
https://forums.unraid.net/topic/84601-support-spaceinvaderone-macinabox/?do=findComment&comment=873708
- Side Notes from ghost82 about switching from Clover to Open Core
https://dortania.github.io/builds/?product=OpenCorePkg&viewall=true
- Latest Open Core download location, as ghost82 already mentioned -> use the latest Debug version
https://forums.unraid.net/topic/84601-support-spaceinvaderone-macinabox/page/28/?tab=comments#comment-848847
- Best Advice Ever ! How to mount the qcow2 file inside Macinabox. For easy EFI replacing and experimenting. I turned this into a User Script for Mounting and Unmounting the qcow2. Saved so much time ! ...damn good stuff...and Cyberduck was my best friend at this point...
https://forums.unraid.net/topic/84430-hackintosh-tips-to-make-a-bare-metal-macos/?do=findComment&comment=895068
- ghost82 EFI and Open Core Files
Other useful stuff that try's to break out from my brain -> emulator pin / cpu pinning etc.
https://forums.unraid.net/topic/52730-isolate-cpu/
https://forums.unraid.net/topic/74376-pining-cpus-to-docker-and-isolation/
https://forums.unraid.net/topic/47345-performance-improvements-in-vms-by-adjusting-cpu-pinning-and-assignment/
https://qemu.readthedocs.io/en/latest/system/deprecated.html
VM Optimization:
https://mathiashueber.com/performance-tweaks-gaming-on-virtual-machines/
https://heiko-sieger.info/creating-a-windows-10-vm-on-the-amd-ryzen-9-3900x-using-qemu-4-0-and-vga-passthrough/
https://heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/
https://bugs.launchpad.net/qemu/+bug/1856335
https://bugs.launchpad.net/qemu/+bug/1856335/comments/5
https://bugs.launchpad.net/qemu/+bug/1856335/comments/14
https://bugs.launchpad.net/qemu/+bug/1856335/comments/21
https://bugs.launchpad.net/qemu/+bug/1856335/comments/33
Hugepages on Unraid
https://forums.unraid.net/topic/88870-solved-unraid-enabling-hugepages-512gb-ram/?tab=comments#comment-825039
https://github.com/bryansteiner/gpu-passthrough-tutorial#part4
Optimize the "About This Mac" Area
https://www.idownloadblog.com/2017/01/13/how-to-modify-about-this-mac-hackintosh/
Windows Area
https://forums.unraid.net/topic/95802-guide-windows-10-vm-q35-50-with-nvidia-gpu-passtrough/
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
<name>MacinaboxCatalina</name>
<uuid>ChangeME</uuid>
<description>MacOS Catalina</description>
<metadata>
<vmtemplate xmlns="unraid" name="MacOS" icon="/mnt/user/domains/MacinaboxCatalina/icon/catalina.png" os="Catalina"/>
</metadata>
<memory unit='KiB'>12582912</memory>
<currentMemory unit='KiB'>12582912</currentMemory>
<memoryBacking>
<nosharepages/>
</memoryBacking>
<vcpu placement='static'>8</vcpu>
<iothreads>2</iothreads>
<cputune>
<vcpupin vcpu='0' cpuset='10'/>
<vcpupin vcpu='1' cpuset='26'/>
<vcpupin vcpu='2' cpuset='11'/>
<vcpupin vcpu='3' cpuset='27'/>
<vcpupin vcpu='4' cpuset='12'/>
<vcpupin vcpu='5' cpuset='28'/>
<vcpupin vcpu='6' cpuset='13'/>
<vcpupin vcpu='7' cpuset='29'/>
<emulatorpin cpuset='0,16'/>
<iothreadpin iothread='1' cpuset='0,16'/>
<iothreadpin iothread='2' cpuset='1,17'/>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-q35-4.2'>hvm</type>
<loader readonly='yes' type='pflash'>/mnt/user/unraid/opencore/OVMF/edk2-OVMF_202008_stable/OVMF_CODE.fd</loader>
<nvram>/mnt/user/unraid/opencore/OVMF/edk2-OVMF_202008_stable/OVMF_VARS.fd</nvram>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='on'/>
<spinlocks state='on' retries='8191'/>
<vpindex state='on'/>
<frequencies state='on'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
<ioapic driver='kvm'/>
</features>
<cpu mode='host-passthrough' check='none'>
<topology sockets='1' cores='4' threads='2'/>
<cache mode='passthrough'/>
<feature policy='require' name='invtsc'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='topoext'/>
</cpu>
<clock offset='utc'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/local/sbin/qemu</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/mnt/user/unraid/opencore/opencore.qcow2'/>
<backingStore/>
<target dev='hdc' bus='sata'/>
<boot order='1'/>
<address type='drive' controller='0' bus='0' target='0' unit='2'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/mnt/user/domains/MacinaboxCatalina/Catalina-install.img'/>
<backingStore/>
<target dev='hdd' bus='sata'/>
<address type='drive' controller='0' bus='0' target='0' unit='3'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='raw' cache='writeback'/>
<source file='/mnt/user/domains/MacinaboxCatalina/macos_disk.img'/>
<backingStore/>
<target dev='hde' bus='sata'/>
<address type='drive' controller='0' bus='0' target='0' unit='4'/>
</disk>
<controller type='usb' index='0' model='ich9-ehci1'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci2'>
<master startport='2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci3'>
<master startport='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
</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-root-port'>
<model name='pcie-root-port'/>
<target chassis='2' port='0x11'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</controller>
<controller type='pci' index='3' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='3' port='0x12'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
</controller>
<controller type='pci' index='4' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='4' port='0x13'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
</controller>
<controller type='pci' index='5' model='pcie-root-port'>
<model name='pcie-root-port'/>
<target chassis='5' port='0x8'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
</controller>
<controller type='pci' index='6' 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='7' model='pci-bridge'>
<model name='pci-bridge'/>
<target chassisNr='7'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x01' function='0x0'/>
</controller>
<controller type='pci' index='8' model='pci-bridge'>
<model name='pci-bridge'/>
<target chassisNr='8'/>
<address type='pci' domain='0x0000' bus='0x06' slot='0x02' function='0x0'/>
</controller>
<controller type='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:72:e3:f0'/>
<source bridge='br0'/>
<model type='e1000-82545em'/>
<address type='pci' domain='0x0000' bus='0x08' slot='0x08' function='0x0'/>
</interface>
<serial type='pty'>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
</serial>
<console type='pty'>
<target type='serial' port='0'/>
</console>
<channel type='unix'>
<target type='virtio' name='org.qemu.guest_agent.0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='tablet' bus='usb'>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
</source>
<rom file='/mnt/user/unraid/virt und vBios/MSI Radeon RX 560 Aero ITX 4G OC/Polaris_21.rom'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x09' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
</hostdev>
<memballoon model='none'/>
</devices>
<seclabel type='dynamic' model='dac' relabel='yes'/>
<qemu:commandline>
<qemu:arg value='-usb'/>
<qemu:arg value='-device'/>
<qemu:arg value='usb-kbd,bus=usb-bus.0'/>
<qemu:arg value='-device'/>
<qemu:arg value='isa-applesmc,osk=ChangeME'/>
<qemu:arg value='-smp'/>
<qemu:arg value='8,sockets=1,cores=4,threads=2'/>
<qemu:arg value='-smbios'/>
<qemu:arg value='type=2'/>
<qemu:arg value='-cpu'/>
<qemu:arg value='host,kvm=off,vendor=GenuineIntel,+hypervisor,migratable=no,-erms,hv-time,hv-relaxed,hv-spinlocks=0x1fff,hv-vpindex,hv-frequencies,hv-crash,l3-cache=off,+invtsc,+topoext,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,+popcnt,+arat,+pclmuldq,+pdpe1gb,+rdtscp,+vme,+umip,check'/>
<qemu:arg value='-set'/>
<qemu:arg value='device.sata0-0-2.rotation_rate=1'/>
<qemu:arg value='-set'/>
<qemu:arg value='device.sata0-0-3.rotation_rate=1'/>
</qemu:commandline>
</domain>
Fixed:
18.09.2020
libvrt ->
added multifunction='on' (GPU-Passtrough)
changed function='0x1' for audio device (GPU-Passtrough)
e1000-82545em as Network adapter
In Config.plist
changed prev-lang:kbd to de:3 (German Keyboard layout)
Set Target to 3
Used GenSMBIOS for Serial related stuff
Unraid:
added video=efifb:off pci=noaer to Unraid -> Main -> Flash -> Unraid OS Image
*https://forums.unraid.net/topic/88208-macos-gpu-passthrough-issues-on-new-amd-x570-build/?do=findComment&comment=819788
Did some VM Tweaks -> iothread, hyperv spinlocks state='on' retries='8191'
------------------------------------------------------------------------------------------------------------------------------------------------------------------
To-Do: (help really appreciated)
- No Sound on my Mac
- Getting GPU-Passtrough to work
- Sending back my RX 550 cause no support in later OSX. Buying an 560 or higher
*https://dortania.github.io/GPU-Buyers-Guide/modern-gpus/amd-gpu.html#vega-10-series
------------------------------------------------------------------------------------------------------------------------------------------------------------------
Attached:
18.09.2020
* EFI Folder (Open Core 0.6.2 Debug on Ryzen)
bootable
SN related stuff removed
work in progress
libvirt above (Open Core 0.6.2 Debug on Ryzen)
bootable
tweaked
VNC Version with de layout
please change nic back to vmxnet3 for installation purpose
osk removed
uuid changed
work in progress
24.09.2020
Added a modification of libvirt (inspired by ghost82) -> tweaked libvirt with highest Geekbench Score 1413 SC and 6018 MC
removed +pcid (Causes Error's in the Log)
removed hv-vendor-id=AuthenticAMD (qemu:arg from the botton "host" row removed) -> causes extreme speedy Animations
removed <vendor_id state="on" value="AuthenticAMD"/> from <hyperv> .... </hyperv> -> causes extreme speedy Animations
Thanks for reading.
EFI.zip