Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[7.1.2] Intel UHD 630 passthrough no longer works - Error 43

  • Closed
  • Urgent

Hi,

I have a Windows 10 VM with the iGPU passed-through. Initially it was a UHD 630 (Core i3-9100) and then became a UHD P630 when I upgraded to the Xeon E-2278G.

It has always worked perfectly up until Unraid 6.12.15.

Few days ago I upgraded to Unraid 7.1.2 and now the iGPU no longer works, triggering an Error 43 in Windows.

This is the XML for the VM:

<?xml version='1.0' encoding='UTF-8'?>

<domain type='kvm' id='1'>

<name>Windows 10</name>

<uuid>4668e1a1-f982-e7a0-fd10-3915a90c7b3a</uuid>

<metadata>

<vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10" iconold="windows.png" webui=""/>

</metadata>

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

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

<memoryBacking>

<nosharepages/>

</memoryBacking>

<vcpu placement='static'>8</vcpu>

<cputune>

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

<vcpupin vcpu='1' cpuset='8'/>

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

<vcpupin vcpu='3' cpuset='10'/>

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

<vcpupin vcpu='5' cpuset='12'/>

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

<vcpupin vcpu='7' cpuset='14'/>

</cputune>

<resource>

<partition>/machine</partition>

</resource>

<os>

<type arch='x86_64' machine='pc-i440fx-7.2'>hvm</type>

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

<nvram>/etc/libvirt/qemu/nvram/4668e1a1-f982-e7a0-fd10-3915a90c7b3a_VARS-pure-efi-tpm.fd</nvram>

</os>

<features>

<acpi/>

<apic/>

<hyperv mode='custom'>

<relaxed state='on'/>

<vapic state='on'/>

<spinlocks state='on' retries='8191'/>

<vpindex state='on'/>

<synic state='on'/>

<stimer state='on'/>

<vendor_id state='on' value='none'/>

</hyperv>

</features>

<cpu mode='host-passthrough' check='none' migratable='on'>

<topology sockets='1' dies='1' cores='4' threads='2'/>

<cache mode='passthrough'/>

</cpu>

<clock offset='localtime'>

<timer name='hpet' present='no'/>

<timer name='hypervclock' present='yes'/>

</clock>

<on_poweroff>destroy</on_poweroff>

<on_reboot>restart</on_reboot>

<on_crash>restart</on_crash>

<devices>

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

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

<driver name='qemu' type='raw' cache='writeback' discard='ignore'/>

<source file='/mnt/zfs/VMs/Windows 10/vdisk1.img' index='1'/>

<backingStore/>

<target dev='hdc' bus='virtio'/>

<serial>vdisk1</serial>

<boot order='1'/>

<alias name='virtio-disk2'/>

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

</disk>

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

<alias name='pci.0'/>

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='1'/>

<alias name='pci.1'/>

<address type='pci' domain='0x0000' bus='0x00' slot='0x0f' 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='0x00' slot='0x03' function='0x0'/>

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='3'/>

<alias name='pci.3'/>

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

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='4'/>

<alias name='pci.4'/>

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

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='5'/>

<alias name='pci.5'/>

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

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='6'/>

<alias name='pci.6'/>

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

</controller>

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

<model name='pci-bridge'/>

<target chassisNr='7'/>

<alias name='pci.7'/>

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

</controller>

<controller type='virtio-serial' index='0'>

<alias name='virtio-serial0'/>

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

</controller>

<controller type='usb' index='0' model='qemu-xhci' ports='15'>

<alias name='usb'/>

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

</controller>

<interface type='bridge'>

<mac address='52:54:00:08:9a:35'/>

<source bridge='br0'/>

<target dev='vnet0'/>

<model type='virtio-net'/>

<alias name='net0'/>

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

</interface>

<serial type='pty'>

<source path='/dev/pts/0'/>

<target type='isa-serial' port='0'>

<model name='isa-serial'/>

</target>

<alias name='serial0'/>

</serial>

<console type='pty' tty='/dev/pts/0'>

<source path='/dev/pts/0'/>

<target type='serial' port='0'/>

<alias name='serial0'/>

</console>

<channel type='unix'>

<source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-1-Windows 10/org.qemu.guest_agent.0'/>

<target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>

<alias name='channel0'/>

<address type='virtio-serial' controller='0' bus='0' port='1'/>

</channel>

<input type='tablet' bus='usb'>

<alias name='input0'/>

<address type='usb' bus='0' port='1'/>

</input>

<input type='mouse' bus='ps2'>

<alias name='input1'/>

</input>

<input type='keyboard' bus='ps2'>

<alias name='input2'/>

</input>

<tpm model='tpm-tis'>

<backend type='emulator' version='2.0' persistent_state='yes'/>

<alias name='tpm0'/>

</tpm>

<graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='it' sharePolicy='ignore'>

<listen type='address' address='0.0.0.0'/>

</graphics>

<audio id='1' type='none'/>

<video>

<model type='qxl' ram='131072' vram='65536' vram64='64512' vgamem='65536' heads='1' primary='yes'/>

<alias name='video0'/>

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

</video>

<hostdev mode='subsystem' type='pci' managed='yes'>

<driver name='vfio'/>

<source>

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

</source>

<alias name='hostdev0'/>

<rom file='/mnt/zfs/data/i915dev/C246M-WU4-vbios.rom'/>

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

</hostdev>

<memballoon model='none'/>

</devices>

<seclabel type='dynamic' model='dac' relabel='yes'>

<label>+0:+100</label>

<imagelabel>+0:+100</imagelabel>

</seclabel>

</domain>

I've attached the diagnostics from 7.1.2, but I don't think that the log will show much about it.

I've now downgraded back to 6.12.15 and the passthrough works again as usual. I can attach diagnostic for that too, if necessary

jarvis-diagnostics-20250524_1818.zip

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.