GPU RTX 3090 passthrough to Windows 10 guide without vbios (Code 43 bypass)


Recommended Posts

Hi All,

I've tried every guide on here, including Spaceinvader's excellent tutorial. Code 43 was an issue.

I became frustrated with trying to dump the vbios, download copies, etc.

 

I've managed to sort this, testing it 3 times flawlessly without the vbios being loaded.

I'll keep this as brief as possible, hopefully I will help somebody and give something back to the community. If I've helped, let me know.

 

My set up:

unRaid 6.9 and I refined the process on 6.10 rc2 and now rc3. The below settings reflect unRaid 6.10 rc2 and rc3

Processor: AMD 5950x

Board: Aorus extreme X570

GPU: Aorus Extreme Waterforce WB 24gb.

 

Bios settings:

SVM mode: Enabled

PCIEX16 SLOT: Gen 3 (I have a Linkup PCIE 4 adapter and this is what they recommend)

PCIE SLOT CONFIGURATION: Gen 3 (Changed to Gen 4 later with no problems and not relevant just commenting)

IOMMU: Enabled

BIOS: F34

ACE: ENABLE

CSM Support: Enable

STORAGE BOOT OPTION CONTROL: LEGACY

OTHER PCI DEVICE ROM PRIORITY: UEFI Only

 

unRaid Boot configuration:

 

kernal /bzimage

append initrd=/bzroot video=efifb:off acpi_enforce_resources=lax pcie_acs_override=downstream

 

Windows 10 vm:

 

Machine: Q35-5.0

Bios: Seabios

Hyper-v: Yes

USB Controller: 2.0 (EHCI)

VirtIO Drivers: virtio-win-0.1.190.lso

 

Graphics card: VNC (change later to actual graphics card)

Sound: None.

 

Process:

 

Boot with Windows 10 iso installation.

Switch to VNC and follow installation steps.

Skip network enable and stick to the bare minimum, ie. no Cortana and the rest of the rubbish.

After installation, go to Device Manager

You will notice several PCI devices that are not installed.

Right click and select the ethernet device and install via browse. Select your virtual drivers iso. In my case E:\

This will install Redhat drivers for your br0 virtual ethernet device. After installation, you can select the other devices with missing drivers or wait and they will install on their own. (You may find one that doesn't install PCI Simple Communications if I recall correctly)

Go to Windows Updater and install Windows Update, including .NET framework.

Install tight VNC server and configure for remote access.

Record your IP address, so you can access remotely.

 

Reboot and check that you can access your VM remotely using tight VNC. (I suggest making the ip address static, you can do this through your router in your leasing pool).

 

Download the drivers packages for your graphics card. In my case, I downloaded both:

1. 461.72-desktop-win10-64bit-international-dch-whql

2. 496.13-desktop-win10-win11-64bit-international-dch-whql

 

Shutdown your VM and change settings:

 

(You should have already reserved your graphics card in Tools / System Devices and restarted for this to take effect)

Remember, that you should be doing this remotely on unRaid as the efifb=off will not allow you to use the graphics card, as its also being handed off for use in the VM.

 

Graphics: Nvidia Geforce RTX 3090 (0d:00.0)

Graphics card ROM bios: none

Sound card: NVIDIA GA102 HD Audio Controller (0d:00:1)

 

Press update but do not start the VM yet.

Edit the configuration of the VM again but select "form view" in top right hand corner.

Find your graphics card mapping, in my case on bus='0x04'

1. add multifunction='on' to the first line of your graphics card.

2. Change the bus for the HD audio of the card to bus='0x04' as well and the function to function='0x1'

 

I've copied the relevant section of mine below. If this does not make sense, then you need to look at Spaceinvader's tutorials and a post by Skitals here on the forum first.

 

Quote

    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0d' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
    </hostdev>

 

Click update and start the VM ( Remember, if you change the config settings in the GUI, non-form section of the configuration for the VM, you will lose these entries and have to re-add them).

Start your VM.

VNC into your VM and login.

I suggest being patient and waiting to see if Windows will find your graphics card itself.

Check the notification window by selecting it from the far right of the task bar. Check if there is a message that its trying to find the right device driver.

In Device Manager, check if the graphics card has been detected. If it has, check if it has a bang error message that says it cannot be started because of an issue code 43.

If you have this, don't worry. If you don't then we need to find it first.

 

Importantly, check that all the other devices are installed. Check using View Hidden devices to ensure everything is installed. I had problems detecting my card until all devices were installed, in particular the VirtIO device.

 

In this case, again install by selecting driver update and the Virtual driver disk, in my case E:\

If you had to do this, then restart again.

 

You may find that Windows will install the Nvidia Control Panel at this stage, which is a good sign. You can ignore the Nvidia Control panel for now.

 

Here comes the important bit:

 

If you try to install the Nvidia graphics card using the downloaded software installers, you will most likely be told that the software isn't suitable for your version of Windows.

 

Instead create a single folder called Nvdia. Leave it empty for now.

Start the first software package and select the drivers install, don't worry about the Nvidia experience package.

When it gets to the end, do not close the program. You will notice in the same folder as the software installer, will be the unpacked files. Copy them to the Nvidia folder created earlier.

Select Close, which will delete the original unpacked folder (Hence why you copied it first).

 

Repeat this for the second software installer

 

You should now have 2 software installer packages unpacked in your Nvidia folder.

Go to Device Manager and right click the Nvidia Graphics card.

Select update driver and browse to the Nvidia folder.

Install, including subdirectories. It will find and install the card and ask you to reboot.

 

Notes:

I've done this for 3 different Windows VMs with no real issues.

I think a couple of times, I uninstalled the graphics adapters (both the basic Windows and RTX 3090), so I could remove the drivers. Upon reboot, it found the graphics card on its own. I don't recall if I actually had to do it or I simply decided to, to get a clean uninstalled card with no existing drivers.

If I tried to install 461.72-desktop-win10-64bit-international-dch-whql it didn't work. Hence why I got the driver installer to search both unpacked installers.

 

Afterwards, I tried to install the Audio HD device from my mainboard. This crashed the VM and it would no longer detect the graphics card, irrespective of the configuration changes I made to the VM before restarting it. Device manager would not find the graphics card after this and I ended up doing a fresh install.....so back up your VM. This is a well-known issue with the X570 board being unable to pass through the audio and not an issue with the process.

 

Like I said, I hope this helps somebody.

 

  • Like 1
  • Thanks 1
Link to comment

774049489_Bildschirmfoto2022-03-22193706.thumb.png.18c572a9d51d56863e481f0775d729b6.png

 

529399516_Bildschirmfoto2022-03-22193809.thumb.png.bbcbcec4a59d2c5014360ecf111500ce.png

Spoiler

 

 

Spoiler

 

 

On 3/20/2022 at 5:22 AM, Geck0 said:

Importantly, check that all the other devices are installed. Check using View Hidden devices to ensure everything is installed. I had problems detecting my card until all devices were installed, in particular the VirtIO device.

 

You saved some days for me. This ^^ was the key for me!

 

Due to the fact that I had 5 VMs installed until know I know this and the actual NVIDIA driver from official homepage works for me in Win10 and Win11.

 

Things I had done before without "any success" Code 43 in windows:

 

  • Changed the <hyperv> section as described. Thx to @RiDDiX for the post here:
Edited by bud26
  • Like 1
Link to comment
  • 4 months later...
  • 2 weeks later...

Hi,

 

Sadly I can not get this to work for some reason - The audio part of the GTX460 I try to pass trough never shows up in the VM and I hjave the vport0p1 which does not find any drivers. Also, I tried all the other methods in the videos in the 2nd post.

No luck.

 

 

image.thumb.png.4db862e533ca45f2286edc4634f9df2a.png

Link to comment
1 hour ago, distel said:

Hi,

 

Sadly I can not get this to work for some reason - The audio part of the GTX460 I try to pass trough never shows up in the VM and I hjave the vport0p1 which does not find any drivers. Also, I tried all the other methods in the videos in the 2nd post.

No luck.

 

 

image.thumb.png.4db862e533ca45f2286edc4634f9df2a.png

post your xml

Link to comment

On a side note, I find the graphics card onboard audio a pain and simply not as clear.  I opted for a Sound Blaster GC7 which is working flawlessly as I go from one vm to the next.

It doesn't cost as much as the headache and time spent resolving. The Geforce onboard audio keeps overriding my audio settings occasionally as  priority, no matter if I remove the driver, etc and I never found it as clear as the Sound Blaster.

Your life will be easier if you plug in one of these devices and remove the audio from the XML profile (unless of course, you can't pass through the GPU at all??)

I couldn't pass the motherboard's optical out on my Aorus Extreme X570, some on this forum have managed to recompile the kernal, you will find threads I've made on that particular subject.

 

I'm guessing you've made a mistake in your XML, which is easier enough to do.

Link to comment
On 8/12/2022 at 3:20 PM, distel said:

Hi,

 

Sadly I can not get this to work for some reason - The audio part of the GTX460 I try to pass trough never shows up in the VM and I hjave the vport0p1 which does not find any drivers. Also, I tried all the other methods in the videos in the 2nd post.

No luck.

 

 

image.thumb.png.4db862e533ca45f2286edc4634f9df2a.png

Btw did you install qemu guest tools ? This is part of it.

Link to comment

image.thumb.png.86796b5e13bf9b4f9dcd568b2bb2ac34.png

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='2'>
  <name>Windows 10</name>
  <uuid>7bac6c42-10a7-f459-3c20-14544c07264c</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='13'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-6.2'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='2' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <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='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sdb' index='3'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Windows10enx64.iso' index='2'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.221-1.iso' index='1'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <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'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:0c:12:ac'/>
      <source bridge='br0'/>
      <target dev='vnet1'/>
      <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/1'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-2-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>
    <graphics type='vnc' port='5901' autoport='yes' websocket='5701' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

Passtrough works with an AMD firepro 4900v but sadly i can not get it to work with NVIDIA cards for some odd reason.

Edited by distel
Link to comment
13 hours ago, distel said:

image.thumb.png.86796b5e13bf9b4f9dcd568b2bb2ac34.png

 

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='2'>
  <name>Windows 10</name>
  <uuid>7bac6c42-10a7-f459-3c20-14544c07264c</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>2097152</memory>
  <currentMemory unit='KiB'>2097152</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='4'/>
    <vcpupin vcpu='1' cpuset='12'/>
    <vcpupin vcpu='2' cpuset='5'/>
    <vcpupin vcpu='3' cpuset='13'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-6.2'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='2' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <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='block' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source dev='/dev/sdb' index='3'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Windows10enx64.iso' index='2'/>
      <backingStore/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <alias name='ide0-0-0'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.221-1.iso' index='1'/>
      <backingStore/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <alias name='ide0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='ide' index='0'>
      <alias name='ide'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <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'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:0c:12:ac'/>
      <source bridge='br0'/>
      <target dev='vnet1'/>
      <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/1'/>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/1'>
      <source path='/dev/pts/1'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-2-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>
    <graphics type='vnc' port='5901' autoport='yes' websocket='5701' listen='0.0.0.0' keymap='en-us'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
    <audio id='1' type='none'/>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'>
    <label>+0:+100</label>
    <imagelabel>+0:+100</imagelabel>
  </seclabel>
</domain>

Passtrough works with an AMD firepro 4900v but sadly i can not get it to work with NVIDIA cards for some odd reason.

 

Use q35 chipset, i440 is not good for passtrought. This gpu is old and you cant see booting and installing process because it doesn't have uefi bios. You will see output on your monitor only after successful installation of nvidia drivers and only when os is booted. You could try seabios for booting output but i don`t and most off the ppl doesn't recommend it. After install use virtio-win-guest-tools.exe for drivers installation > it will install all necessary virtio drivers. The malfunction part is correct.

PS: delete this template because you cant change chipsets on already created VMs.

PS2: GTX460 is so old that i don`t think it has audio on it, i think it is only dvi/vga/svideo output. In best case it will have 2pin header for audio passtrought over dvi which you have to to connect to the front panel header on the motherboard with a cable, and after that to passtrought onbord audio.

  • Like 1
Link to comment
Quote

 

Here are my settings in Gui format.

Did you select Slot 6 or was that an automatic assignment?

You don't have to use the assigned slot, you can change it, provided there is no conflict.

 

Quote

image.thumb.png.42ea673163d28893adfdcd1fb2083cd5.png

 

Quote

<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm' id='16'>
  <name>Windows 10</name>
  <uuid>39c3904d-4c2b-44d8-6c78-c9f9c09c0e66</uuid>
  <description>New</description>
  <metadata>
    <vmtemplate xmlns="http://unraid.net/xmlns" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>13107200</memory>
  <currentMemory unit='KiB'>13107200</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='16'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='18'/>
    <vcpupin vcpu='4' cpuset='4'/>
    <vcpupin vcpu='5' cpuset='20'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-6.0'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv mode='custom'>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='3' threads='2'/>
    <cache mode='passthrough'/>
    <feature policy='require' name='topoext'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <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='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache_nvme/isos/virtio-win-0.1.196-1.iso' index='2'/>
      <backingStore/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <alias name='sata0-0-1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/nvme_vmstorage/VMstorage/Windows 10/vdisk.img' index='1'/>
      <backingStore/>
      <target dev='hdc' bus='sata'/>
      <boot order='1'/>
      <alias name='sata0-0-2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='2'/>
    </disk>
    <controller type='pci' index='0' model='pcie-root'>
      <alias name='pcie.0'/>
    </controller>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x8'/>
      <alias name='pci.1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <alias name='pci.2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xa'/>
      <alias name='pci.3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <alias name='pci.4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <alias name='pci.5'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0xb'/>
      <alias name='pci.6'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='7' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='7' port='0xc'/>
      <alias name='pci.7'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0xd'/>
      <alias name='pci.8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='pci' index='9' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='9' port='0xe'/>
      <alias name='pci.9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/>
    </controller>
    <controller type='pci' index='10' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='10' port='0xf'/>
      <alias name='pci.10'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x7'/>
    </controller>
    <controller type='pci' index='11' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='11' port='0x10'/>
      <alias name='pci.11'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='12' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='12' port='0x11'/>
      <alias name='pci.12'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
    </controller>
    <controller type='pci' index='13' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='13' port='0x12'/>
      <alias name='pci.13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x2'/>
    </controller>
    <controller type='pci' index='14' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='14' port='0x15'/>
      <alias name='pci.14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x5'/>
    </controller>
    <controller type='pci' index='15' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='15' port='0x16'/>
      <alias name='pci.15'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x6'/>
    </controller>
    <controller type='pci' index='16' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='16' port='0x17'/>
      <alias name='pci.16'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x7'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' 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='usb' index='0' model='ich9-ehci1'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <alias name='usb'/>
      <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'>
      <alias name='usb'/>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <alias name='usb'/>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:e3:43:93'/>
      <source bridge='br0'/>
      <target dev='vnet15'/>
      <model type='virtio-net'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' 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-16-Windows 10/org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='connected'/>
      <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>
    <audio id='1' type='none'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0d' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev0'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0d' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev1'/>
      <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0f' slot='0x00' function='0x4'/>
      </source>
      <alias name='hostdev2'/>
      <address type='pci' domain='0x0000' bus='0x10' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev3'/>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
      </source>
      <alias name='hostdev4'/>
      <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x1'/>
      </source>
      <alias name='hostdev5'/>
      <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x0a' slot='0x00' function='0x3'/>
      </source>
      <alias name='hostdev6'/>
      <address type='pci' domain='0x0000' bus='0x09' slot='0x00' 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 agree with starting again. Have a re-read of my original post. Its important to look for the hidden devices and resolve those first.

From memory and apologies, because I forgot which devices, I had to move my graphics card auto assigned slot to a different one, which meant I had to move other devices onto new slots, like slot 9, etc. (my memory is a bit fuzzy on this point), I don't think it was in my original post as I didn't think it would be a commonality.

 

Apologies for the delay in respoinding, I've had a helluva couple of weeks. Try posting pics of the steps in Windows device manager, like the bang warnings, etc. When you look for system drivers, use the root of the virtIO driver ISO. ie. E:\ 

There was one that was ambiguous that needed resolving first, which was VirtIO Serial driver. 

 

image.thumb.png.cb41aa13c6db350b9ee0e6af411b8ef7.png

 

When you go to View / Show Hidden devices, it should all be clear. I suggest looking through the hierarchial tree as a category, etc. That's where I found the issue with a conflict with my card's audio assignment. I had to give my card a lower slot assignment and then move the other devices to a different slot.

 

You can see I'm using SeaBios, it works fine (unless you want to access the virtual bios, then forget it).

Don't run the nVidia package installer, download the driver and unpack it. The biggest hiccup I had, was when Windows would find the driver off the internet and auto install or if I used the nVidia Experience app to install. If Windows found it on the internet and installed, the screen would go black and I couldn't see the bang error message.

Unpack the drivers and point device manager to the folder's root.

 

 

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.