[Support] SpaceinvaderOne - Macinabox


Recommended Posts

Before I get to the 'I need help' part...

 

Thank you @SpaceInvaderOne for Macinabox. It is a godsend, especially with how finikey Clover Can be. It make getting that 1st 85% of the way there stupid easy.

 

On to the show...

 

I have a Dual Xeon E5-2660 (8 core hyperthreaded) system. I am trying to setup the VM to passthrough a rx 580 GPU so that I may run Catalina.

 

I was able to get the VM up and running quite easily. Then I went to edit the XML to pass through the 8 cores/16 threads, 32Gb ram, the GPU, and the matching audio... things didn't go well.

 

Here is my xml:

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>macOS Catalina</name>
  <uuid>746db21e-6a6f-4597-96b2-754d5589dd4b</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'>33554432</memory>
  <currentMemory unit='KiB'>33554432</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>16</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='18'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='19'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='20'/>
    <vcpupin vcpu='6' cpuset='5'/>
    <vcpupin vcpu='7' cpuset='21'/>
    <vcpupin vcpu='8' cpuset='6'/>
    <vcpupin vcpu='9' cpuset='22'/>
    <vcpupin vcpu='10' cpuset='7'/>
    <vcpupin vcpu='11' cpuset='23'/>
    <vcpupin vcpu='12' cpuset='8'/>
    <vcpupin vcpu='13' cpuset='24'/>
    <vcpupin vcpu='14' cpuset='9'/>
    <vcpupin vcpu='15' cpuset='25'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/746db21e-6a6f-4597-96b2-754d5589dd4b_VARS-pure-efi.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='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Clover.qcow2'/>
      <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'/>
      <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'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <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='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </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>
    <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>
    <interface type='bridge'>
      <mac address='52:54:00:71:da:c9'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' 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='0x81' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x81' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <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=REDACTED'/>
    <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>

Now on boot, I (eventually) get booted back into recovery mode.

 

From the logs:

-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 \
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 \
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 \
-device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 \
-device pcie-root-port,port=0x8,chassis=5,id=pci.5,bus=pcie.0,addr=0x1 \
-device ich9-usb-ehci1,id=usb,bus=pcie.0,addr=0x7.0x7 \
-device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pcie.0,multifunction=on,addr=0x7 \
-device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pcie.0,addr=0x7.0x1 \
-device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pcie.0,addr=0x7.0x2 \
-device virtio-serial-pci,id=virtio-serial0,bus=pci.2,addr=0x0 \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/MacinaboxCatalina/Clover.qcow2","node-name":"libvirt-3-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-3-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"qcow2","file":"libvirt-3-storage","backing":null}' \
-device ide-hd,bus=ide.2,drive=libvirt-3-format,id=sata0-0-2,bootindex=1,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/MacinaboxCatalina/Catalina-install.img","node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-2-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-2-storage"}' \
-device ide-hd,bus=ide.3,drive=libvirt-2-format,id=sata0-0-3,write-cache=on \
-blockdev '{"driver":"file","filename":"/mnt/user/domains/MacinaboxCatalina/macos_disk.img","node-name":"libvirt-1-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}' \
-blockdev '{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"raw","file":"libvirt-1-storage"}' \
-device ide-hd,bus=ide.4,drive=libvirt-1-format,id=sata0-0-4,write-cache=on \
-netdev tap,fd=36,id=hostnet0 \
-device e1000-82545em,netdev=hostnet0,id=net0,mac=52:54:00:71:da:c9,bus=pci.1,addr=0x0 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=37,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-device vfio-pci,host=0000:81:00.0,id=hostdev0,bus=pci.3,addr=0x0 \
-device vfio-pci,host=0000:81:00.1,id=hostdev1,bus=pci.4,addr=0x0 \
-device vfio-pci,host=0000:05:00.0,id=hostdev2,bus=pci.5,addr=0x0 \
-usb \
-device usb-kbd,bus=usb-bus.0 \
-device 'isa-applesmc,osk=REDACTED' \
-smbios type=2 \
-cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-03-03 00:28:12.530+0000: Domain id=7 is tainted: high-privileges
2020-03-03 00:28:12.530+0000: Domain id=7 is tainted: custom-argv
2020-03-03 00:28:12.530+0000: Domain id=7 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)

The `custom-argv` line 2 or 3 lines from the bottom reports as an error, though I have seen it with a Domain id other than 7.

 

It seemed to me all the needed kexts are installed already, based on some things I read in the forum. I could be wrong, though...

 

Help me Obi-won Kenobi(s) you're my only hope.

Link to comment

@igreulich This may or may not be your whole problem, but 100% part of it is you are trying to pass through all your CPU cores and all of your RAM. Unraid needs some portion of your resources in order to host the VM in the first place. @infinitycell asked a very similar question yesterday and had the same problem. Read a few of the posts starting here: 

@jonathanm Had a much more detailed response here: 

Once you get that issue corrected, it should boot easily, but you may still have sound issues until you set your GPU and GPU audio passthrough to utilize the same virtual bus, slot, and configure them as multifunction devices. This video goes into more detail on that: 

 

 

Link to comment

Hi All,

 

Sorry for another GPU passthrough "help me" post but I'm just plain out of ideas...

And this isn't something simple like the AMD Reset Bug or forgetting to update the OVMF links.
My system is an AMD 3950x, Asrock x570 Gaming X, 32GB RAM running Unraid 6.8.2 and Macinabox (thx @SpaceInvaderOne).

I have dual AMD cards, a Powercolor 5700XT in the first x16 slot (for Win10 gaming) and a Yeston RX550 LP in the second.

I've extracted the VBIOS from the cards so I can pass those to the VM.

A Win10 VM works with either GPU passed through without any issue (I've never even hit the AMD Reset Bug).

The Catalina VM works with VNC out of the box but the moment I try to pass either video card I get nothing (no video output) on the card.
I've tried;
- Both AMD cards with and without bios files
- With Macinabox OMVF files and with default ones
- With and without GPU audio device passed though both on the same and different buses

Since I never get any output from either card when the Mac VM starts, makes me think that something is failing in QEMU before clover.

Nothing of note shows up in any logs either (no error messages).

Anyone seen this or have any ideas?

Configs etc below.

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>MacinaboxCatalina</name>
  <uuid>ac96635e-3e99-475d-a83f-47fce683c85f</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'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='13'/>
    <vcpupin vcpu='1' cpuset='29'/>
    <vcpupin vcpu='2' cpuset='15'/>
    <vcpupin vcpu='3' cpuset='31'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxCatalina/ovmf/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='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Clover.qcow2'/>
      <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'/>
      <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'/>
      <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' multifunction='on'/>
    </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='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='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='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>
    <interface type='bridge'>
      <mac address='52:54:00:be:e1:24'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' 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='0x10' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/isos/Yeston-RX550-4GD5LP.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='0x10' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <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='************************'/>
    <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>

VM Logs (just the last few lines)

-device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:be:e1:24,bus=pci.1,addr=0x0 \
-chardev pty,id=charserial0 \
-device isa-serial,chardev=charserial0,id=serial0 \
-chardev socket,id=charchannel0,fd=39,server,nowait \
-device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 \
-device usb-tablet,id=input0,bus=usb.0,port=1 \
-device vfio-pci,host=0000:10:00.0,id=hostdev0,bus=pci.3,multifunction=on,addr=0x0,romfile=/mnt/user/isos/Yeston-RX550-4GD5LP.rom \
-device vfio-pci,host=0000:10:00.1,id=hostdev1,bus=pci.3,addr=0x0.0x1 \
-device usb-host,hostbus=5,hostaddr=2,id=hostdev2,bus=usb.0,port=2 \
-device virtio-balloon-pci,id=balloon0,bus=pci.4,addr=0x0 \
-usb \
-device usb-kbd,bus=usb-bus.0 \
-device '************************' \
-smbios type=2 \
-cpu Penryn,kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on,+pcid,+ssse3,+sse4.2,+popcnt,+avx,+aes,+xsave,+xsaveopt,check \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-msg timestamp=on
2020-03-06 05:52:54.880+0000: Domain id=21 is tainted: high-privileges
2020-03-06 05:52:54.880+0000: Domain id=21 is tainted: custom-argv
2020-03-06 05:52:54.880+0000: Domain id=21 is tainted: host-cpu
char device redirected to /dev/pts/1 (label charserial0)
2020-03-06T05:52:54.917300Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]

IOMMU Groups:

IOMMU group 0:	[1022:1482] 00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 1:	[1022:1483] 00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
IOMMU group 2:	[1022:1482] 00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 3:	[1022:1482] 00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 4:	[1022:1483] 00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
IOMMU group 5:	[1022:1483] 00:03.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
IOMMU group 6:	[1022:1482] 00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 7:	[1022:1482] 00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 8:	[1022:1482] 00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 9:	[1022:1484] 00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
IOMMU group 10:	[1022:1482] 00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
IOMMU group 11:	[1022:1484] 00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
IOMMU group 12:	[1022:1484] 00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
IOMMU group 13:	[1022:1484] 00:08.3 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
IOMMU group 14:	[1022:790b] 00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)
[1022:790e] 00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
IOMMU group 15:	[1022:1440] 00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 0
[1022:1441] 00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 1
[1022:1442] 00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 2
[1022:1443] 00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 3
[1022:1444] 00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 4
[1022:1445] 00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 5
[1022:1446] 00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 6
[1022:1447] 00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse Device 24: Function 7
IOMMU group 16:	[1022:57ad] 01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse Switch Upstream
IOMMU group 17:	[1022:57a3] 02:03.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
IOMMU group 18:	[1022:57a3] 02:06.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
IOMMU group 19:	[1022:57a4] 02:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
[1022:1485] 0a:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
[1022:149c] 0a:00.1 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
[1022:149c] 0a:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
IOMMU group 20:	[1022:57a4] 02:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
[1022:7901] 0b:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
IOMMU group 21:	[1022:57a4] 02:0a.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Matisse PCIe GPP Bridge
[1022:7901] 0c:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
IOMMU group 22:	[1b21:1184] 03:00.0 PCI bridge: ASMedia Technology Inc. ASM1184e PCIe Switch Port
IOMMU group 23:	[1b21:1184] 04:01.0 PCI bridge: ASMedia Technology Inc. ASM1184e PCIe Switch Port
[8086:2723] 05:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
IOMMU group 24:	[1b21:1184] 04:03.0 PCI bridge: ASMedia Technology Inc. ASM1184e PCIe Switch Port
IOMMU group 25:	[1b21:1184] 04:05.0 PCI bridge: ASMedia Technology Inc. ASM1184e PCIe Switch Port
[8086:1539] 07:00.0 Ethernet controller: Intel Corporation I211 Gigabit Network Connection (rev 03)
IOMMU group 26:	[1b21:1184] 04:07.0 PCI bridge: ASMedia Technology Inc. ASM1184e PCIe Switch Port
IOMMU group 27:	[10ec:8125] 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 01)
IOMMU group 28:	[1002:1478] 0d:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c1)
IOMMU group 29:	[1002:1479] 0e:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
IOMMU group 30:	[1002:731f] 0f:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (rev c1)
IOMMU group 31:	[1002:ab38] 0f:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 HDMI Audio
IOMMU group 32:	[1002:67ff] 10:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Baffin [Radeon RX 550 640SP / RX 560/560X] (rev ff)
[1002:aae0] 10:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Baffin HDMI/DP Audio [Radeon RX 550 640SP / RX 560/560X]
IOMMU group 33:	[1022:148a] 11:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
IOMMU group 34:	[1022:1485] 12:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
IOMMU group 35:	[1022:1486] 12:00.1 Encryption controller: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
IOMMU group 36:	[1022:149c] 12:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
IOMMU group 37:	[1022:1487] 12:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller
IOMMU group 38:	[1022:7901] 13:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)
IOMMU group 39:	[1022:7901] 14:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] (rev 51)

I don't know where to go from here...

Any help greatly appreciated.

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

Any help greatly appreciated.

Go back with vnc, set up a remote desktop on mac vm, passthrough your gpu; you will get a black screen, as you described; try to connect through remote desktop (from another pc or mobile); if you are able to connect to the vm then you need to setup lilu+whatevergreen as you probably have issues in the ioreg tree.

Link to comment
9 hours ago, ghost82 said:

Go back with vnc, set up a remote desktop on mac vm, passthrough your gpu; you will get a black screen, as you described; try to connect through remote desktop (from another pc or mobile); if you are able to connect to the vm then you need to setup lilu+whatevergreen as you probably have issues in the ioreg tree.

Thanks so much for the advice.
One part of me is happy that it's working. And another part is full of rage that I wasted an entire day on this! 🤪
I remember seeing the CPU cores loading up just like the machine was running but because I never got any video output I assumed it wasn't. I couldn't understand why TianoCore and Clover wouldn't produce output. I knew that OSX wouldn't because it isn't compatible out of the box.
But now that I think about it, the card always returns to a low power state with no video output. Neither TianoCore or Clover are video card aware so they can't change that state. It's not till the OS loads that it can enable video output.
Now onto the next problem, USB, WiFi, Bluetooth, etc. :)

Link to comment
51 minutes ago, cat2devnull said:

Thanks so much for the advice.
One part of me is happy that it's working. And another part is full of rage that I wasted an entire day on this! 🤪
I remember seeing the CPU cores loading up just like the machine was running but because I never got any video output I assumed it wasn't. I couldn't understand why TianoCore and Clover wouldn't produce output. I knew that OSX wouldn't because it isn't compatible out of the box.
But now that I think about it, the card always returns to a low power state with no video output. Neither TianoCore or Clover are video card aware so they can't change that state. It's not till the OS loads that it can enable video output.
Now onto the next problem, USB, WiFi, Bluetooth, etc. :)

You're lucky that you spent only ONE day! When I started and I got a black screen I spent several days without figuring out what was wrong, when lilu was not compatible with qemu, before Leoyzen fixed it.

Link to comment
On 11/8/2019 at 1:44 PM, SpaceInvaderOne said:

The macinabox template uses  custom ovmf files. If you change


<os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/e930dfa3-ce5f-4a14-a642-d140ed8035bd_VARS-pure-efi.fd</nvram>
  </os>

to be as below you will be back without the screen corruption.


  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_VARS.fd</nvram>
  </os>

hope that helps 😀

Is there a way to make this change persistent? Every time I make a change using the template editor, this section of the XML is modified.

Link to comment

That's what I figured. I've just created a document with the necessary changes that I need to remember to copy/paste back into the XML after changes.

 

Nvidia pass-through has been finicky with Macinabox. Install is amazing and simple. Getting the OS to recognize my display dongle for my GPU so that I change change resolution on the thin client (Apple Screen Share OR Splashtop) has been a PITA.

 

Display is stuck at 1280x1024. With no sound.

 

07-MAR-20

So I was very careful to update my XML by hand and not use the template editor. Pretty much copy/pasted the settings I wanted from my other High Sierra install prior to the invention of Macinabox.

 

I'm happy to report that I have Nvidia GPU pass-through with sound. Video playback is a lot smoother within Splashtop with GPU pass-through.

 

  • Running the Macinabox High Sierra VM headless with an HDMI dongle.
  • Able to adjust the VM display to match that of my thin client.

 

  • Using the template editor modifies the XML in a way that you lose all of the custom changes that SpaceInvaderOne was so kind enough to set up for us. Even though I was catching the majority of the changes, when I was using the template editor, I was still missing some the nuance XML customizations
Edited by Zer0Nin3r
Report of successful GPU pass-through
Link to comment

Regarding problems with the 5700XT, once it works "reliably", I hope someone will be able to produce a full tutorial. 🥰
I spent already about 4 full weekends on setting up and understanding unraid... I can't afford the luxury to set up osx. 
So yes, you were lucky or talented if it was only one day.

 

Link to comment

Resolved my screen problems with the fix above:

  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_VARS.fd</nvram>
  </os>

 

Anyone try not pinning CPUs and letting them dynamically load?

Link to comment

I've got an interesting issue that I just came across. I own and use real Mac computers but also run a VM.  It's nice to be able to test software that I'm not familiar with without hosing my bare-metal Macs. I was running unRAID on the system still listed in my signature until a few days ago. I had used MacinaBox to create a Catalina VM while still on the Skylake i7-6700K and it seemed to work quite well.

 

A couple of days ago I picked up a used Supermicro CSE-847 with a x8DTN+ motherboard, dual x5650 Xeons, and for now, only 16GB of RAM. UnRAID migrated to the new hardware with no issues itself, but earlier today I tried firing up the Catalina VM. It seemed quite constrained and was running very slowly. I chalked that up to some software I'd tried a week ago that may have messed things up.

 

To try and fix, I went ahead and deleted the VM (and disks) and the MacinaBox docker container. To ensure it was clean I also deleted the old /appdata/MacinaBox and /appdata/macinabox folders, as well as /domains/MacinaboxCatalina. I then tried re-installing MacinaBox via Community Apps, choosing to create a fresh new Catalina VM.

 

Alas this is where the problem starts - the initial boot of the VM gets to the Clover bootloader and chooses the Mac Catalina install image, but then switches to the familiar black screen with a white Apple logo. Usually the logo is centered in the window, but for some reason it now is appearing in the upper left area of the screen. Alas it seems to hang at that point - I've left it sitting for over an hour with no change.

 

I did some investigation and it looks like the Xeon x5650 CPUs don't support AVX2, but they do support SSE 4.2. The old i7-6700K does support AVX2, so that's why the VM ran fine on it. Guess I now have a reason to upgrade the motherboard in the Supermicro to something more modern.

 

But in the meantime, are there any workarounds to not having AVX2 support? All that lead-up for one simple question, but I'm expecting the answer is no. Regardless, thanks @SpaceInvaderOnefor making it so easy to create Mac VMs on unRAID!

 

One other note caused by my OCD: in the config for the MacinaBox docker container (and VM), the paths listed for appdata and Basesystem use different case for the spelling of 'MacinaBox'. This leads to the creation of 2 folders under appdata, differing only in the case of the letters. I've changed mine so they both use the same case of 'MacinaBox' and so far everything is still working with a fresh High Sierra VM. Is there any reason why these paths use different case letters in the name of the folder? I just corrected the case of the pathname for Basesystem so it uses the same folder as appdata. Any reason why I shouldn't do this?

 

MacinaBox.thumb.jpg.99eff3195c01647727fc7f2e5a80f580.jpg

 

Dale

Link to comment
3 hours ago, frodr said:

How to add a 2nd and 3rd MacOS kvm without destroy the first?

Change the folders used for appdata and Basesystem to something other than the default locations. I had a working Catalina VM alongside a High Sierra VM on my older system still listed in my signature. As mentioned in my post above, I just transplanted my entire unRAID setup to a used Supermicro CSE-847 system. Alas the dual Xeon x5650 CPUs don't support AVX2 so I can no longer use the Catalina VM.

 

Link to comment
On 3/8/2020 at 6:15 AM, AgentXXL said:

 

But in the meantime, are there any workarounds to not having AVX2 support? All that lead-up for one simple question, but I'm expecting the answer is no. Regardless, thanks @SpaceInvaderOnefor making it so easy to create Mac VMs on unRAID!

 

One other note caused by my OCD: in the config for the MacinaBox docker container (and VM), the paths listed for appdata and Basesystem use different case for the spelling of 'MacinaBox'. This leads to the creation of 2 folders under appdata, differing only in the case of the letters. I've changed mine so they both use the same case of 'MacinaBox' and so far everything is still working with a fresh High Sierra VM. Is there any reason why these paths use different case letters in the name of the folder? I just corrected the case of the pathname for Basesystem so it uses the same folder as appdata. Any reason why I shouldn't do this?

 

MacinaBox.thumb.jpg.99eff3195c01647727fc7f2e5a80f580.jpg

 

Dale

 Not sure of any workarounds I'm afraid.

 

Thanks I meant to fix the template for the locations and forgot to. Reading your post prompted me to fix it :)

Link to comment
On 3/6/2020 at 10:54 PM, Zer0Nin3r said:

Is there a way to make this change persistent? Every time I make a change using the template editor, this section of the XML is modified.

Unfortunately at present the Unraid vm manager removes custrom xml. If you use virt-manager instead to edit your vms then the custom xml will remain the same.

  • Thanks 1
Link to comment

@SpaceInvaderOne First of all a big big thanks for this container and all your useful videos you made. Helped me a lot to get started with Unraid. Now to my main question. I today installed Macinabox for the first time and noticed something. There are 2 folders created in the appdata share. What's the reason for creating 2 shared folders, both empty? Is it supposed to be this way?

 

grafik.png.285b5ce1429b21398afae63d62b7917b.png

 

I quickly pulled the High Sierra install files with your Docker and installed it on an UD drive. Install went fine so far. VM is up and running after adjusting all the paths in the xml.

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.