***GUIDE*** Mac OS X 10.11 El Capitan – VM on unRAID


Recommended Posts

<domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

  <name>OSX seabios</name>

  <uuid>4e05138f-ba9b-40bb-9c04-51d895bfb29d</uuid>

  <metadata>

    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>

  </metadata>

  <memory unit='KiB'>62390272</memory>

  <currentMemory unit='KiB'>62390272</currentMemory>

  <memoryBacking>

    <nosharepages/>

  </memoryBacking>

  <vcpu placement='static'>32</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'/>

    <vcpupin vcpu='16' cpuset='16'/>

    <vcpupin vcpu='17' cpuset='17'/>

    <vcpupin vcpu='18' cpuset='18'/>

    <vcpupin vcpu='19' cpuset='19'/>

    <vcpupin vcpu='20' cpuset='20'/>

    <vcpupin vcpu='21' cpuset='21'/>

    <vcpupin vcpu='22' cpuset='22'/>

    <vcpupin vcpu='23' cpuset='23'/>

    <vcpupin vcpu='24' cpuset='24'/>

    <vcpupin vcpu='25' cpuset='25'/>

    <vcpupin vcpu='26' cpuset='26'/>

    <vcpupin vcpu='27' cpuset='27'/>

    <vcpupin vcpu='28' cpuset='28'/>

    <vcpupin vcpu='29' cpuset='29'/>

    <vcpupin vcpu='30' cpuset='30'/>

    <vcpupin vcpu='31' cpuset='31'/>

  </cputune>

  <resource>

    <partition>/machine</partition>

  </resource>

  <os>

    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>

    <kernel>/mnt/disk1/appdata/default/bootr2839</kernel>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='2' cores='8' threads='2'/>

  </cpu>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>destroy</on_crash>

  <devices>

    <emulator>/usr/local/sbin/qemu</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/disk1/appdata/default/ElCapitan.img'/>

      <backingStore/>

      <target dev='hda' bus='sata'/>

      <alias name='sata0-0-0'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

    <controller type='usb' index='0'>

      <alias name='usb'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>

    </controller>

    <controller type='sata' index='0'>

      <alias name='ide'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pcie-root'>

      <alias name='pcie.0'/>

    </controller>

    <controller type='pci' index='1' model='dmi-to-pci-bridge'>

      <model name='i82801b11-bridge'/>

      <alias name='pci.1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>

    </controller>

    <controller type='pci' index='2' model='pci-bridge'>

      <model name='pci-bridge'/>

      <target chassisNr='2'/>

      <alias name='pci.2'/>

      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:51:66:48'/>

      <source bridge='br0'/>

      <target dev='vnet0'/>

      <model type='e1000-82545em'/>

      <alias name='net0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>

    </interface>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x046d'/>

        <product id='0xc52b'/>

        <address bus='1' device='4'/>

      </source>

      <alias name='hostdev0'/>

    </hostdev>

    <memballoon model='virtio'>

      <alias name='balloon0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>

    </memballoon>

  </devices>

  <seclabel type='none' model='none'/>

  <qemu:commandline>

    <qemu:arg value='-device'/>

    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=04:00.1,bus=root.1,addr=00.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='usb-kbd'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='usb-mouse'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='isa-applesmc,osk=****'/>

    <qemu:arg value='-cpu'/>

    <qemu:arg value='core2duo,vendor=GenuineIntel'/>

    <qemu:arg value='-smbios'/>

    <qemu:arg value='type=2'/>

  </qemu:commandline>

</domain>

Link to comment

<domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>

  <name>OSX seabios</name>

  <uuid>4e05138f-ba9b-40bb-9c04-51d895bfb29d</uuid>

  <metadata>

    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>

  </metadata>

  <memory unit='KiB'>62390272</memory>

  <currentMemory unit='KiB'>62390272</currentMemory>

  <memoryBacking>

    <nosharepages/>

  </memoryBacking>

  <vcpu placement='static'>32</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'/>

    <vcpupin vcpu='16' cpuset='16'/>

    <vcpupin vcpu='17' cpuset='17'/>

    <vcpupin vcpu='18' cpuset='18'/>

    <vcpupin vcpu='19' cpuset='19'/>

    <vcpupin vcpu='20' cpuset='20'/>

    <vcpupin vcpu='21' cpuset='21'/>

    <vcpupin vcpu='22' cpuset='22'/>

    <vcpupin vcpu='23' cpuset='23'/>

    <vcpupin vcpu='24' cpuset='24'/>

    <vcpupin vcpu='25' cpuset='25'/>

    <vcpupin vcpu='26' cpuset='26'/>

    <vcpupin vcpu='27' cpuset='27'/>

    <vcpupin vcpu='28' cpuset='28'/>

    <vcpupin vcpu='29' cpuset='29'/>

    <vcpupin vcpu='30' cpuset='30'/>

    <vcpupin vcpu='31' cpuset='31'/>

  </cputune>

  <resource>

    <partition>/machine</partition>

  </resource>

  <os>

    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>

    <kernel>/mnt/disk1/appdata/default/bootr2839</kernel>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

  </features>

  <cpu mode='host-passthrough'>

    <topology sockets='2' cores='8' threads='2'/>

  </cpu>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>destroy</on_crash>

  <devices>

    <emulator>/usr/local/sbin/qemu</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='raw'/>

      <source file='/mnt/disk1/appdata/default/ElCapitan.img'/>

      <backingStore/>

      <target dev='hda' bus='sata'/>

      <alias name='sata0-0-0'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

    <controller type='usb' index='0'>

      <alias name='usb'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>

    </controller>

    <controller type='sata' index='0'>

      <alias name='ide'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pcie-root'>

      <alias name='pcie.0'/>

    </controller>

    <controller type='pci' index='1' model='dmi-to-pci-bridge'>

      <model name='i82801b11-bridge'/>

      <alias name='pci.1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>

    </controller>

    <controller type='pci' index='2' model='pci-bridge'>

      <model name='pci-bridge'/>

      <target chassisNr='2'/>

      <alias name='pci.2'/>

      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:51:66:48'/>

      <source bridge='br0'/>

      <target dev='vnet0'/>

      <model type='e1000-82545em'/>

      <alias name='net0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>

    </interface>

    <hostdev mode='subsystem' type='usb' managed='no'>

      <source>

        <vendor id='0x046d'/>

        <product id='0xc52b'/>

        <address bus='1' device='4'/>

      </source>

      <alias name='hostdev0'/>

    </hostdev>

    <memballoon model='virtio'>

      <alias name='balloon0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>

    </memballoon>

  </devices>

  <seclabel type='none' model='none'/>

  <qemu:commandline>

    <qemu:arg value='-device'/>

    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='vfio-pci,host=04:00.1,bus=root.1,addr=00.1'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='usb-kbd'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='usb-mouse'/>

    <qemu:arg value='-device'/>

    <qemu:arg value='isa-applesmc,osk=****'/>

    <qemu:arg value='-cpu'/>

    <qemu:arg value='core2duo,vendor=GenuineIntel'/>

    <qemu:arg value='-smbios'/>

    <qemu:arg value='type=2'/>

  </qemu:commandline>

</domain>

 

try this 

<domain type='kvm' id='5' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX seabios</name>
  <uuid>4e05138f-ba9b-40bb-9c04-51d895bfb29d</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="linux.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>62390272</memory>
  <currentMemory unit='KiB'>62390272</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>32</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'/>
    <vcpupin vcpu='16' cpuset='16'/>
    <vcpupin vcpu='17' cpuset='17'/>
    <vcpupin vcpu='18' cpuset='18'/>
    <vcpupin vcpu='19' cpuset='19'/>
    <vcpupin vcpu='20' cpuset='20'/>
    <vcpupin vcpu='21' cpuset='21'/>
    <vcpupin vcpu='22' cpuset='22'/>
    <vcpupin vcpu='23' cpuset='23'/>
    <vcpupin vcpu='24' cpuset='24'/>
    <vcpupin vcpu='25' cpuset='25'/>
    <vcpupin vcpu='26' cpuset='26'/>
    <vcpupin vcpu='27' cpuset='27'/>
    <vcpupin vcpu='28' cpuset='28'/>
    <vcpupin vcpu='29' cpuset='29'/>
    <vcpupin vcpu='30' cpuset='30'/>
    <vcpupin vcpu='31' cpuset='31'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <kernel>/mnt/disk1/appdata/default/bootr2839</kernel>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='2' cores='8' threads='2'/>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/disk1/appdata/default/ElCapitan.img'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
      <alias name='sata0-0-0'/>
    
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
    
    </controller>
    <controller type='sata' index='0'>
      <alias name='ide'/>
    
    </controller>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <alias name='pci.1'/>
    
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <alias name='pci.2'/>
     
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:51:66:48'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='4'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
      <memballoon model='none'/>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=****'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='core2duo,vendor=GenuineIntel'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
  </qemu:commandline>
</domain>

 

You will see i have removed the memballoon and some of the  address tags so they are re-put in by vm manager after you clic update. Try that

 

 

On a side note though dont ever remove the address tag in this part though else network will not work. the default vm manager gives doesnt work for us

must always be  <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>

<interface type='bridge'>

      <mac address='52:54:00:51:66:48'/>

      <source bridge='br0'/>

      <target dev='vnet0'/>

      <model type='e1000-82545em'/>

      <alias name='net0'/>

      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>

    </interface>

Link to comment

I tried adding VNC back into your XML edit and it got stuck 3/4 loading, reverted back to my original XML and added VNC, everything is working fine, just thinks there is an extra screen lol

 

wow thats strange you cant loose vnc! Hopefully someone will Know why

 

edit ...........................

 

maybe just try this

 

change

 <cpu mode='host-passthrough'>
    <topology sockets='2' cores='8' threads='2'/>
  </cpu>

 

 

to

 

 <cpu mode='custom' match='exact'>
    <model fallback='allow'> core2duo </model>
  </cpu>

Link to comment

So I got an El Capitan VM up and running using the gridrunner's YouTube guide (Thanks for those, gridrunner!), but I cannot get a USB controller or individual drive to show up. I'm fairly sure they are being passed through, as when I have OSX running, the devices are no longer available to other VMs, but nothing I try lets the usb peripherals plugged into the controller, or the individual USB keys show up in the OS.

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX ovmf clover</name>
  <uuid>cc000f8f-5b61-4ec4-84e7-d5f5923983e2</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="vintageapple.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</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='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/cc2f6523-2666-d8c4-5ddc-1866a217ad5b_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
    <vendor>Intel</vendor>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/OSX/vdisk1.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:51:66:48'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
    <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='none'/>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=***'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='core2duo,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

Iommu Groups

/sys/kernel/iommu_groups/19/devices/0000:00:1f.0
/sys/kernel/iommu_groups/19/devices/0000:00:1f.2
/sys/kernel/iommu_groups/19/devices/0000:00:1f.3
/sys/kernel/iommu_groups/20/devices/0000:02:00.0
/sys/kernel/iommu_groups/21/devices/0000:03:00.0
/sys/kernel/iommu_groups/22/devices/0000:04:00.0

 

lsusb

Bus 002 Device 006: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
Bus 002 Device 005: ID 046b:ff01 American Megatrends, Inc.
Bus 002 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0781:5580 SanDisk Corp. SDCZ80 Flash Drive
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 11b0:6348 ATECH FLASH TECHNOLOGY
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 05dc:a817 Lexar Media, Inc.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

lspci | grep USB

00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #2 (rev 06)
00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #1 (rev 06)
02:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)

 

Things I've tried:

 

1. I've added tried using hostdev to pass the whole usb 3.0 controller by adding this to the <device> section of the xml (just above the <memballoon> )

 

        <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
    </hostdev>

 

2. I've tried passing the usb key by itself using hostdev (I got the ids by making a new linux vm, added the usb devuce, then grabbed the output code)

    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x05dc'/>
        <product id='0xa817'/>
      </source>
    </hostdev>

 

3. I've tried attaching it using the Libvirt Hotplug USB plugin

 

4. I've tried other USB drives

 

Nothing seems to work. VM boots up without issue, but nothing plugged into the USB controller displays.

 

I'm at a bit of a loss as to where to go from here...

 

Help! :)

Link to comment

So I got an El Capitan VM up and running using the gridrunner's YouTube guide (Thanks for those, gridrunner!), but I cannot get a USB controller or individual drive to show up. I'm fairly sure they are being passed through, as when I have OSX running, the devices are no longer available to other VMs, but nothing I try lets the usb peripherals plugged into the controller, or the individual USB keys show up in the OS.

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX ovmf clover</name>
  <uuid>cc000f8f-5b61-4ec4-84e7-d5f5923983e2</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Linux" icon="vintageapple.png" os="linux"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</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='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/cc2f6523-2666-d8c4-5ddc-1866a217ad5b_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
    <vendor>Intel</vendor>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/OSX/vdisk1.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:51:66:48'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
    <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='none'/>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=***'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='core2duo,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

Iommu Groups

/sys/kernel/iommu_groups/19/devices/0000:00:1f.0
/sys/kernel/iommu_groups/19/devices/0000:00:1f.2
/sys/kernel/iommu_groups/19/devices/0000:00:1f.3
/sys/kernel/iommu_groups/20/devices/0000:02:00.0
/sys/kernel/iommu_groups/21/devices/0000:03:00.0
/sys/kernel/iommu_groups/22/devices/0000:04:00.0

 

lsusb

Bus 002 Device 006: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse
Bus 002 Device 005: ID 046b:ff01 American Megatrends, Inc.
Bus 002 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0781:5580 SanDisk Corp. SDCZ80 Flash Drive
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 11b0:6348 ATECH FLASH TECHNOLOGY
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 05dc:a817 Lexar Media, Inc.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

lspci | grep USB

00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #2 (rev 06)
00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2 Enhanced Host Controller #1 (rev 06)
02:00.0 USB controller: Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)

 

Things I've tried:

 

1. I've added tried using hostdev to pass the whole usb 3.0 controller by adding this to the <device> section of the xml (just above the <memballoon> )

 

        <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
    </hostdev>

 

2. I've tried passing the usb key by itself using hostdev (I got the ids by making a new linux vm, added the usb devuce, then grabbed the output code)

    <hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x05dc'/>
        <product id='0xa817'/>
      </source>
    </hostdev>

 

3. I've tried attaching it using the Libvirt Hotplug USB plugin

 

4. I've tried other USB drives

 

Nothing seems to work. VM boots up without issue, but nothing plugged into the USB controller displays.

 

I'm at a bit of a loss as to where to go from here...

 

Help! :)

 

Hi, you could try either

 

1 attach usb drive as an unassigned device to the server. it will be given a dev id like sda . check what it is then use this code to pass it though as a block device. so change the <source dev='/dev/sda'/>  to your dev/***

 

 <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sda'/>
      <target dev='hdd' bus='sata'/>
    </disk>

 

put it here in your xml straight under this bit

 

 <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/OSX/vdisk1.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

 

That should work and pass it though that way.

 

or you could try to pass usb controller though like this

 

   <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=***'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='core2duo,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

Link to comment

gridrunner's guide should, for the most part, work for Sierra as well.  Apple's core2duo devices were cut for Sierra so we'll have to change our emulation to Penryn.  enoch's latest version seems to work well but clover is a little bit of a mess with Penryn.  With the QEMU flag enabled in config.plist the VM runs at 1/4 speed and without the flag at ~10x speed. dreadkopp over at Insanelymac posted a patched Clover 3578 with the appropriate fixes but they have not yet been merged into Clover.  Therefore, you'll have to use dreadkopp Clover version for now. You can follow the Clover ticket here.

 

I did not attempt an upgrade but here's how I installed a new instance of OVMF Sierra with Clover EFI.

 

Create Sierra Image

1. on a working Mac/Hackintosh, download Sierra from the App Store.

2. Create a 8GB file with a name sierra_usb.

mkfile -n 8g sierra_usb

 

3. Mount the file as a disk. After this command you should see where the image is mounted. In this example, it was mounted on /dev/disk2.

hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount sierra_usb

 

4. Partitition your virtual disk. First we will create a GPT partition map:

gpt create /dev/disk2

 

5. Use Disk Utility to Erase your virtual disk, with a name Untitled

6. Create installer virtual disk from Installer.app

sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ MacOS\ Sierra.app --nointeraction

 

Install dreadkopp's patched Clover to the Virtual Install Disk

1. Open the Installer and choose the Install disk as the installation location.

2. Choose to customize and select Install for UEFI booting only

3. Select a theme for Clover

4. Under Drivers64UEFI, select DataHubDxe-64 AND OsxAptioFix2Drv

5. Complete the install action and open config.plist and make sure your resolution matches unRAID's OVMF resolution

<key>ScreenResolution</key>
<string>800x600</string>

 

6. Copy your SMBIOS settings from a previous Clover install or use Clover Configurator's SMBIOS wizard.  In this example iMac 14.1.

 

Unmount and Move Virtual Disk Image to unRAID

1. Unmount install disk

diskutil unmount /dev/disk2

 

2. Move virtual disk image to unRAID share. For this example /mnt/user/domains/macOS/sierra_usb

 

Installation

1. Create a virtual disk where we will install Sierra. In this example it's a 90GB virtual disk.

qemu-img create -f raw /mnt/user/domains/macOS/vdisk1.img 90G

 

2. on unRAID, create a new custom VM.  NOTE: You'll need to add in Apple's key per usual. This example is for a GPU passthrough VM so modify for your GPU bios or delete this line altogether.  I've also passed through an entire USB controller (00:1d.0).

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>macOS</name>
  <uuid>cf5aa9c4-c70c-4b00-bb27-2125bc8fcedc</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="macOS" icon="/mnt/user/domains/macOS/OSX-10.12.png"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/cf5aa9c4-c70c-4b00-bb27-2125bc8fcedc_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      
      <source file='/mnt/user/domains/macOS/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      
      <source file='/mnt/user/domains/macOS/sierra_usb'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
     <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=OSX_KEY'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,romfile=/mnt/user/domains/macOS/Powercolor.R9270.2048.131105.rom'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1d.0,bus=root.1,addr=00.2'/>
  </qemu:commandline>
</domain>

 

3. Start the VM and at the Clover boot screen select Install macOS

4. Once in the installer, Open Disk Utility and Partition the 90GB virtual disk

5. Quit Disk Utility and install as usual

6. After the initial installation in finished the VM will reboot and again select Install macOS

7. The install will resume and reboot once again

8. At the clover boot screen, select your Sierra partition

9. Complete the Sierra installation wizard and arrive at the desktop

 

Post Installation

1. Open the Installer and choose the Sierra disk as the installation location.

2. Choose to customize and select Install for UEFI booting only

3. Select a theme for Clover

4. Under Drivers64UEFI, select DataHubDxe-64 AND OsxAptioFix2Drv

5. Complete the install action and open config.plist and make sure your resolution matches unRAID's OVMF resolution

<key>ScreenResolution</key>
<string>800x600</string>

 

6. Copy your SMBIOS settings from a previous Clover install or use Clover Configurator's SMBIOS wizard.  In this example iMac 14.1

 

 

7. Shutdown the VM

4. In unRAID, 8edit the macOS VM XML and remove the install disk

<disk type='file' device='disk'>
<driver name='qemu' type='raw'
<source file='/mnt/user/domains/macOS/sierra_usb'/>
<backingStore/>
<target dev='hda' bus='sata'/>
</disk>

 

5. Start the VM and you should boot to the Clover Boot screen

 

NOTES:

- I was able to get HDMI audio working with the attached HDMIAudio.kext.

- The patched Clover version is 3578 and is a version where kext injection is broken.  This was fixed in 3585.  Until the fixes are added to Clover builds or we get an updated patched version of Clover we'll have to install kexts to /System/Library/Extensions

 

 

Hi,

 

First thanks for your guide. 

 

I followed the instructions, and tried to boot using VNC. However the loading takes ages(hours and never completes) and I don't know why ...

 

Screenshot%202016-10-09%2017.55.10.png?dl=1

 

Here is my XML

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>macOS</name>
  <uuid>7b5d8655-5ac8-b824-eb8c-5435faf61f66</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="macOS" icon="/mnt/user/ISOS/OSX/OSX-10.12.png"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/7b5d8655-5ac8-b824-eb8c-5435faf61f66_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/disks/Samsung_SSD_850_EVO_250GB_S2R6NX0H750197X/Mac OS Sierra/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOS/OSX/sierra_usb'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
     <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
    <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=OSKEYS/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

Any idea? Thanks

Link to comment

1 attach usb drive as an unassigned device to the server. it will be given a dev id like sda . check what it is then use this code to pass it though as a block device. so change the <source dev='/dev/sda'/>  to your dev/***

 

 <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sda'/>
      <target dev='hdd' bus='sata'/>
    </disk>

 

put it here in your xml straight under this bit

 

 <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/domains/OSX/vdisk1.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>

 

That should work and pass it though that way.

 

or you could try to pass usb controller though like this

 

   <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=02:00.0,bus=root.1,addr=00.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=***'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='core2duo,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

Fantastic! That first bit is exactly what I needed. It worked perfectly! Thank you so much! :)

 

Now, any thoughts on the error I was getting for the second part? I'd love to be able to pass through the whole controller, so anyone using the machine can just pop in a usb device without having to mess around.

6ZibcID.gif

 

Thanks again for the timely aid! And I love your youtube videos! They make it so easy to follow! :)

Link to comment

gridrunner's guide should, for the most part, work for Sierra as well.  Apple's core2duo devices were cut for Sierra so we'll have to change our emulation to Penryn.  enoch's latest version seems to work well but clover is a little bit of a mess with Penryn.  With the QEMU flag enabled in config.plist the VM runs at 1/4 speed and without the flag at ~10x speed. dreadkopp over at Insanelymac posted a patched Clover 3578 with the appropriate fixes but they have not yet been merged into Clover.  Therefore, you'll have to use dreadkopp Clover version for now. You can follow the Clover ticket here.

 

I did not attempt an upgrade but here's how I installed a new instance of OVMF Sierra with Clover EFI.

 

Create Sierra Image

1. on a working Mac/Hackintosh, download Sierra from the App Store.

2. Create a 8GB file with a name sierra_usb.

mkfile -n 8g sierra_usb

 

3. Mount the file as a disk. After this command you should see where the image is mounted. In this example, it was mounted on /dev/disk2.

hdiutil attach -imagekey diskimage-class=CRawDiskImage -nomount sierra_usb

 

4. Partitition your virtual disk. First we will create a GPT partition map:

gpt create /dev/disk2

 

5. Use Disk Utility to Erase your virtual disk, with a name Untitled

6. Create installer virtual disk from Installer.app

sudo /Applications/Install\ macOS\ Sierra.app/Contents/Resources/createinstallmedia --volume /Volumes/Untitled --applicationpath /Applications/Install\ MacOS\ Sierra.app --nointeraction

 

Install dreadkopp's patched Clover to the Virtual Install Disk

1. Open the Installer and choose the Install disk as the installation location.

2. Choose to customize and select Install for UEFI booting only

3. Select a theme for Clover

4. Under Drivers64UEFI, select DataHubDxe-64 AND OsxAptioFix2Drv

5. Complete the install action and open config.plist and make sure your resolution matches unRAID's OVMF resolution

<key>ScreenResolution</key>
<string>800x600</string>

 

6. Copy your SMBIOS settings from a previous Clover install or use Clover Configurator's SMBIOS wizard.  In this example iMac 14.1.

 

Unmount and Move Virtual Disk Image to unRAID

1. Unmount install disk

diskutil unmount /dev/disk2

 

2. Move virtual disk image to unRAID share. For this example /mnt/user/domains/macOS/sierra_usb

 

Installation

1. Create a virtual disk where we will install Sierra. In this example it's a 90GB virtual disk.

qemu-img create -f raw /mnt/user/domains/macOS/vdisk1.img 90G

 

2. on unRAID, create a new custom VM.  NOTE: You'll need to add in Apple's key per usual. This example is for a GPU passthrough VM so modify for your GPU bios or delete this line altogether.  I've also passed through an entire USB controller (00:1d.0).

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>macOS</name>
  <uuid>cf5aa9c4-c70c-4b00-bb27-2125bc8fcedc</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="macOS" icon="/mnt/user/domains/macOS/OSX-10.12.png"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/cf5aa9c4-c70c-4b00-bb27-2125bc8fcedc_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      
      <source file='/mnt/user/domains/macOS/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      
      <source file='/mnt/user/domains/macOS/sierra_usb'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
     <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=OSX_KEY'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on,romfile=/mnt/user/domains/macOS/Powercolor.R9270.2048.131105.rom'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=00:1d.0,bus=root.1,addr=00.2'/>
  </qemu:commandline>
</domain>

 

3. Start the VM and at the Clover boot screen select Install macOS

4. Once in the installer, Open Disk Utility and Partition the 90GB virtual disk

5. Quit Disk Utility and install as usual

6. After the initial installation in finished the VM will reboot and again select Install macOS

7. The install will resume and reboot once again

8. At the clover boot screen, select your Sierra partition

9. Complete the Sierra installation wizard and arrive at the desktop

 

Post Installation

1. Open the Installer and choose the Sierra disk as the installation location.

2. Choose to customize and select Install for UEFI booting only

3. Select a theme for Clover

4. Under Drivers64UEFI, select DataHubDxe-64 AND OsxAptioFix2Drv

5. Complete the install action and open config.plist and make sure your resolution matches unRAID's OVMF resolution

<key>ScreenResolution</key>
<string>800x600</string>

 

6. Copy your SMBIOS settings from a previous Clover install or use Clover Configurator's SMBIOS wizard.  In this example iMac 14.1

 

 

7. Shutdown the VM

4. In unRAID, 8edit the macOS VM XML and remove the install disk

<disk type='file' device='disk'>
<driver name='qemu' type='raw'
<source file='/mnt/user/domains/macOS/sierra_usb'/>
<backingStore/>
<target dev='hda' bus='sata'/>
</disk>

 

5. Start the VM and you should boot to the Clover Boot screen

 

NOTES:

- I was able to get HDMI audio working with the attached HDMIAudio.kext.

- The patched Clover version is 3578 and is a version where kext injection is broken.  This was fixed in 3585.  Until the fixes are added to Clover builds or we get an updated patched version of Clover we'll have to install kexts to /System/Library/Extensions

 

 

Hi,

 

First thanks for your guide. 

 

I followed the instructions, and tried to boot using VNC. However the loading takes ages(hours and never completes) and I don't know why ...

 

Screenshot%202016-10-09%2017.55.10.png?dl=1

 

Here is my XML

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>macOS</name>
  <uuid>7b5d8655-5ac8-b824-eb8c-5435faf61f66</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="macOS" icon="/mnt/user/ISOS/OSX/OSX-10.12.png"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
    <nvram>/etc/libvirt/qemu/nvram/7b5d8655-5ac8-b824-eb8c-5435faf61f66_VARS-pure-efi.fd</nvram>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>Penryn</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/disks/Samsung_SSD_850_EVO_250GB_S2R6NX0H750197X/Mac OS Sierra/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/ISOS/OSX/sierra_usb'/>
      <backingStore/>
      <target dev='hda' bus='sata'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x02' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
     <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x07' function='0x0'/>
    </memballoon>
    <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'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=OSKEYS/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
    <qemu:arg value='-cpu'/>
    <qemu:arg value='Penryn,vendor=GenuineIntel'/>
  </qemu:commandline>
</domain>

 

Any idea? Thanks

 

"64 Character OSK Key (You will need a real Mac to get this and I will NOT provide one). Read the references below for more information on this."

Link to comment

Hey ALL just a quick notification for AMD users trying to do an unraid OSX VM with some AMD processors. If you have a Opteron like a 24XX you CANNOT do this with the needed extensions on both SIERRA and on El CAPITAN from what I can tell. The 2425 and 84XX and all prior do not have the needed cpu flags. Hence you cannot forge a cpu type of "core2duo" for El Cap or "Penryn" for SIERRA.

 

Save the hours effort just to get the ssse3 flag not supported (core2duo) and sse4.1/ssse3 (Penryn) notifications when trying to launch the kvm.

 

If I am wrong on this please do correct me. Is it possible to run 10.10 (coreduo) flag is supported with opteron 2425???? Maybe?

Link to comment

 

5. Use Disk Utility to Erase your virtual disk, with a name Untitled

 

 

My disk utility can't erase the virtual disk. It shows up as "Apple read/write media," Clicking erase defaults to format unknown in the drop down, but no matter what format I choose it says Erase process has failed. Click Done to continue. Further investigation shows the error could not unmount disk, but the disk was never mounted in the first place...

Link to comment

Hello, OSX El Capitan VM working great. I used this code to passthrough my USB drive:

 

<disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sda'/>
      <target dev='hdd' bus='sata'/>
    </disk>

 

It works but when I restart the server the drives get re-assigned so the USB HDD may not be sda anymore. I don't want to passthrough the entire PIC-E USB 3 card as it has 4 USB ports and I use the devices connected to the other ports for other VMs. Any way I can passthrough using the product/vendor ID?

 

Tried using below code as above post which also did not work for me:

 

<hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x05dc'/>
        <product id='0xa817'/>
      </source>
    </hostdev>

Link to comment

Hello, OSX El Capitan VM working great. I used this code to passthrough my USB drive:

 

<disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sda'/>
      <target dev='hdd' bus='sata'/>
    </disk>

 

It works but when I restart the server the drives get re-assigned so the USB HDD may not be sda anymore. I don't want to passthrough the entire PIC-E USB 3 card as it has 4 USB ports and I use the devices connected to the other ports for other VMs. Any way I can passthrough using the product/vendor ID?

 

Tried using below code as above post which also did not work for me:

 

<hostdev mode='subsystem' type='usb' managed='no'>
      <source>
        <vendor id='0x05dc'/>
        <product id='0xa817'/>
      </source>
    </hostdev>

 

you need to use disk id

 

so source part would look like this but with disk your disk id

 

<source dev='/dev/disk/by-id/ata-ST3500312CS_9VVERKB1'/>

Link to comment

Hi everyone,

 

Hoping to get some help as although I was able to get the VM to work through VNC, I haven't been able to get it to work with VGA passthrough. Here is the effort I get when I launch the VM:

 

internal error: process exited while connecting to monitor: 2016-10-26T01:29:58.415734Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=pcie.0,addr=00.0,multifunction=on,x-vga=on: PCI: slot 0 function 0 not available for vfio-pci, in use by mch

 

Here is my XML:

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX-El-Capitan-10.11-VNC</name>
  <uuid>0ba39646-7ba1-4d41-9602-e2968b2fe36d</uuid>
  <metadata/>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <kernel>/mnt/cache/domains/MacOS/enoch_rev2795_boot</kernel>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/domains/MacOS/ElCapitan.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
    <memballoon model='none'/>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=????????'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
  </qemu:commandline>
</domain>

 

Here are my PCI Devices:

 

00:00.0 Host bridge [0600]: Intel Corporation Skylake Host Bridge/DRAM Registers [8086:191f] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Skylake PCIe Controller (x16) [8086:1901] (rev 07)
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:1912] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)
00:16.3 Serial controller [0700]: Intel Corporation Sunrise Point-H KT Redirection [8086:a13d] (rev 31)
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] [8086:a102] (rev 31)
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)
00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #6 [8086:a115] (rev f1)
00:1c.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #7 [8086:a116] (rev f1)
00:1c.7 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #8 [8086:a117] (rev f1)
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a149] (rev 31)
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I219-LM [8086:15b7] (rev 31)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206 [GeForce GTX 950] [10de:1402] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fba] (rev a1)
3b:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
3c:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8113] (rev 01)
3e:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller [1b21:1242]

 

Here is my IOMMU Groups:

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.2
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:16.3
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.5
/sys/kernel/iommu_groups/6/devices/0000:00:1c.6
/sys/kernel/iommu_groups/6/devices/0000:00:1c.7
/sys/kernel/iommu_groups/6/devices/0000:3b:00.0
/sys/kernel/iommu_groups/6/devices/0000:3c:00.0
/sys/kernel/iommu_groups/6/devices/0000:3e:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1d.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.2
/sys/kernel/iommu_groups/8/devices/0000:00:1f.3
/sys/kernel/iommu_groups/8/devices/0000:00:1f.4
/sys/kernel/iommu_groups/9/devices/0000:00:1f.6

 

I have had no issue getting a Windows 10 VM with VGA passthrough to work.

 

Any help would be appreciated.

 

Thanks!

Link to comment

Thanks kode54

 

I have tried your suggestion and still get a similar but different error. I tried all numbers from 01.0 to 10.0 without success. Any further suggestion?

 

internal error: process exited while connecting to monitor: 2016-10-27T00:37:51.703645Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=pcie.0,addr=04.0,multifunction=on,x-vga=on: vfio: error opening /dev/vfio/1: Operation not permitted
2016-10-27T00:37:51.703671Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=pcie.0,addr=04.0,multifunction=on,x-vga=on: vfio: failed to get group 1
2016-10-27T00:37:51.703679Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=pcie.0,addr=04.0,multifunction=on,x-vga=on: Device initialization failed

Link to comment

 

5. Use Disk Utility to Erase your virtual disk, with a name Untitled

 

 

My disk utility can't erase the virtual disk. It shows up as "Apple read/write media," Clicking erase defaults to format unknown in the drop down, but no matter what format I choose it says Erase process has failed. Click Done to continue. Further investigation shows the error could not unmount disk, but the disk was never mounted in the first place...

 

Move the image to Desktop and format it from there. I was unable to format my image file on the root drive as well.

 

Thanks!

Link to comment

Hi everyone, any other suggestions to help my issue?

 

Thanks again!

 

Hi everyone,

 

Hoping to get some help as although I was able to get the VM to work through VNC, I haven't been able to get it to work with VGA passthrough. Here is the effort I get when I launch the VM:

 

internal error: process exited while connecting to monitor: 2016-10-26T01:29:58.415734Z qemu-system-x86_64: -device vfio-pci,host=01:00.0,bus=pcie.0,addr=00.0,multifunction=on,x-vga=on: PCI: slot 0 function 0 not available for vfio-pci, in use by mch

 

Here is my XML:

 

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>OSX-El-Capitan-10.11-VNC</name>
  <uuid>0ba39646-7ba1-4d41-9602-e2968b2fe36d</uuid>
  <metadata/>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-2.5'>hvm</type>
    <kernel>/mnt/cache/domains/MacOS/enoch_rev2795_boot</kernel>
    <boot dev='hd'/>
    <bootmenu enable='yes'/>
  </os>
  <features>
    <acpi/>
  </features>
  <cpu mode='custom' match='exact'>
    <model fallback='allow'>core2duo</model>
  </cpu>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/domains/MacOS/ElCapitan.img'/>
      <target dev='hda' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x01' function='0x0'/>
    </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='dmi-to-pci-bridge'>
      <model name='i82801b11-bridge'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1e' function='0x0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <model name='pci-bridge'/>
      <target chassisNr='2'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:00:20:30'/>
      <source bridge='br0'/>
      <model type='e1000-82545em'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x03' function='0x0'/>
    </interface>
    <memballoon model='none'/>
  </devices>
  <seclabel type='none' model='none'/>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.0,bus=pcie.0,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=pcie.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-mouse'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=????????'/>
    <qemu:arg value='-smbios'/>
    <qemu:arg value='type=2'/>
  </qemu:commandline>
</domain>

 

Here are my PCI Devices:

 

00:00.0 Host bridge [0600]: Intel Corporation Skylake Host Bridge/DRAM Registers [8086:191f] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Skylake PCIe Controller (x16) [8086:1901] (rev 07)
00:02.0 VGA compatible controller [0300]: Intel Corporation HD Graphics 530 [8086:1912] (rev 06)
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31)
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31)
00:16.0 Communication controller [0780]: Intel Corporation Sunrise Point-H CSME HECI #1 [8086:a13a] (rev 31)
00:16.3 Serial controller [0700]: Intel Corporation Sunrise Point-H KT Redirection [8086:a13d] (rev 31)
00:17.0 SATA controller [0106]: Intel Corporation Sunrise Point-H SATA controller [AHCI mode] [8086:a102] (rev 31)
00:1c.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #1 [8086:a110] (rev f1)
00:1c.5 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #6 [8086:a115] (rev f1)
00:1c.6 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #7 [8086:a116] (rev f1)
00:1c.7 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #8 [8086:a117] (rev f1)
00:1d.0 PCI bridge [0604]: Intel Corporation Sunrise Point-H PCI Express Root Port #9 [8086:a118] (rev f1)
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a149] (rev 31)
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31)
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31)
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31)
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I219-LM [8086:15b7] (rev 31)
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206 [GeForce GTX 950] [10de:1402] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:0fba] (rev a1)
3b:00.0 Ethernet controller [0200]: Intel Corporation I210 Gigabit Network Connection [8086:1533] (rev 03)
3c:00.0 PCI bridge [0604]: Tundra Semiconductor Corp. Device [10e3:8113] (rev 01)
3e:00.0 USB controller [0c03]: ASMedia Technology Inc. ASM1142 USB 3.1 Host Controller [1b21:1242]

 

Here is my IOMMU Groups:

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/3/devices/0000:00:14.2
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:16.3
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.5
/sys/kernel/iommu_groups/6/devices/0000:00:1c.6
/sys/kernel/iommu_groups/6/devices/0000:00:1c.7
/sys/kernel/iommu_groups/6/devices/0000:3b:00.0
/sys/kernel/iommu_groups/6/devices/0000:3c:00.0
/sys/kernel/iommu_groups/6/devices/0000:3e:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1d.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.2
/sys/kernel/iommu_groups/8/devices/0000:00:1f.3
/sys/kernel/iommu_groups/8/devices/0000:00:1f.4
/sys/kernel/iommu_groups/9/devices/0000:00:1f.6

 

I have had no issue getting a Windows 10 VM with VGA passthrough to work.

 

Any help would be appreciated.

 

Thanks!

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.