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


Recommended Posts

12 minutes ago, ghost82 said:

Ok, if it boots it works :)

I never tried, so I wrote an alternative which I'm 100% sure it works.

 

Something is moving for amd cpu and nested virtualization (if you search around you will find some posts in other forums about this), I have intel, so I cannot test directly, all I know is that you can enable nested virtualization in unraid for amd, but I think it will not work yet in qemu.

 

My EFI is heavily customized because of different injected device properties, network, audio, custom smbios data, lpc,.., I started to use opencore before that github page.

However, I'm quite sure the actual efi to boot catalina will work for big sur, opencore team is adjusting things and I'm sure it will be ready for the official stable release.

My efi to boot Catalina is working to boot big sur (I'm speaking about general quirks, not customized ones).

 

I'll do some searching for nested virtualization in AMD. Thanks.

 

Re: EFI, I'll start with the GitHub link and wait for OpenCore to get updated when Big Sur is officially released. I noticed minor glitches in my Proxmox based Big Sur OSX VM after upgrading between the betas so better to stay stable than on the cutting edge!

 

Link to comment
2 minutes ago, paulmorabi said:

better to stay stable than on the cutting edge!

100% agree. I installed big sur in a different vm only for fun and to test and report bugs/issues in opencore, so to be ready for the stable release.

Not to be used, at least in my opinion as an everyday machine.

Edited by ghost82
Link to comment

Hi,

 

I've set up my Unraid and am trying to get OpenCore sorted and my VM booted.

 

Firstly, my libvirt config is her:

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>OSX Catalina</name>
  <uuid>fe4fb58e-51df-092b-3abf-9214097e89fc</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="default.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>3</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='4'/>
  </cputune>
  #<os>
  #  <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
  #  <loader readonly='yes' type='pflash'>/usr/share/qemu/osx/OVMF_CODE.fd</loader>
  #  <nvram>/etc/libvirt/qemu/nvram/OSX_OVMF_VARS.fd</nvram>
  #</os>
  <os>
    <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/fe4fb58e-51df-092b-3abf-9214097e89fc_VARS-pure-efi.fd</nvram>
    </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' dies='1' cores='3' threads='1'/>
    <cache mode='passthrough'/>
    <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='raw' cache='writeback'/>
      <source file='/mnt/user/domains/OSX Catalina/vdisk1.img'/>
      <target dev='hdc' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback' io='threads'/>
      <source file='/mnt/user/domains/OSX Catalina/Catalina-installer.img'/>
      <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='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/OSX Catalina/OpenCoreEFI.qcow2'/>
      <target dev='hde' bus='sata'/>
      <boot order='1'/>
      <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-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='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:6e:40:06'/>
      <source bridge='br0'/>
      <model type='virtio-net'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' 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'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel,+hypervisor,+invtsc,kvm=on,+fma,+avx,+avx2,+aes,+ssse3,+sse4_2,+popcnt,+sse4a,+bmi1,+bmi2'/>
    </qemu:commandline>
</domain>

 

When I generate a OpenCore qcow2 image myself using the instructions provided, the system boots but the VNC connection flickers between a small and big screen endlessly. If I quit and reconnect then it shows only a blank screen. I notice someone had a similiar issue and a debug image was provided. If I use this, I can boot OSX but get the following error:

 

Quote

AAPL: [EB|`B:WFDW] Err(0xE), 0 @ LocHB 71B4903C-14EC-42C4-BDC6-CE1449930E49

AAPL: [EB|#LOG:DT] 2020-05-04T18:01:36

AAPL: [EB|#LOG:EXITBS:START] 2020-05-04T18:01:36

 

From a search around, this can be because of missing drivers or kexts?

 

Any help with this would be really appreciated. I had OSX running well under Proxmox but am completely new to Unraid.

 

Thanks!

Link to comment
10 minutes ago, david279 said:

Try removing this topology line in your xml and try to boot it again.

 

<topology sockets='1' dies='1' cores='3' threads='1'/>

 

Also it may be fixed but hack VMs used to act funny with odd assignments of cores to the VM.

 

 

Removing that line moves me forward a little. I get a Kernel panic now.

 

I tried changing CPU cores to 2 and it gave the same panic.

Link to comment
3 hours ago, david279 said:

Can you get a pic of the panic?

Here

 

EDIT: I've tried changing various aspects of the config such as graphics, adding the smbios and Apple key flags etc. and the error is always the same. If it helps, I'm using the latest beta Unraid.

 

EDIT 2: I tried the latest qcow2 images from kholia/OSX-KVM repository. The standard one OpenCore.qcow2 gives the same kernel panic. The passthrough image hangs at the Apple logo. I keep reading about people loading kexts etc. but from what I've seen within this thread, it should be possible to use these images to get up and running with USB, GPU pass-through etc. I'm really stumped!

Edited by paulmorabi
Link to comment
9 hours ago, david279 said:

If you have any kernel patches in the config.plist disabled them. If they are marked as true change them to false.

OK so using the OpenCore from Leoyzen. I disabled first WhateverGreen and Lilu. This led to a bootloop at the Tiancore logo. I then disabled all of the other kernel modules and it's doing the same thing.

 

Re-enabling them, and at the point where it should boot the UEFI the screen flashes and changes size between big and small and occasionally displays a graphical glitch.

Edited by paulmorabi
Link to comment

Find these in the config.plist and set them to false

 

<dict>
				<key>Base</key>
				<string>_cpu_topology_sort</string>
				<key>Comment</key>
				<string>algrey - cpu_topology_sort -disable _x86_validate_topology</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>6AAA//8=</data>
				<key>Identifier</key>
				<string>kernel</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data>/wAA//8=</data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>17.0.0</string>
				<key>Replace</key>
				<data>Dx9EAAA=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>
			<dict>
				<key>Base</key>
				<string></string>
				<key>Comment</key>
				<string>algrey - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>MduAPQAAAAAGdQA=</data>
				<key>Identifier</key>
				<string>kernel</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data>/////wAAAP///wA=</data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>17.0.0</string>
				<key>Replace</key>
				<data>u7xP6njpXQAAAJA=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>
			<dict>
				<key>Base</key>
				<string></string>
				<key>Comment</key>
				<string>Ranem board-id to board-ix</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>Ym9hcmQtaWQ=</data>
				<key>Identifier</key>
				<string>com.apple.driver.AppleGraphicsDevicePolicy</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data></data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>19.0.0</string>
				<key>Replace</key>
				<data>Ym9hcmQtaXg=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>

 

Link to comment
3 hours ago, david279 said:

Find these in the config.plist and set them to false

 


<dict>
				<key>Base</key>
				<string>_cpu_topology_sort</string>
				<key>Comment</key>
				<string>algrey - cpu_topology_sort -disable _x86_validate_topology</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>6AAA//8=</data>
				<key>Identifier</key>
				<string>kernel</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data>/wAA//8=</data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>17.0.0</string>
				<key>Replace</key>
				<data>Dx9EAAA=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>
			<dict>
				<key>Base</key>
				<string></string>
				<key>Comment</key>
				<string>algrey - cpuid_set_cpufamily - force CPUFAMILY_INTEL_PENRYN</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>MduAPQAAAAAGdQA=</data>
				<key>Identifier</key>
				<string>kernel</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data>/////wAAAP///wA=</data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>17.0.0</string>
				<key>Replace</key>
				<data>u7xP6njpXQAAAJA=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>
			<dict>
				<key>Base</key>
				<string></string>
				<key>Comment</key>
				<string>Ranem board-id to board-ix</string>
				<key>Count</key>
				<integer>1</integer>
				<key>Enabled</key>
				<true/>
				<key>Find</key>
				<data>Ym9hcmQtaWQ=</data>
				<key>Identifier</key>
				<string>com.apple.driver.AppleGraphicsDevicePolicy</string>
				<key>Limit</key>
				<integer>0</integer>
				<key>Mask</key>
				<data></data>
				<key>MaxKernel</key>
				<string>19.99.99</string>
				<key>MinKernel</key>
				<string>19.0.0</string>
				<key>Replace</key>
				<data>Ym9hcmQtaXg=</data>
				<key>ReplaceMask</key>
				<data></data>
				<key>Skip</key>
				<integer>0</integer>
			</dict>

 

Did this and got the Tianbcore boot loop again.

Link to comment
On 9/11/2020 at 4:41 AM, paulmorabi said:

<loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF-pure-efi.fd</loader>

<nvram>/etc/libvirt/qemu/nvram/fe4fb58e-51df-092b-3abf-9214097e89fc_VARS-pure-efi.fd</nvram>

Are these correct? Shouldn't point to OVMF_CODE-pure-efi.fd, or did you rename the file?

Edited by ghost82
Link to comment

I suggest to start from the beginning, I think you changed too many things, change one thing at a time.

If your system hangs again download the DEBUG version of opencore, set the config.plist to save to file and share with us.

Use stock ovmf.

That kernel panic suggest something related to cpu, but could be other.

If you want I can make an opencore.qcow2 image, share your smbios data (if you want also via pm).

Post again your clean xml and share your cpu details.

 

UPDATE: are you using virtualsmc? If not, you need to add a qemu arg for the osk

Edited by ghost82
Link to comment
3 minutes ago, ghost82 said:

I suggest to start from the beginning, I think you changed too many things, change one thing at a time.

If your system hangs again download the DEBUG version of opencore, set the config.plist to save to file and share with us.

Use stock ovmf.

That kernel panic suggest something related to cpu, but could be other.

If you want I can make an opencore.qcow2 image, share your smbios data (if you want also via pm).

Post again your clean xml and share your cpu details.

OK I will do this. Which XML should I begin with? Created from within Unraid or the one from Leoyzen's GitHub?

Link to comment
17 hours ago, ghost82 said:

unraid, then I will check and eventually modify.

Check my last update in red above, maybe you are missing custom args!

 

I've made great progress. I created a new VM and modified only a few areas - added a usb keyboard, adjusted the network card model and commented out the topology line.

 

Current XML is as follows:

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
  <name>OSX Catalina</name>
  <uuid>de64714c-4863-ade9-48f9-6689fd040f1c</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="osx.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='4'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/de64714c-4863-ade9-48f9-6689fd040f1c_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='custom' match='exact' check='none'>
    <model fallback='forbid'>qemu64</model>
    <!--<topology sockets='1' dies='1' cores='4' threads='1'/>-->
  </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='raw' cache='writeback'/>
      <source file='/mnt/user/domains/OSX Catalina/vdisk1.img'/>
      <target dev='hdc' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='file' device='disk'>
          <driver name='qemu' type='raw' cache='writeback' io='threads'/>
          <source file='/mnt/user/domains/OSX Catalina/BaseSystem.img'/>
          <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='qcow2' cache='writeback'/>
          <source file='/mnt/user/domains/OSX Catalina/OpenCoreEFI.qcow2'/>
          <target dev='hde' bus='sata'/>
          <boot order='1'/>
          <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='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </controller>
    <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='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:b7:9c:1e'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' 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'/>
    <input type='keyboard' bus='usb'>
         <alias name='input2'/>
         <address type='usb' bus='0' port='3'/>
    </input>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
      <qemu:arg value='-device'/>
      <qemu:arg value='************************'/>
      <qemu:arg value='-smbios'/>
      <qemu:arg value='type=2'/>
      <qemu:arg value='-cpu'/>
      <qemu:arg value='Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check'/>
  </qemu:commandline>
</domain>

 

I created my own EFI from Leoyzen's GitHub and it did the same Tiano Core bootloop. I used the OpenCoreEFI attached to an earlier thread here with the option to clear NVRAM and also boot OSX. The installer and whole install procedure was in Chinese for some reason and I had to wait until after install to change to English.

 

I'm curious as to the differences between the EFI from GitHub and the debug one. Are there any specific additions that could have fixed the boot loop? (if its CPU based, I'm running a Ryzen 3600XT). I'll next attempt the pass through of my RX570.

 

Thanks for all of your help so far.

 

 

Link to comment
3 hours ago, paulmorabi said:

I'm curious as to the differences between the EFI from GitHub and the debug one

I think both are debug versions: debug version means that it logs more informationthan the release one; the release version logs only warnings and error, the debug one adds useful information to track down issues.

What probably changes is the config.plist of opencore in the efi partition, in which there are all the settings for the bootloader: if you are curious you can compare that 2 files and see what are the differences.

About the Chinese language, that setting is also in the config.plist and it's stored in nvram.

Examples:

In Leoyzen's github config.plist file you have:

<key>prev-lang:kbd</key>
<data>emgtSGFuczoyNTI=</data>

the data field is base64, converted to ascii you have:

zh-Hans:252

 

which defines Chinese (zh-Hans) with ABC keyboard (252).

Useful info to track where the user comes from ahah :P

 

A list is available here:
https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt

 

From opencore manual (docs/configuration.pdf):

Quote

7C436110-AB2A-4BBB-A880-FE41995C9F82:prev-lang:kbd ASCII string defining default keyboard layout. Format is lang-COUNTRY:keyboard, e.g. ru-RU:252 for Russian locale and ABC keyboard. Also accepts short forms: ru:252 or ru:0 (U.S. keyboard, compatible with 10.9).

 

By the way, the official config.plist from github has a default setting of ru-RU:252 (which is russian), an incomprehensible language unless you are russian :D

This was intentional to see who reads the documentation :P

 

Edited by ghost82
Link to comment
2 minutes ago, ghost82 said:

I think both are debug versions: debug version means that it logs more informationthan the release one; the release version logs only warnings and error, the debug one adds useful information to track down issues.

What probably changes is the config.plist of opencore in the efi partition, in which there are all the settings for the bootloader: if you are curious you can compare that 2 files and see what are the differences.

About the Chinese language, that setting is also in the config.plist and it's stored in nvram.

Examples:

In Leoyzen's github config.plist file you have:


<key>prev-lang:kbd</key>
<data>emgtSGFuczoyNTI=</data>

the data field is base64, converted to ascii you have:

zh-Hans:252

 

which defines Chinese (zh-Hans) with ABC keyboard (252).

Useful info to track where the user comes from ahah :P

 

A list is available here:
https://github.com/acidanthera/OpenCorePkg/blob/master/Utilities/AppleKeyboardLayouts/AppleKeyboardLayouts.txt

 

From opencore manual (docs/configuration.pdf):

 

OK, that makes sense!

 

So, if I want to keep the current EFI, I can change the above and then

 

1. How do I disable the additional logging (when ready)?

2. How can I remove the option to clear NVRAM or Boot OSX (also once ready)?

Link to comment
2 minutes ago, paulmorabi said:

OK, that makes sense!

 

So, if I want to keep the current EFI, I can change the above and then

 

1. How do I disable the additional logging (when ready)?

2. How can I remove the option to clear NVRAM or Boot OSX (also once ready)?

Now that you have a basic opencore.qcow2 that works I suggest to shutdown the vm and from unraid copy and backup this opencore.qcow2 somewhere.

Save also a copy of your vm xml.

 

1. Logging: in config.plist it's "Target" in the Debug section

<key>Target</key>
<integer>0</integer>

Target 0 doesn't log

 

2. You can't remove, but you can hide: in config.plist

<key>ShowPicker</key>
<false/>

 

Take into account that all of this is covered in the configuration.pdf of opencore:
https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf

 

As suggested by Acidanthera team the user should read and understand the docs before attempting to use opencore.

Link to comment
1 hour ago, ghost82 said:

Now that you have a basic opencore.qcow2 that works I suggest to shutdown the vm and from unraid copy and backup this opencore.qcow2 somewhere.

Save also a copy of your vm xml.

 

1. Logging: in config.plist it's "Target" in the Debug section


<key>Target</key>
<integer>0</integer>

Target 0 doesn't log

 

2. You can't remove, but you can hide: in config.plist


<key>ShowPicker</key>
<false/>

 

Take into account that all of this is covered in the configuration.pdf of opencore:
https://github.com/acidanthera/OpenCorePkg/blob/master/Docs/Configuration.pdf

 

As suggested by Acidanthera team the user should read and understand the docs before attempting to use opencore.

Thank you for this and all of your help. Really appreciated.

  • Like 1
Link to comment

I have managed to get GPU passthrough of my RX570 working in a PopOS VM. I seem to have the reset bug and am working through that, but otherwise OK. 

 

When I assign the GPU to OSX, I get a blank screen, no BIOS boot logo or anything. I tried to then assign the GPU and also VNC. The closest I got was a "gio screen lock state 3" error and the desktop background displaying on the external monitor. Usually, it boots into recovery and goes through the install/repair again only to have the same error.

 

Has anyone successfully passed an RX570? Are there any tips with kexts etc. I should load with OpenCore? using ther debug one from previously, I disabled logging and can see Lilu and WhateverGreen are already there. Are there any settings I need to change for this?

Link to comment
6 minutes ago, david279 said:

I have a rx 570 working with my VM right now. I had to stub the card from the unRAID system so it would not try to use it to get it to work though. Without that all i got was blank screens like you have. I have a sapphire rx 570. 

By stub, you mean have it assigned to VFIO and add "pci=noaer video=vesafb:off,efifb:off" to the kernel boot parameters? If so, I've done this.

 

I'm using an MSI Armor OC (4GB). Did you dump the bios also? Are you allowing unsafe VFIO interrupts? Is ACS override disabled or are you passing anything else through?

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.