[SOLVED] Non-working IGD pass-through with i3-8100 for VM


T0a

Recommended Posts

I struggle with passing the iGPU of my Intel Core i3-8100 CPU to a Catalina VM, created via Macinabox. In order to do so, I changed the selection under graphics card of my VM template from "VNC" to "Intel 8th Gen Core Processor Gaussian Mixture Model (00:02:0)". Once I click apply, the error "XML error: Attempted double use of PCI Address 0000:00:02.0" pops up.

 

The following shows my so far working XML definition for the Catalina VM (OSK clean) with VNC as selected graphics card. The VM boots as expected. However, I cannot change the display resolution in the OSX settings due to the missing iGPU pass-through.

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>MacinaboxCatalina</name>
  <uuid>a-uuid-here</uuid>
  <description>MacOS Catalina</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="MacOS" icon="/mnt/user/domains/MacinaboxCatalina/icon/catalina.png" os="Catalina"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Catalina-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/macos_disk.img'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:2c:45:1e'/>
      <source bridge='br0'/>
      <model type='vmxnet3'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-usb'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=clean'/>
    <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>

 

Further my system device output from the Tools section:

IOMMU group 0:	[8086:3e1f] 00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] (rev 08)
IOMMU group 1:	[8086:3e91] 00:02.0 VGA compatible controller: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model
IOMMU group 2:	[8086:a379] 00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
IOMMU group 3:	[8086:a36d] 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
		[8086:a36f] 00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
IOMMU group 4:	[8086:a360] 00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
IOMMU group 5:	[8086:a352] 00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
IOMMU group 6:	[8086:a309] 00:1f.0 ISA bridge: Intel Corporation Device a309 (rev 10)
		[8086:a348] 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
		[8086:a323] 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
		[8086:a324] 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
		[8086:15bb] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)

 

I already had a look at this thread. But I cannot identify duplicate lines, since the template is not changed after clicking apply due to the mentioned error.  Does someone has a similar problem or know how to solve it? Maybe someone owns the same CPU having similar problems in the past? And follow-up question: Is it even possible to use the integrated graphics with OSX (reference)?

 

-----

 

@SpaceInvaderOne: Thank you so much for this docker container. I just spotted a small typo in the log output of the container:

 

Quote

The reference /image below refers to where you mapped that folder in the docker template on your server
(normally to /mnt/user/doamins

 

Edited by T0a
Link to comment
5 hours ago, T0a said:

I struggle with passing the iGPU of my i3-8100 CPU to the Catalina VM, created via MacInABox. In order to do so, I change selection under graphics card of my VM template from "VNC" to "Intel 8th Gen Core Processor Gaussian Mixture Model (00:02:0)". Once I click apply, the error "XML error: Attempted double use of PCI Address 0000:00:02.0" pops up.

 

The following shows my so far working XML definition for the Catalina VM (OSK clean) with VNC as selected graphics card. The VM boots as expected. However, I cannot change the display resolution in the OSX settings due to the missing iGPU pass-through.

 

 

Further my system device output from the Tools section:


IOMMU group 0:	[8086:3e1f] 00:00.0 Host bridge: Intel Corporation 8th Gen Core 4-core Desktop Processor Host Bridge/DRAM Registers [Coffee Lake S] (rev 08)
IOMMU group 1:	[8086:3e91] 00:02.0 VGA compatible controller: Intel Corporation 8th Gen Core Processor Gaussian Mixture Model
IOMMU group 2:	[8086:a379] 00:12.0 Signal processing controller: Intel Corporation Cannon Lake PCH Thermal Controller (rev 10)
IOMMU group 3:	[8086:a36d] 00:14.0 USB controller: Intel Corporation Cannon Lake PCH USB 3.1 xHCI Host Controller (rev 10)
		[8086:a36f] 00:14.2 RAM memory: Intel Corporation Cannon Lake PCH Shared SRAM (rev 10)
IOMMU group 4:	[8086:a360] 00:16.0 Communication controller: Intel Corporation Cannon Lake PCH HECI Controller (rev 10)
IOMMU group 5:	[8086:a352] 00:17.0 SATA controller: Intel Corporation Cannon Lake PCH SATA AHCI Controller (rev 10)
IOMMU group 6:	[8086:a309] 00:1f.0 ISA bridge: Intel Corporation Device a309 (rev 10)
		[8086:a348] 00:1f.3 Audio device: Intel Corporation Cannon Lake PCH cAVS (rev 10)
		[8086:a323] 00:1f.4 SMBus: Intel Corporation Cannon Lake PCH SMBus Controller (rev 10)
		[8086:a324] 00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Lake PCH SPI Controller (rev 10)
		[8086:15bb] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)

 

I already had a look at this thread. But I cannot identify duplicate lines, since the template is not changed after clicking apply due to the mentioned error.  Does someone has a similar problem or know how to solve it? Maybe someone owns the same CPU having similar problems in the past? And follow-up question: Is it even possible to use the integrated graphics with OSX (reference)?

 

-----

 

@SpaceInvaderOne: Thank you so much for this docker container. I just spotted a small typo in the log output of the container:

 

 

If you can get the passthrough to work with other vms it should work. 

Please try this xml in place of what you have. This xml has your gpu passed through in it.

However when you start the vm you will have no keyboard or mouse as I couldnt put that in for you but that should be easy to do.

Just use this as is to see if it boots with the gpu and gets to the desktop.

 

Remember to put both your uuid and osk key back into the xml

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>MacinaboxCatalina2</name>
 <uuid>a-uuid-here</uuid>
  <description>MacOS Catalina</description>
  <metadata>
    <vmtemplate xmlns="unraid" name="MacOS" icon="/mnt/user/domains/MacinaboxCatalina/icon/catalina.png" os="Catalina"/>
  </metadata>
  <memory unit='KiB'>4194304</memory>
  <currentMemory unit='KiB'>4194304</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>2</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-q35-3.1'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/MacinaboxCatalina/ovmf/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none'>
    <topology sockets='1' cores='2' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Clover.qcow2'/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/Catalina-install.img'/>
      <target dev='hdd' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='3'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/MacinaboxCatalina/macos_disk.img'/>
      <target dev='hde' bus='sata'/>
      <address type='drive' controller='0' bus='0' target='0' unit='4'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0x12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:2c:45:1e'/>
      <source bridge='br0'/>
      <model type='vmxnet3'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-usb'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='usb-kbd,bus=usb-bus.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='isa-applesmc,osk=clean'/>
    <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
On 11/2/2019 at 10:49 PM, SpaceInvaderOne said:

If you can get the passthrough to work with other vms it should work. 

Please try this xml in place of what you have. This xml has your gpu passed through in it.

However when you start the vm you will have no keyboard or mouse as I couldnt put that in for you but that should be easy to do.

Just use this as is to see if it boots with the gpu and gets to the desktop.

 

Remember to put both your uuid and osk key back into the xml

 

 

Thanks for this quick response. When you answered I already stumbled across Advanced OSX VM techniques for KVM in unRAID, which helped me to come up with a similar hostdev section as yours. I think you mixed slot and bus values in your snippet causing "Device 0000:02:00.0 not found" error.

 

Quote

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

 

I can save the template with this definition above without errors. However, when starting the VM the log gives me the following errors - UnRaid indicates the VM as started though:

 

2019-11-02 22:04:38.934+0000: Domain id=5 is tainted: high-privileges
2019-11-02 22:04:38.934+0000: Domain id=5 is tainted: custom-argv
2019-11-02 22:04:38.934+0000: Domain id=5 is tainted: host-cpu
char device redirected to /dev/pts/0 (label charserial0)
2019-11-02T22:04:39.467427Z qemu-system-x86_64: -device vfio-pci,host=00:02.0,id=hostdev0,bus=pci.4,addr=0x0: Failed to mmap 0000:00:02.0 BAR 2. Performance may be slow
2019-11-02T22:04:40.089368Z qemu-system-x86_64: vfio-pci: Cannot read device rom at 0000:00:02.0
Device option ROM contents are probably invalid (check dmesg).

I checked with a monitor connected to the DP on my hardware, but got no signal. Not able to dump the VGA BIOS ROM either:

$ echo 1 > /sys/bus/pci/devices/0000\:00\:02.0/enable
$ echo 1 > /sys/bus/pci/devices/0000\:00\:02.0/rom
$ sudo cat /sys/bus/pci/devices/0000\:00\:02.0/rom > /tmp/myigpu.rom
cat: '/sys/bus/pci/devices/0000:00:02.0/rom': Input/output error

 

Also found hardware errors in "dmesg":

 

[    0.189137] TSC deadline timer enabled
[    0.189148] smpboot: CPU0: Intel(R) Core(TM) i3-8100 CPU @ 3.60GHz (family: 0x6, model: 0x9e, stepping: 0xb)
[    0.189191] mce: [Hardware Error]: Machine check events logged
[    0.189194] mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 6: ee00000000801136
[    0.189195] mce: [Hardware Error]: TSC 0 ADDR 8cc3ff00 MISC 43040000086 
[    0.189197] mce: [Hardware Error]: PROCESSOR 0:906eb TIME 1572729386 SOCKET 0 APIC 0 microcode b4
[    0.189199] mce: [Hardware Error]: Machine check events logged
[    0.189200] mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 7: ee00000000801136
[    0.189201] mce: [Hardware Error]: TSC 0 ADDR 8cc3ff40 MISC 43040000086 
[    0.189204] mce: [Hardware Error]: PROCESSOR 0:906eb TIME 1572729386 SOCKET 0 APIC 0 microcode b4
[    0.189205] mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 8: ee00000000801136
[    0.189206] mce: [Hardware Error]: TSC 0 ADDR 8cc3ff80 MISC 43040000086 
[    0.189208] mce: [Hardware Error]: PROCESSOR 0:906eb TIME 1572729386 SOCKET 0 APIC 0 microcode b4
[    0.189210] mce: [Hardware Error]: CPU 0: Machine Check: 0 Bank 9: ee00000000801136
[    0.189211] mce: [Hardware Error]: TSC 0 ADDR 8cc3ffc0 MISC 43040000086 
[    0.189213] mce: [Hardware Error]: PROCESSOR 0:906eb TIME 1572729386 SOCKET 0 APIC 0 microcode b4
[    0.189232] Performance Events: PEBS fmt3+, Skylake events, 32-deep LBR, full-width counters, Intel PMU driver.
[...]
[ 1709.638052] DMAR: DRHD: handling fault status reg 3
[ 1709.638056] DMAR: [DMA Read] Request device [00:02.0] fault addr 8b8c0000 [fault reason 06] PTE Read access is not set
[ 1709.639210] DMAR: DRHD: handling fault status reg 3
[ 1709.639214] DMAR: [DMA Read] Request device [00:02.0] fault addr 8b8c0000 [fault reason 06] PTE Read access is not set
[ 1709.640368] DMAR: DRHD: handling fault status reg 3
[ 1709.640372] DMAR: [DMA Read] Request device [00:02.0] fault addr 8b8e6000 [fault reason 06] PTE Read access is not set
[ 1709.641531] DMAR: DRHD: handling fault status reg 3
[ 1710.114661] vfio_ecap_init: 0000:00:02.0 hiding ecap 0x1b@0x100
[ 1710.115413] vfio-pci 0000:00:02.0: BAR 2: can't reserve [mem 0x4000000000-0x400fffffff 64bit pref]
[ 1710.743259] resource sanity check: requesting [mem 0x000c0000-0x000dffff], which spans more than PCI Bus 0000:00 [mem 0x000c0000-0x000c3fff window]
[ 1710.743263] caller pci_map_rom+0x7a/0x15e mapping multiple BARs
[ 1710.743277] vfio-pci 0000:00:02.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 1757.150276] br0: port 2(vnet0) entered disabled state
[ 1757.151237] device vnet0 left promiscuous mode

 

cat syslog | grep "mcelog"
Nov  3 10:41:12 Zeus nerdpack: Installing mcelog-161 package...
Nov  3 10:41:12 Zeus root: Installing mcelog-161 package... 
Nov  3 10:43:10 Zeus sudo:     root : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/usr/sbin/mcelog --client
Nov  3 10:44:21 Zeus mcelog: failed to prefill DIMM database from DMI data
Nov  3 10:44:21 Zeus mcelog: Kernel does not support page offline interface
Nov  3 10:46:16 Zeus sudo:     root : TTY=pts/1 ; PWD=/var/log ; USER=root ; COMMAND=/usr/sbin/mcelog --client
root@Zeus:/var/log# mcelog --client
root@Zeus:/var/log# #EMPTY#
root@Zeus:/var/log# cat /var/log/mcelog
root@Zeus:/var/log# #EMPTY#

 

Seems like mcelog does not work on my System due to lack of kernel support? Also, mcelog never outputs anything so I suspect it is not functional.

 

Am I missing something @SpaceInvaderOne? Looks like "Fix Common Problems" Plugin also reports these hardware issues. So I attached my diagnostics too.  Not sure, if the hardware errors are related to the non-working iGPU pass-through. Just bought my UnRaid Licence today and installed it to my new assembled server :(

 

Maybe it is a good idea to put this issue in its own thread, since it has nothing to do with MacInABox anymore.

 

Update:

 

- Got rid of "vfio-pci 0000:00:02.0: BAR 2: can't reserve [mem 0x4000000000-0x400fffffff 64bit pref]" with "append initrd=/bzroot video=efifb:off" (debugged with /proc/iomem). Still get "vfio-pci: Cannot read device rom at 0000:00:02.0
Device option ROM contents are probably invalid"

 

 

Edited by T0a
Link to comment

Thank you. Looks like this mailing list post describes my current problem despite me having also (maybe unrelated) strange hardware errors.  I tried the recommendations from this thread  getting still the "Input/output error" error.

 

Can somebody provide me a VGA BIOS ROM for Intel core i3-8100 or UHD 630 IDG? I think this is my last option worth trying.

$ echo 1 > /sys/devices/pci0000:00/your-i3-integrated-graphics/rom
$ cat /sys/devices/pci0000:00/your-i3-integrated-graphics/rom > vbios.dump
$ echo 0 > /sys/devices/pci0000:00/your-i3-integrated-graphics/rom

 

I think about buying a ZOTAC GeForce® GT 710 ZONE Edition 2GB DDR3  (or GT730 since ROM is attached here) as a fallback, when I cannot get IDG pass-through with the i3-8100 working. According to @1812 (reference), these cards have native driver support for OSX and should work well with pass-through via UnRaid.

 

Edited by T0a
Link to comment
5 hours ago, T0a said:

Thank you. Looks like this mailing list post describes my current problem despite me having also (maybe unrelated) strange hardware errors.  I tried the recommendations from this thread  getting still the "Input/output error" error.

 

Can somebody provide me a VGA BIOS ROM for Intel core i3-8100 or UHD 630 IDG? I think this is my last option worth trying.


$ echo 1 > /sys/devices/pci0000:00/your-i3-integrated-graphics/rom
$ cat /sys/devices/pci0000:00/your-i3-integrated-graphics/rom > vbios.dump
$ echo 0 > /sys/devices/pci0000:00/your-i3-integrated-graphics/rom

 

I think about buying a ZOTAC GeForce® GT 710 ZONE Edition 2GB DDR3  (or GT730 since ROM is attached here) as a fallback, when I cannot get IDG pass-through with the i3-8100 working. According to @1812 (reference), these cards have native driver support for OSX and should work well with pass-through via UnRaid.

 

 

Passing through an igpu has always been more problematic than a regular gpu. 

I guess you havent had sucess with igpu passthough with any vms as yet.

Using a regular gpu will be much easier. I beleive the gt730 supports metal so should be okay in macOS. The gpu that i use for macOS is a sapphire rx570 pulse itx which works also natively.

Link to comment
  • 6 months later...

Passthrough solved for Windows:

Passthrough for Linux:

 

Unraid Settings:

- Host boots in UEFI (no legacy mode no CSM)

- "Unraid OS" boot mode

- Permit UEFI boot: Yes

- Kernel parameter: append video=efifb:off,vesafb:off modprobe.blacklist=i2c_i801,i2c_smbus,snd_hda_intel,snd_hda_codec_hdmi,i915,drm,drm_kms_helper,i2c_algo_bit

- VFIO-PCI Config to stub 00:02.0

VM Settings:

- Linux Mint 19.3, SeaBIOS, q35-4.2

PCI Passthrough

Quote

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

 

Edited by T0a
  • Thanks 1
Link to comment
  • 8 months later...

Any chance on how to make it work for macinabox? I tried passing it via the VM settings as a 2nd Graphics Card, and I set it in the OpenCore config file as a compute igpu (doesn't drive a display) following this guide https://dortania.github.io/OpenCore-Install-Guide/config.plist/comet-lake.html#deviceproperties Adding "PciRoot(0x0)/Pci(0x2,0x0)" in deviceprop and AAPL,ig-platform-id with 0300C89B. It boot to the boot options, the apple logo starts loading and then crashes

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.