[Support] SpaceinvaderOne - Macinabox


Recommended Posts

21 hours ago, cam217 said:

 

These is also a video from Ed explaining the graphics card passthrough. Eventually you'll need to dump your card firmware.

Been there as well for a windows 10 VM, and I'm fucked as Quadro cards with pascal architecture will not work in macOS 😅

 

Good luck 😊

ROUND 34! hahah followed multiple of his GPU passthrough videos and his GPU dump and STILL nada! Tried HDMI and Display, moved to different slots on MOBO, reinstalled the MacOS VM twice since…. GPU is where she gets stuck each time. Regardless of my playing around.

Link to comment

OK! So good news is I got the Mac VM to HALF boot lol. I can turn it on, it pops on my screen and asks to pick a boot drive, then you get the black screen with all the code flashing by, then….. black screen. OR. I get a pink striped screen, it reboots and gets stuck in a boot loop. 

 

Anyone else experience this? Here’s the setup thus far

 

 

66FC4373-8498-438C-BB8C-B405FF72BF4B.png

Link to comment
On 9/16/2021 at 9:46 PM, damnshaneisthatu said:

 

Did you find a fix for this? Or was it just restoring the other drives?

I only removed the install media and it worked. I just could not pass through the graphics card as it is not supported by macOS.

Link to comment
1 hour ago, Malachi89 said:

OK! So good news is I got the Mac VM to HALF boot lol. I can turn it on, it pops on my screen and asks to pick a boot drive, then you get the black screen with all the code flashing by, then….. black screen. OR. I get a pink striped screen, it reboots and gets stuck in a boot loop. 

 

Anyone else experience this? Here’s the setup thus far

 

66FC4373-8498-438C-BB8C-B405FF72BF4B.png

I can't help much here as I don't have any AMD graphics card to try with.
You could post your VM XML instead of the VM configuration screenshot as it is way more precise in what's actually used to configure your VM. User interfaces lacks a number of parameters that text configuration files show.

Link to comment
45 minutes ago, cam217 said:

I can't help much here as I don't have any AMD graphics card to try with.
You could post your VM XML instead of the VM configuration screenshot as it is way more precise in what's actually used to configure your VM. User interfaces lacks a number of parameters that text configuration files show.

That’s alright! I appreciate you trying. haha. And DERP. Can’t believe I forgot to post the XML instead. Here we are

 

Spoiler
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Macinabox BigSur</name>
  <uuid>5b98d13f-c2ff-4a6f-812e-6c705d3b859c</uuid>
  <description>MacOS Big Sur</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="default.png" os="osx"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>8</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='9'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='11'/>
    <vcpupin vcpu='4' cpuset='5'/>
    <vcpupin vcpu='5' cpuset='13'/>
    <vcpupin vcpu='6' cpuset='7'/>
    <vcpupin vcpu='7' cpuset='15'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-5.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/system/custom_ovmf/Macinabox_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/5b98d13f-c2ff-4a6f-812e-6c705d3b859c_VARS-pure-efi.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='4' threads='2'/>
    <cache mode='passthrough'/>
  </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/ISOs/BigSur-opencore.img'/>
      <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/Macinabox BigSur/macos_disk.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='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' 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='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </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='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>
    <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:3e:93:26'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x03' 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='0x03' slot='0x00' function='0x0'/>
      </source>
      <rom file='/mnt/user/ISOs/vbios/5700 xt.rom'/>
      <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='0x03' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x1b3c'/>
      </source>
      <address type='usb' bus='0' port='2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x1b3d'/>
      </source>
      <address type='usb' bus='0' port='3'/>
    </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='************************'/>
    <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>

 

 

Link to comment

Thank you Spaceinvader for providing this content and all the content you create. 

 

I am stuck when running the "1_macinabox_helper" script.  I continuously receive the same error: "failed to get domain 'put the name of the vm here'" and when I go to VMs tab, there is no VM.

 

Below is the script from the helper:

 

Script location: /tmp/user.scripts/tmpScripts/1_macinabox_helper/script
Note that closing this window will abort the execution of this script
Starting to Fix XML
error: failed to get domain 'put the name of the vm here'
No network adapters in xml to change. Network adapter is already vmxnet3











Added custom qemu:args for macOS
topolgy line left as is
custom ovmf added
error: Failed to define domain from /tmp/put the name of the vm herefixed.xml
error: (domain_definition):3: Extra content at the end of the document

^

This is what has been done to the xml

Your network type was already correct. Network has not been changed.
The custom qemu:args have been added to you xml.
VM is set to use custom ovmf files.
xml is now fixed. Now goto your vm tab and run the VM
Rerun this script if you make any other changes to the macOS VM using the Unraid VM manger

 

 

Attached is my Macinabox BigSur_original.xml file. 

 

I would greatly appreciate any and all help here to get this up and running. 

 

 

Macinabox BigSur_original.xml

Link to comment

You've got to follow the video tutorial.
Each script has to be run once. Then the helper script has to be modified with the name of your VM... Hence the 'failed to get domain 'put the name of the vm here'

Edited by cam217
Link to comment

Hi, 

 

I am trying to set this up with a 3070TI. 

The VM boots, I can see the disk I need to boot in. 

When I click the disk it's loading till the line:

ACPI: Executed 3 blocks of module-level executable AML code.

 

Ater there it's stuck.

 

When I boot the VM, this gets in the log:

2021-09-23T14:21:36.937949Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
2021-09-23T14:21:36.939104Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
2021-09-23T14:21:36.939806Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
2021-09-23T14:21:36.940587Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
2021-09-23T14:21:36.941392Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]
2021-09-23T14:21:36.942212Z qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.01H:ECX.pcid [bit 17]

 

Is there some way to fix this?

Link to comment
On 9/15/2021 at 11:53 PM, Malachi89 said:

I followed along the tutorial video without issue until we turned off the VM, updated core/RAM, userscripts, started VM. It asked me to choose my drive, chose bigsur (like i named it) and I get stuck at this. Any thoughts? I’ve redone this VM again and same issue. Tried different core/ram settings, default included. Nada.

FEB51C67-14DD-4971-BB53-54EAE7A7E65A.jpeg

 

For everyone struggling with quoted issue: it's important that you use old version of Opencore Configurator. Tutorial was posted around December 2020, so I've downloaded Opencore Configurator 2.19.1.0 (December 23, 2020) and everything worked as it should have. No manual XML editing needed. When you use the latest Opencore Configurator, you get a warning about incompatibility with your Opencore, then it breaks something and you get stuck as described in quoted post.

 

Also I have a question: how do I change resolution? I have the only option of 2560x1600 in settings which is too large for my 2560x1440 monitor.

Edited by AnimusAstralis
  • Thanks 1
Link to comment

Any ideas how to get more resolution options for those of us not doing GPU passthrough?

 

I've changed QXL to VirtIO and even VGA (using Virt Manager) and this changed it from one large resolution available to 1080p as the only res avaialble.

 

I'd like to use this VM in a window, these resolutions aren't great for that.

Link to comment
7 hours ago, AnimusAstralis said:

For everyone struggling with quoted issue: it's important that you use old version of Opencore Configurator.

I think that using external tools like opencore configurator is not a good idea.

As you noticed, a predefined version of opencore configurator works for a predefined version of oopencore.

If you open a config plist with the wrong versio of opencore configurator it can mess all the configuration, resulting in a not bootable os.

The only tool certified to check the config.plist file is ocvalidate, a command line tool that is packed with each version of opencore.

I know you like the gui and easy things, but here all you need is texedit and ocvalidate.

Link to comment
6 hours ago, Chamzamzoo said:

Any ideas how to get more resolution options for those of us not doing GPU passthrough?

I can suggest (I didn't try) to check into the ovmf bios (press esc as soon as vm boots, there settings for resolutions) and change the resolution also in opencore in config.plist (by default it is set to "max").

If once booted, you still have high resolution, I think there's no way to change it, it's what the os sees.

Edited by ghost82
Link to comment
1 hour ago, ghost82 said:

I think that using external tools like opencore configurator is not a good idea.

Why? One should only know what version to use. Otherwise it's manual editing which defeats the purpose of the tutorial.

 

1 hour ago, ghost82 said:

I can suggest (I didn't try) to check into the ovmf bios (press esc as soon as vm boots, there settings for resolutions) and change the resolution also in opencore in config.plist (by default it is set to "max").

If once booted, you still have high resolution, I think there's no way to change it, it's what the os sees.

Thanks for this suggestion! BIOS settings do nothing (I've checked it earlier), but editing config.plist helped. At least 1920x1080 resolution works, not sure about some exotic ones though.

Link to comment
12 hours ago, AnimusAstralis said:

Why? One should only know what version to use

Because it's a third party app and it was never "ceritified" by the opencore developers.

Yes, the correct method has to be simple manual editing and verify the changes with ocvalidate, as I wrote before.

Anyway, one can do what he/she wants, just be prepared to recover from an unbootable system!

Link to comment
12 hours ago, AnimusAstralis said:

but editing config.plist helped. At least 1920x1080 resolution works

What the bootloader does is searching for all the supported resolutions of the video card (passed through or virtual); then it chooses one of these.

If you enable log to file (target=67) in the config.plist you will read all the available resolutions.

The resolution can be set to "max", as I wrote, or it can be set manually, choosing from one of that listed in the log file.

 

This is for example the output to one of my log files, with "max" set in config.plist:

07:052 00:103 OCC: GOP exists on ConsoleOutHandle and has 10 modes
07:058 00:006 OC: Requested resolution is 0x0@0 (max: 1, force: 0) from Max
07:064 00:006 OCC: Requesting 0x0@0 (max: 1) resolution, curr 2, total 10
07:070 00:006 OCC: Current FB at 0x1000000000 (0x258000), format 1, res 800x600 scan 1024
07:076 00:006 OCC: Mode 0 - 1920x1080:1
07:082 00:006 OCC: Mode 1 - 640x480:1
07:089 00:006 OCC: Mode 2 - 800x600:1
07:095 00:006 OCC: Mode 3 - 1024x768:1
07:101 00:006 OCC: Mode 4 - 1280x720:1
07:107 00:006 OCC: Mode 5 - 1280x800:1
07:113 00:006 OCC: Mode 6 - 1280x1024:1
07:119 00:006 OCC: Mode 7 - 1440x900:1
07:125 00:006 OCC: Mode 8 - 1400x1050:1
07:131 00:006 OCC: Mode 9 - 1680x1050:1
07:137 00:006 OCC: Setting mode 0 with 1920x1080 resolution
07:178 00:040 OCC: Changed resolution mode to 0
07:184 00:006 OC: Changed resolution to 0x0@0 (max: 1, force: 0) from Max - Success

 

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