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.

Error 43 in Device Manager - NVIDIA NVS 300 video card in Dell T440 with passthrough to Windows 11 VM

Featured Replies

I installed an NVIDIA NVS 300 video card in my Dell T440. I know it is old - don't need any performance or GPU, just a basic HDMI video output that can be used with a Windows 11 VM. I didn't want to use my last PCIe x16 slot, so I found a video card with a PCIe X1 interface.

I found from prior experience that passing through the Matrox video that is on the T440 motherboard to the Windows 11 VM crashes Unraid when the VM tries to restart. Apparently the passthrough doesn't share nicely with the T440 BIOS and/or Unraid's boot console.

Now I have the NVS 300 installed.

It is recognized by Unraid, and I have bound it to VFIO at boot:

Screenshot 2025-09-27 172307.png

I have passed it through to the Windows 11 VM as a multifunction device with this XML:

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

      <driver name='vfio'/>

      <source>

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

      </source>

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

    </hostdev>

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

      <driver name='vfio'/>

      <source>

        <address domain='0x0000' bus='0x17' slot='0x0' function='0x1'/>

      </source>

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

    </hostdev>

The Windows 11 VM boots and recognizes the NVS300 in Device Manager.

But it has "problems" - Error code 43.

Screenshot 2025-09-28 104728.png

Searching on Gemini on this error, it recommended "spoofing" the hypervisor with the following XML code which I added to the VM's configuration, modifying the <features> section like this:

  <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='1234567890ab'/>

    </hyperv>

    <kvm>

  <hidden state='on'/>

</kvm>

  </features>

With that change I still have the same error.

Gemini now recommends adding a VBIOS ROM.

I was able to read the ROM using GPU-Z and now have a file GT218.rom.

The recommendation is to add a tag to the <hostdev> block like this:

Screenshot 2025-09-28 105629.png

(apologies for image - for some reason text Paste has stopped working...)

I have not tried this yet. I'm going to be working on other things for a few days, so I wanted to get the input from experts here in the meantime before proceeding.

Edited by timg11

  • Author

I have continued to work on this problem, and I'm apparently at the end of the line for suggestions from Gemini.

Adding the ROM (VBIOS Passthrough) did not help.

The VBIOS I read from the NVS300 using GPU-Z did not work.

I downloaded 3 other BIOS files and tried them:

https://www.techpowerup.com/vgabios/216753/216753

 VGA BIOS Collection GT218 NVIDIA GT218 NVIDIA GT218 1024 MB BIOS

216753.rom

10/04/2025  02:51 PM            64,000 216753.rom

 

https://www.techpowerup.com/vgabios/145002/145002

 VGA BIOS Collection GT 218 NVIDIA GT 218 NVIDIA GT 218 1024 MB BIOS

145002.rom

10/04/2025  02:53 PM            64,000 145002.rom

 

https://www.techpowerup.com/vgabios/169757/169757

 VGA BIOS Collection gt218 NVIDIA gt218 NVIDIA gt218 512 MB BIOS

169757.rom

10/04/2025  02:55 PM            61,440 169757.rom

Since these were not the full size of the ROM, I padded them to 65536 bytes using dd

dd if=/dev/zero bs=1 count=1536 >> GT218_1GB_A.rom

I ended up with

root@T440:/mnt/user/isos/vbios# ls -l

total 256

-rwxrw-rw- 1 root root 65536 Oct  4 14:45 GT218.rom*

-rwxrw-rw- 1 root root 65536 Oct  4 15:09 GT218_512MB_145.rom*

-rwxrw-rw- 1 root root 65536 Oct  4 15:06 GT218_512MB_169.rom*

-rwxrw-rw- 1 root root 65536 Oct  4 15:09 GT218_512MB_216.rom*

root@T440:/mnt/user/isos/vbios#

I tested each of these, editing the XML while the VM was shut down. None worked - always error 43.

Gemini suggested adding these lines to the <hostdev> for the NVS300:

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

    <qemu:arg value='pci-assign,id=hostdev1,x-vga=on'/>

I didn't notice until later, but the VM system removed these lines silently. Later when I noticed, Gemini said to add them a different way, but that failed due to QEMU errors.

Gemini also tried adding these to the <hyperv> block

    <ioapic state='on'/>  <-- NEW FIX LINE 1

    <msrs state='on'/>    <-- NEW FIX LINE 2

That failed with "VM creation error unsupported configuration: unsupported HyperV Enlightenment feature: ioapic" when saving the XML

I removed the ioapic, and it still failed with " VM creation error  : unsupported configuration: unsupported HyperV Enlightenment feature: msrs "

Then it tried a "Host Bridge Fix"

  <qemu:commandline>

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

    <qemu:arg value='ich9-rom'/>

  </qemu:commandline>

When starting the VM, this caused this error: "Execution error -- internal error: process exited while connecting to monitor: 2025-10-04T20:50:45.374359Z qemu-system-x86_64: -device ich9-rom: 'ich9-rom' is not a valid device model name "

Then Gemini suggested . Add the ROM Bar Flag. modifying the rom line like this:

    <rom file='/mnt/user/isos/vbios/GT218_512MB_145.rom' bar='off'/>

Didn't work =- still error 43.

At this point Gemini said to remove the previously added x-vga=on lines.

They were gone. Gemini said that libvert will remove things it doesn't understand.

So we tried doing it a different way:

  <qemu:commandline>

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

    <qemu:arg value='pci-assign,id=hostdev1,x-vga=on'/>

  </qemu:commandline>

</domain>

That resulted in this error when starting the VM: " Execution error -- internal error: process exited while connecting to monitor: qemu-system-x86_64: -set-device: invalid option "

Gemini is out of options. I asked if there are any changes in Unraid 7.1.4 since 7.0.1 that might improve QEMU in this case. It said "The release notes do not explicitly confirm that the underlying QEMU or libvirt packages have been updated to support the specific features that failed"

Does anyone have any further suggestions on how to get this to work?

I've attached the transcript of my multi-day session with Gemini I am trying to make an NVIDIA NVS300 video card available to Windows in a VM running in Unraid 7.docx , as well as my XML for the VM. XML-2025-10-04f.xml

Edited by timg11

  • Community Expert

Try using Claude instead of Gemini, it's free but it's limited per few hours. Claude is more powerful when it comes to coding, he can suggest you betters bast scripts/XML

Sorry I can't help other than suggesting another AI.

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...

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.