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


Leoyzen

824 posts in this topic Last Reply

Recommended Posts

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

Edited by T-Birth
Link to post
  • Replies 823
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

It is time to start a new thread and share my tips, and we can discuss here. For those who don't have much information, see  SpaceInvaderOne's **VIDEO GUIDE** How to Install MacOS Mojave or High

Good news, no more AMD reset bug with RX 6xxx XT series GPUs in macOS 11.4 beta 1 on UnRAID.

Latest release of OVMF_CODE.fd and OVMF_VARS.fd from edk2, v. 202102 published today. Compiled in kali linux with gcc, tested and working. Enjoy edk2-OVMF-202102-Stable-RELEASE-GCC5-Kali.

Posted Images

18 hours ago, paulmorabi said:

 

I used the EFI folder from here. The only changes I made to the config.plist were to language and remove timeout on the boot menu.

 

Did you try with your own vbios? What motherboard are you using? Does GPU work if passing through to Linux or windows VMs?

 

 

 

I have got my vbios and I have a TRX40 AORUS PRO WIFI (rev. 1.0) with a threadripper 3960x, have tried with the same EFI you mention and thats a no go.. have put several days into this and still nothing.

 

yes windows 10 and linux both get the GPU passthrough perfectly full drivers installation a nd gaming tested on both

Link to post
1 hour ago, mSedek said:

I have got my vbios and I have a TRX40 AORUS PRO WIFI (rev. 1.0) with a threadripper 3960x, have tried with the same EFI you mention and thats a no go.. have put several days into this and still nothing.

 

yes windows 10 and linux both get the GPU passthrough perfectly full drivers installation a nd gaming tested on both

 

Hmm I don't know then. I am not sure what version of WhateverGreen and other kexts are in the GitHub repo but as you are using a newer card then mine, you may need more recent versions. But the whole OpenCore area is one I am also still learning.

Link to post
9 hours ago, T-Birth said:

To-Do: (help really appreciated)

- No Sound on my Mac

You need to inject lilu first and applealc (and you are already injecting, so it's ok).

you need to passthrough the audio card and specify a layiout id, instead audio from gpu is managed by lilu+applealc+whatevergreen, no need for layout.

To specify the layout you can use boot arg (alcid=) or you can inject the audio device into the config.plist (DeviceProperties) and specify the layout-id property for that device.

You are using the first option with a layout id=1.

If your audio comes from the gpu check the first page to properly set your xml about gpu+audio.

If you did all the above, it could be that you are using a wrong layout id, check your codec and go here:
https://github.com/acidanthera/AppleALC/tree/master/Resources

 

Select your codec and try all the available layouts.

 

10 hours ago, T-Birth said:

- PC not recognizing German Keyboard Layout even after choosing it in OSX. Example -> z and y switched

Maybe change it correctly in Config.plist/libvirt ? don't know how atm..

You need to change in config.plist the prev-lang:kbd nvram setting.

Available langs/layouts are here:

https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt

 

Languages and keyboard layouts are independent.

You could try de:3 converted to base64 is ZGU6Mw==

 

10 hours ago, T-Birth said:

- Optimizing the config.plist and libvirt -> 

"Change Target to lof to file in the config.plist" -> really replacing 67 or 3 with "lof to file" ?

"Disable verbose stuff, so only Apple Logo is shown"

Check the configuration.pdf of opencore (page 39) to see what that values mean:

Target 67 meaning.

67 is integer converted to hex it's 0x43, which is the hex sum of 0x01 + 0x02 + 0x40 = 0x43, converted to decimal is 67, so back to the documentation:

0x01 = Enable logging, otherwise all log is discarded

0x02 = Enable basic console (onscreen) logging

0x40 = Enable logging to file

 

3 means:

decimal 3 = 0x03 hex, sum of 0x01 + 0x02 = 0x03, converted to decimal is 3:

0x01 = Enable logging, otherwise all log is discarded

0x02 = Enable basic console (onscreen) logging

 

To disable verbose you need to develte -v in boot args in the config.plist

10 hours ago, T-Birth said:

- Testing ICloud feature after changing some related stuff inside config.plist

Check:

- e1000-82545em in the xml for the network card

- SMBIOS data (mlb, rom, serial, etc.)

Can be tricky to make it work if you are already flagged server side by apple

Link to post

Big Sur beta 7 20A5374g tested:

Updated by OTA, which seems to be (untill now) the only method; if you have a broken seal you need to install first again beta 6 (will not delete your apps/docs) to re-seal the os (this will reset all custom modifications to the system, if any) and then update to beta 7, otherwise software updater will tell you that you must have the full installer to perform the update.

vmscgen=1 not needed anymore with latest opencore

 

- issue with textedit: some crashes when opening existing txt files (with beta 1 was several crashes) Still some issues with the search functionality

- preference panel icons of third party applications: not working well, icons disappear if prepane installed in /System/Library (probably it will not be fixed since you can't install in /System with a sealed system)

- system preferences --> network: it takes long time to load the network panel

- during Mac OS boot there are several messages like "IOKit Daemon (kernelmanagerd) stall[0], (60s): 'ISA'" and boot takes like 4-5 minutes (same messages happen during installation with 240s stall time); Solved: if you have AppleLPCInjector kext disable it

- control center: somehow slow when clicking on the control center icon

- Clicking on top clock menu bar opens the widget (not sure but shouldn't it open clock settings?)

- AM/PM clock not working (not shown in menu bar); Clock settings are now moved to languages and zones and dock & menu bar

- Languages: some strings are only in English

- System preference panel not working well: some settings shows as greyed out but can be enabled, some graphical glitches

- Opencore shows in bootpicker "Preboot" instead of the Mac OS volume name (Scanpolicy=0, no Mac OS volume name is shown): can be fixed manually by creating a file named .disk_label.contentDetails with the content of your disk label (for ex: MacOSBigSur) in /System/Volumes/Preboot/UUID/System/Library/CoreServices (replace UUID with the real UUID)

- Cannot mount / for read/write anymore with SIP disabled: sudo mount -uw / (not an issue related to Mac OS since it's supposed to work as it is, the seal must be broken to be able to write into /)

- Cannot connect to SMB (workaround load manually kext with "sudo kextload /System/Library/Extensions/smbfs.kext")

Edited by ghost82
Link to post

Just wanted to give OpenCore in unraid a try, but I don‘t even get past the Tiano Core logo. My VM instantly restarts, only the size of the Tiano Core logo varies between small and large...

 

So I mounted a copy of my clover.qcow2 and replaced the EFI folder with the one from github, I also created my own qcow2 file based on the instructions I‘ve found, but it always keeps rebooting instantly.

 

Guess I‘m missing some basic instruction? Is there something else beside the EFI folder and some customization in the xml template?

 

EDIT: had to change the scan policy 🙄

 

But the installation keeps starting in chinese even though I changed the prev-lang:kbd setting in the config.plist. I was able to change it then (google picture search helped me finding it), but I'm still curious. I also did a nvram reset using OpenCore just to be sure, that the modified setting gets loaded, but it starts in chinese no matter what I do...

Edited by lixe
Link to post
On 9/19/2020 at 3:07 PM, lixe said:

I was able to change it then (google picture search helped me finding it), but I'm still curious. I also did a nvram reset using OpenCore just to be sure, that the modified setting gets loaded, but it starts in chinese no matter what I do...

What value did you set in the config.plist?Paste the relevant code.

Check the prev-lang:kbd variable when you have a different language to verify if it's correctly set, launch terminal and type:

nvram prev-lang:kbd

 

Link to post
On 8/24/2020 at 11:59 AM, ghost82 said:

For all users using opencore who are not able to compile from master: from this link you can download already compiled versions (debug or release) with the latest commits:

https://dortania.github.io/builds/?product=OpenCorePkg&viewall=true

 Hi Ghost82,

 

Would you happen to have and are able to share a full working efi with latest opencore debug (0.6.2) , of course all the secrets removed. I am running a dual 2697v2 supermicro board and the latest stable unraid (in case it matters)

I have been trying now for days without luck to upgrade my working 0.5.6 based working efi's to 0.6.2 but whatever i do i keep getting stuck on tianocore (with vnc , not passing anything just to exclude as much as i could.) There is something i am missing there and want to compare with a fully working one and after move anything specific over.

 

Once i have that i want to start playing with BigSur again , but forst want my current catalina vm's to just work/boot with the latest opencore.

Link to post
2 hours ago, glennv said:

Would you happen to have and are able to share a full working efi with latest opencore debug (0.6.2)

Sure, I'm sharing the EFI folder, qcow2 image and config.plist, so you are able to compare as you want.

 

opencorebasic.qcow2:

https://workupload.com/file/8beayNFHFvF

 

EFI folder:

https://workupload.com/file/4Qh8vsvGfaN

 

config.plist: attached here.

 

This is a basic EFI:

- debug EFI

- no audio specified address

- loads only openruntime and hfspluslegacy (no opencanopy)

- picker: builtin

- no content inside Resources folder (icons, labels, etc)

- no agpm injected

- target 67 --> log to file

- boot args: -v debug=0x100 keepsyms=1

- prev-lang:kbd en:0 (ZW46MA==)

- SIP disabled

- Injections: x86PlatformPlugin, EC, usb power properties, AppleLPC

- Patches: algrey - cpu_topology_sort -disable _x86_validate_topology, algrey - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN

 

Kexts:

lilu (debug): updated to commit 94a467f

virtualsmc (debug): updated to commit eda655b

whatevergreen (debug): updated to commit 65fc496

applealc (debug): updated to commit 88ed1dd

applemcereporterdisabler: you need this for dual socket

 

Change these data in the config.plist

SMBIOS: iMacPro 1,1, SN C02VW8Z6HX87, system uuid EB08885A-CC13-4460-A45B-4609BF68A5AD, ROM 83691d68a5ad (g2kdaKWt), MLB C02752404J9JG368C

 

Let us know if it works, my vm boots without problems

config.plist

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

!!!!!! FANTASTIC !!!!!!

 

And of course , after changing just the SMBIOS and dropping it in, it boots without a problem  .  Grrrr . Steam out of my ears and headdesking now why i could not find it myself hahaha. But as your typical IT nurd its hard to give up and ask for help.

 

Tnx bro, super appreciated. When i get some time next weekend i will try and figure out what i missed. Surely its one stupid seemingly unimportant flag as it always is hahahaha.

 

 

Link to post

@ghost82

 

I try'd your EFI folder with changed SN related stuff and it bootet on Ryzen and x570 without trouble. So somehow it feels a lot snappier and more responsive in combination with my libvirt than my created EFI-Folder (linked above).

 

Now I'm triggered and I'm trying to analyze why. Also if you don't mind, sharing your XML would really make my day.

 

#stayhealthy

EDIT:

- The Speed increase is noticeable during Boot

- Also the Mouse movement is a lot snappier

- Opening Safari and changing Apps is also a little quicker/fluently

Edited by T-Birth
Link to post
17 hours ago, T-Birth said:

Also if you don't mind, sharing your XML would really make my day

Here it is, copied from running vm, passing through gpu (domain='0x0000' bus='0x83' slot='0x00' function='0x0'), audio from gpu (domain='0x0000' bus='0x83' slot='0x00' function='0x1'), audio from motherboard (domain='0x0000' bus='0x00' slot='0x1b' function='0x0'), 2x cpu, mouse/keyboard dongle (vendor id='0x045e'), a webcam (vendor id='0x046d') and a usb pci card (domain='0x0000' bus='0x84' slot='0x00' function='0x0'); 2 network bridges, one accessing internet (br0), set to be en0 builtin in macos (this is an ethernet-wifi bridge tp-link TL-WR802N, so the host has internet access thanks to this), one to communicate with the host only (br1), using another ethernet port (not physically connected).

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Catalina</name>
  <uuid>b1bd7672-d29e-e48e-d07a-2fb0dc937878</uuid>
  <memory unit='KiB'>33554432</memory>
  <currentMemory unit='KiB'>33554432</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>16</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='5'/>
    <vcpupin vcpu='6' cpuset='6'/>
    <vcpupin vcpu='7' cpuset='7'/>
    <vcpupin vcpu='8' cpuset='8'/>
    <vcpupin vcpu='9' cpuset='9'/>
    <vcpupin vcpu='10' cpuset='10'/>
    <vcpupin vcpu='11' cpuset='11'/>
    <vcpupin vcpu='12' cpuset='12'/>
    <vcpupin vcpu='13' cpuset='13'/>
    <vcpupin vcpu='14' cpuset='14'/>
    <vcpupin vcpu='15' cpuset='15'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/Catalina/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/Catalina/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'/>
  <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='none' io='native' discard='unmap'/>
      <source file='/mnt/user/domains/Catalina/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='none' io='native' discard='unmap'/>
      <source file='/mnt/user/domains/Catalina/vdisk3.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <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='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xc'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </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='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0xd'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='pci' index='8' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <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>
    <interface type='bridge'>
      <mac address='RE:DA:CT:ED:--:--'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x01' function='0x0'/>
    </interface>
    <interface type='bridge'>
      <mac address='RE:DA:CT:ED:--:--'/>
      <source bridge='br1'/>
      <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='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x83' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/domains/GTXTitanBlack.dump'/>
      <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='0x83' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x00' slot='0x1b' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x84' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x045e'/>
        <product id='0x0745'/>
        <address bus='1' device='3'/>
      </source>
      <address type='usb' bus='0' port='1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0x0892'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-smp'/>
    <qemu:arg value='16,sockets=2,cores=8,threads=1'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='host,ucode_rev=0x513,+hypervisor,migratable=no,-erms,kvm=on,+invtsc,+topoext,+avx,+aes,+xsave,+xsaveopt,+ssse3,+sse4_2,+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>

 

Edited by ghost82
Link to post

Big sur beta 8 is out but for some reason I'm not able to update..

Not sure if the seedutil command is working properly on beta 7.

I noticed that if I unenroll

sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil unenroll

and enroll again

sudo /System/Library/PrivateFrameworks/Seeding.framework/Versions/A/Resources/seedutil enroll DeveloperSeed

in the system update panel I have for some time on the left that I'm into developer seed program, but after sometime it automatically switches back to normal "software update", such as it exits from the developer seed.

 

Anyone was able to update?

Link to post

I was able to but you are not alone on this. On the AMD hackintosh discord a lot of people are having issues with updating to beta. Heard a couple different reasons why it may not update. One was a broken seal on the main partition and the second theory was something to do with the secure boot support added to opencore. I updated with no issues...that's for beta 7 and beta 8.

Link to post

Something was added with beta 7 that messed up something along the way though because it broke AMD support entirly where new patches were needed to even install beta 7(bare metal). Secure boot is set as disabled for me though as any sane person should have it set right now.

Edited by david279
Link to post
5 minutes ago, david279 said:

One was a broken seal on the main partition and the second theory was something to do with the secure boot support added to opencore

Thanks, that should help, in fact I have a broken seal, tomorrow I will try to reinstall beta 6 to seal the system and update to beta 8.

From beta 6 to 7 I had a broken seal too, but the update showed, the only thing was that there was an error and the only way was to seal again the system.

Edited by ghost82
Link to post
1 minute ago, ghost82 said:

I heard somewhere that new patches for amd were available from some days ago.ye

Yeah they fixed it maybe a day later but beta 7 added a lot of stuff under the hood that maybe added to the issues now. Also no full install can be pulled for beta 7 or beta 8. Last one was available for beta 6. 

Link to post

I found out what was the issue.

Sealing again the system starting from beta 6 (obviously with secure boot disabled) didn't help to get beta 8 (same behaviour).

I noticed something strange in the SIP: I wasn't able to full enable or full disable through csrutil: status was always unknown, even if the entries were all disabled or enabled.

I think the issue is related to latest stable ovmf or the way open core interacts with ovmf, because once replacing OVMF_CODE and OVMF_VARS to 202005 stable I was able again to fully enable/disable SIP and now updates are working as usual (updating now to beta 8).

So advice is not to use latest ovmf 202008. ---> maybe related to this: 

 

Beta 8 (20A5374i) tested, no improvements in my list of issues, clock again greyed out, and several users are reporting that active directory is not working...I really can't understand how they are testing and patching things...

 

Catalina 10.15.7 released, safe to update.

Edited by ghost82
Link to post

Updated the libvirt linked above. I'm still in the process of learning but tinkering around is sometimes the best way to gain knowledge.

Also, the effect of

hv-vendor-id=AuthenticAMD

 

and

 

<vendor_id state="on" value="AuthenticAMD"/>

 

is simply hilarious. Its like the Animation Speed of OSX was amplified by 5 times.

 

Geekbench:

Previous libvirt

1119 Single-Core

4828 Multi-Core

 

ghost82 libvirt (original)

1203 Single-Core

5084 Multi-Core

 

ghost82 libvirt (modified)

1413 Single-Core

6018 Multi-Core

 

Link to post

How do i get my passthru Nic (intel with smalltree driver) recognised as internal ?

I saw in the OP that you need to make sure it is defined in the xml on bus 0, and in the OS as en0 which it both is, but still not recognised as internal. And it gives me some issue with one or 2 apps downloaded from the app store while other app store apps and icould stuff all works fine, these 2 apps keep telling me they are broken (logs complain about certificates) so i feel this is related. Everything else works fine .

Link to post
7 hours ago, glennv said:

How do i get my passthru Nic (intel with smalltree driver) recognised as internal ?

As an alternative you can inject the builtin property in opencore:

First of all check that your ethrnet card is recognized as en0 in macOS; if this is not the case delete the network properties (you can find easily how to do it in google), attach only the ethernet card and reboot, so that macOS will pick up the card as en0.

 

Download the release version of gfxutil.

It's here:
https://github.com/acidanthera/gfxutil/releases/download/1.80b/gfxutil-1.80b-RELEASE.zip

 

Unzip it in the vm, open the terminal, cd to the extracted folder and run:

./gfxutil -f ethernet

This will output the address of your ethernet(s)

Output should be similar to this:

02:01.0 8086:100f /PCI0@0/S08@1/pci-bridge@0/ethernet@1 = PciRoot(0x1)/Pci(0x1,0x0)/Pci(0x0,0x0)/Pci(0x1,0x0)

Mount the EFI partition, open the config file located at /EFI/OC/config.plist and set the following:

Find DeviceProperties and inject the built in property for your network, you should have something like this:

	<key>DeviceProperties</key>
	<dict>
		<key>Add</key>
		<dict/>
		<key>Delete</key>
		<dict/>
	</dict>

Replace with:

	<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>
		</dict>
		<key>Delete</key>
		<dict/>
	</dict>

Change only the PciRoot address to that of the output of the gfxutil.

By doing this you are telling opencore to inject the property "buil-in" with a value of AQ== (it's base64, converted to decimal is 1, boolean=true) into address PciRoot()...., which is the ethernet card.

 

Now if you have IORegistry Explorer (https://mac.softpedia.com/get/System-Utilities/IORegistryExplorer.shtml) and you run it and you search for "en0" you will see on the right the built-in property set to "true".

 

en0.png.3161934bbe98877702563388eb3eac7e.png

Link to post

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.