Jump to content

Jumbo_Erdnuesse

Members
  • Posts

    28
  • Joined

  • Last visited

Posts posted by Jumbo_Erdnuesse

  1. Your system does not support IOMMU. It was in the cpus from AMD since the Athlon Processor ermerged. Intel only had that feature in their Xeon processors. For consumers IOMMU was available from Intel since 2011. The Core I7 2600 has IOMMU the Core I7 2600K did not support it. Not all mainboards had options in their BIOS to turn that on. Since the Core 4000 series it became part of all Intel platform chipsets and cpus.

  2. I see 2 issues in your VM config:

     

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

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

     

    Those values for the memory amount should be the same for both lines. That could be the cause of your resource problem.

     

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

     

    You should enter a vendor id. Something like '1234567890ab' instead of 'none'.

  3. You should watch the video i posted.

     

    You set your gpu devices to a different bus. They should be on the same bus and slot.

     

    I edited your GPU section:

     

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
          </source>
          <rom file='/mnt/user/data/binary/Zotac.RTX2080Ti.11264.181023_VM.rom'/>
          <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='0x01' slot='0x00' function='0x1'/>
          </source>
          <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='0x01' slot='0x00' function='0x2'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x2'/>
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x3'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x3'/>
        </hostdev>
        

     

    In my test today i found that you have to wait for Windows 11 to install the "Basic Microsoft Display Adapter". After that Windows will take a while to install a graphics driver for your card. The "Basic Microsoft Display Adapter" will get replaced with a standard driver version and will then display the correct name of your gpu.

     

    I tried installing a gpu driver before that was finished and it resulted in black screens and installation issues which then will eventually bork the vm.

     

    So it is better to wait for Windows 11 to finish installing the gpu before installing a driver package.

     

    For me the gpu installation starts in the background after installing the virtio driver package using "virtio-win-gt-x64.msi". Do not use "virtio-win-guest-tools.exe" as it will bork your vm.

     

    Error 43 will not appear in the logs. You will see that error in your Windows 11 device manager showing a GPU icon with the yellow exclamation mark on it.

  4. I installed Windows 11 on a vm yesterday. It worked but i get error code 43 during the installation process. This error solved itself on a reboot of the vm prior to installation of the video card driver. I used the same method i described in my post linked above for installing the windows 10 vm.

     

    That is my Windows 11 VM XML file:

     

    <?xml version='1.0' encoding='UTF-8'?>
    <domain type='kvm'>
      <name>Windows 11</name>
      <uuid>UUID</uuid>
      <metadata>
        <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm"/>
      </metadata>
      <memory unit='KiB'>33554432</memory>
      <currentMemory unit='KiB'>33554432</currentMemory>
      <memoryBacking>
        <nosharepages/>
      </memoryBacking>
      <vcpu placement='static'>16</vcpu>
      <cputune>
        <vcpupin vcpu='0' cpuset='4'/>
        <vcpupin vcpu='1' cpuset='16'/>
        <vcpupin vcpu='2' cpuset='5'/>
        <vcpupin vcpu='3' cpuset='17'/>
        <vcpupin vcpu='4' cpuset='6'/>
        <vcpupin vcpu='5' cpuset='18'/>
        <vcpupin vcpu='6' cpuset='7'/>
        <vcpupin vcpu='7' cpuset='19'/>
        <vcpupin vcpu='8' cpuset='8'/>
        <vcpupin vcpu='9' cpuset='20'/>
        <vcpupin vcpu='10' cpuset='9'/>
        <vcpupin vcpu='11' cpuset='21'/>
        <vcpupin vcpu='12' cpuset='10'/>
        <vcpupin vcpu='13' cpuset='22'/>
        <vcpupin vcpu='14' cpuset='11'/>
        <vcpupin vcpu='15' cpuset='23'/>
      </cputune>
      <os>
        <type arch='x86_64' machine='pc-q35-7.1'>hvm</type>                        <- machine type
        <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader>
        <nvram>/etc/libvirt/qemu/nvram/UUID_VARS-pure-efi-tpm.fd</nvram>
      </os>
      <features>
        <acpi/>
        <apic/>
        <hyperv mode='custom'>
          <relaxed state='on'/>
          <vapic state='on'/>
          <spinlocks state='on' retries='8191'/>
          <vendor_id state='on' value='1234567890ab'/>                                       <- modified features section to prevent error 43
        </hyperv>
        <kvm>
          <hidden state='on'/>
        </kvm>

      </features>
      <cpu mode='host-passthrough' check='none' migratable='on'>
        <topology sockets='1' dies='1' cores='8' 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='disk'>
          <driver name='qemu' type='raw' cache='writeback'/>
          <source file='/mnt/user/domains/Windows 11/vdisk1.img'/>
          <target dev='hdc' bus='virtio'/>
          <boot order='1'/>
          <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
        </disk>
        <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <source file='/mnt/user/isos/windows11.iso'/>
          <target dev='hda' bus='sata'/>
          <readonly/>
          <boot order='2'/>
          <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.225-2.iso'/>
          <target dev='hdb' bus='sata'/>
          <readonly/>
          <address type='drive' controller='0' bus='0' target='0' unit='1'/>
        </disk>
        <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='pci' index='5' model='pcie-root-port'>
          <model name='pcie-root-port'/>
          <target chassis='5' port='0x14'/>
          <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='0x8'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
        </controller>
        <controller type='pci' index='7' model='pcie-root-port'>
          <model name='pcie-root-port'/>
          <target chassis='7' port='0x9'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
        </controller>
        <controller type='virtio-serial' index='0'>
          <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
        </controller>
        <controller type='sata' index='0'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
        </controller>
        <controller type='usb' index='0' model='qemu-xhci' ports='15'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
        </controller>
        <interface type='bridge'>
          <mac address='52:54:00:b2:e4:ed'/>
          <source bridge='br0'/>
          <model type='virtio-net'/>
          <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'/>
        <tpm model='tpm-tis'>
          <backend type='emulator' version='2.0' persistent_state='yes'/>                      <- tpm emulation needed for Windows 11
        </tpm>

        <audio id='1' type='none'/>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>         <- gpu passthrough
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0c' slot='0x00' function='0x1'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
        </hostdev>

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0e' slot='0x00' function='0x4'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>             <- onboard soundcard passthrough
        </hostdev>

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>           <- m.2 drive passthrough
        </hostdev>

        <hostdev mode='subsystem' type='usb' managed='no'>
          <source>
            <vendor id='0x0951'/>
            <product id='0x16be'/>
          </source>
          <address type='usb' bus='0' port='2'/>
        </hostdev>
        <hostdev mode='subsystem' type='usb' managed='no'>                      < usb mouse and keyboard passthrough
          <source>
            <vendor id='0x1532'/>
            <product id='0x000c'/>
          </source>
          <address type='usb' bus='0' port='3'/>
        </hostdev>

        <memballoon model='none'/>
      </devices>
    </domain>

     

     

    There is one thing i came across with the  Windows 11 VM that is not working. I cannot switch the video driver to another version. That worked on my Windows 10 VMs but not on the Windows 11 VM.

     

    Edit: forget the above statement. It seems i made an error in the procedure. Tried it with an new VM and it is working.

  5. You could try to edit your XML file like described in my post here:

     

     

    Your GPU configuration will then look like this:

     

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
          </source>
          <alias name='hostdev0'/>
          <rom file='/mnt/user/data/binary/Zotac.RTX2080Ti.11264.181023_VM.rom'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
          </source>
          <alias name='hostdev1'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x2'/>
          </source>
          <alias name='hostdev2'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x3'/>
          </source>
          <alias name='hostdev3'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x3'/>
        </hostdev>
        

     

    Video tutorial on gpu passthrough:

     

     

  6. This is my XML for my Windows 10 VM. I was able to install Windows 11 in a HyperV VM i created on my Windows 10 VM.

     

    <?xml version='1.0' encoding='UTF-8'?>
    <domain type='kvm'>
      <name>Windows10</name>
      <uuid>uuid</uuid>
      <metadata>
        <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
      </metadata>
      <memory unit='KiB'>37748736</memory>
      <currentMemory unit='KiB'>37748736</currentMemory>
      <memoryBacking>
        <nosharepages/>
      </memoryBacking>
      <vcpu placement='static'>16</vcpu>
      <cputune>
        <vcpupin vcpu='0' cpuset='4'/>
        <vcpupin vcpu='1' cpuset='16'/>
        <vcpupin vcpu='2' cpuset='5'/>
        <vcpupin vcpu='3' cpuset='17'/>
        <vcpupin vcpu='4' cpuset='6'/>
        <vcpupin vcpu='5' cpuset='18'/>
        <vcpupin vcpu='6' cpuset='7'/>
        <vcpupin vcpu='7' cpuset='19'/>
        <vcpupin vcpu='8' cpuset='8'/>
        <vcpupin vcpu='9' cpuset='20'/>
        <vcpupin vcpu='10' cpuset='9'/>
        <vcpupin vcpu='11' cpuset='21'/>
        <vcpupin vcpu='12' cpuset='10'/>
        <vcpupin vcpu='13' cpuset='22'/>
        <vcpupin vcpu='14' cpuset='11'/>
        <vcpupin vcpu='15' cpuset='23'/>
      </cputune>
      <os>
        <type arch='x86_64' machine='pc-q35-7.1'>hvm</type>        <- machine type
        <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader>
        <nvram>/etc/libvirt/qemu/nvram/uuid_VARS-pure-efi.fd</nvram>
      </os>
      <features>
        <acpi/>
        <apic/>
        <hyperv mode='custom'>
          <relaxed state='on'/>
          <vapic state='on'/>
          <spinlocks state='on' retries='8191'/>
          <vendor_id state='on' value='1234567890ab'/>       <- modified features section to prevent error 43
        </hyperv>
        <kvm>
          <hidden state='on'/>
        </kvm>
      </features>

      <cpu mode='host-passthrough' check='none' migratable='on'>
        <topology sockets='1' dies='1' cores='8' 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='disk'>
          <driver name='qemu' type='raw' cache='writeback'/>
          <source file='/mnt/user/domains/Windows102/vdisk1.img'/>
          <target dev='hdc' bus='virtio'/>
          <boot order='1'/>
          <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
        </disk>
        <disk type='file' device='cdrom'>
          <driver name='qemu' type='raw'/>
          <target dev='hda' bus='sata'/>
          <readonly/>
          <boot order='2'/>
          <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.225-2.iso'/>                 <- virtio driver version i use
          <target dev='hdb' bus='sata'/>
          <readonly/>
          <address type='drive' controller='0' bus='0' target='0' unit='1'/>
        </disk>
        <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='pci' index='5' model='pcie-root-port'>
          <model name='pcie-root-port'/>
          <target chassis='5' port='0x14'/>
          <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='0x8'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
        </controller>
        <controller type='pci' index='7' model='pcie-root-port'>
          <model name='pcie-root-port'/>
          <target chassis='7' port='0x9'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
        </controller>
        <controller type='virtio-serial' index='0'>
          <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
        </controller>
        <controller type='sata' index='0'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
        </controller>
        <controller type='usb' index='0' model='qemu-xhci' ports='15'>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
        </controller>
        <interface type='bridge'>
          <mac address='52:54:00:21:ab:6a'/>
          <source bridge='br0'/>
          <model type='virtio-net'/>
          <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='3'/>
        </input>
        <input type='mouse' bus='ps2'/>
        <input type='keyboard' bus='ps2'/>
        <audio id='1' type='none'/>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>     <- gpu
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0c' slot='0x00' function='0x1'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
        </hostdev>

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0e' slot='0x00' function='0x4'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>         <- onboard soundcard
        </hostdev>

        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>                    <- m.2 drive
          </source>
          <address type='pci' domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
        </hostdev>

        <hostdev mode='subsystem' type='usb' managed='no'>
          <source>
            <vendor id='0x0951'/>
            <product id='0x16be'/>
          </source>
          <address type='usb' bus='0' port='1'/>
        </hostdev>
        <hostdev mode='subsystem' type='usb' managed='no'>                                <-   usb mouse and keyboard
          <source>
            <vendor id='0x1532'/>
            <product id='0x000c'/>
          </source>
          <address type='usb' bus='0' port='2'/>
        </hostdev>

        <memballoon model='none'/>
      </devices>
    </domain>

     

     

    I do not have a <tpm> section in my configuration because i disabled my tpm module. I think you need that for Windows 11.

  7. Did you install the guest agent using the "virtio-win-guest-tools.exe" in the main folder of your virtio drivers disk?

     

    For some unknown reason using this file will bork any windows 10 vm i tested so far and they will not boot anymore and i get the same error message as you posted above.

  8. Maybe this will help you:

     

    Maybe it works for Windows 11 too.

     

    In your XML file you have to edit the GPU section:

     

    <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
          </source>
          <rom file='/mnt/user/isos/vbios/gpu 1060.rom'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
        </hostdev>
        <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x07' slot='0x00' function='0x1'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>     <- you have to set your GPU audio to the same bus as your
        </hostdev>                                                                                                              video card and set function to '0x01'

     

  9. Try this in your xml file:

     

    <features>
        <acpi/>
        <apic/>
        <hyperv mode='custom'>
          <relaxed state='on'/>
          <vapic state='on'/>
          <spinlocks state='on' retries='8191'/>
          <vendor_id state='on' value='1234567890ab'/>       <----  with Vendor ID set to 'none' you get error 43
        </hyperv>

        <kvm>
          <hidden state='on'/>     <--- set this for kvm, if you do not do it, you get error 43
        </kvm>

      </features>

  10. You could look up your card on https://www.techpowerup.com/vgabios/ and find your bios there.

     

    Maybe something went wrong with your vbios dump?

     

    Nvidia cards are known to cause issues with passthrough.

     

    I used a lot of information from this https://forums.serverbuilds.net/t/guide-remote-gaming-on-unraid/4248 it is one of the best written how-to´s i could find. Almost everthing in this how-to from chapter 6,7,8 and 9 worked for me.

     

    Also worth looking: https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Prerequisites

  11. I have further insight in the IRQ error i get passing through my soundcard. Hopefully someone will be able to help me with that.

     

    If i bind the soundcard to vfio the IRQ  gets set to 11. After i pass through the soundcard to my vm and start the vm the IRQ will change to 34 and i get the following error in syslog:

     

    Jan  2 16:28:49 3900X kernel: vendor-reset-drm: atomfirmware: bios_scratch_reg_offset initialized to 4c
    Jan  2 16:28:49 3900X kernel: vfio-pci 0000:0c:00.0: AMD_VEGA10: bus reset disabled? yes
    Jan  2 16:28:49 3900X kernel: vfio-pci 0000:0c:00.0: AMD_VEGA10: SMU response reg: ffffffff, sol reg: 0, mp1 intr enabled? no, bl ready? no, baco? off
    Jan  2 16:28:49 3900X kernel: vfio-pci 0000:0c:00.0: AMD_VEGA10: performing post-reset
    Jan  2 16:28:49 3900X kernel: vfio-pci 0000:0c:00.0: AMD_VEGA10: reset result = 0
    Jan  2 16:28:50 3900X kernel: vfio-pci 0000:0c:00.0: No more image in the PCI ROM
    Jan  2 16:28:50 3900X kernel: vfio-pci 0000:0c:00.0: No more image in the PCI ROM
    Jan  2 16:29:12 3900X kernel: irq 34: nobody cared (try booting with the "irqpoll" option)
    Jan  2 16:29:12 3900X kernel: CPU: 20 PID: 20188 Comm: CPU 9/KVM Tainted: G           O      5.19.17-Unraid #2
    Jan  2 16:29:12 3900X kernel: Hardware name: Gigabyte Technology Co., Ltd. X470 AORUS ULTRA GAMING/X470 AORUS ULTRA GAMING-CF, BIOS F63c 07/20/2022
    Jan  2 16:29:12 3900X kernel: Call Trace:
    Jan  2 16:29:12 3900X kernel: <IRQ>
    Jan  2 16:29:12 3900X kernel: dump_stack_lvl+0x44/0x5c
    Jan  2 16:29:12 3900X kernel: __report_bad_irq+0x35/0xaa
    Jan  2 16:29:12 3900X kernel: note_interrupt+0x1f6/0x24d
    Jan  2 16:29:12 3900X kernel: handle_irq_event_percpu+0x2c/0x35
    Jan  2 16:29:12 3900X kernel: handle_irq_event+0x37/0x56
    Jan  2 16:29:12 3900X kernel: handle_fasteoi_irq+0x99/0x113
    Jan  2 16:29:12 3900X kernel: __common_interrupt+0x9e/0xaa
    Jan  2 16:29:12 3900X kernel: common_interrupt+0x96/0xc1
    Jan  2 16:29:12 3900X kernel: </IRQ>
    Jan  2 16:29:12 3900X kernel: <TASK>
    Jan  2 16:29:12 3900X kernel: asm_common_interrupt+0x22/0x40
    Jan  2 16:29:12 3900X kernel: RIP: 0010:svm_prepare_switch_to_guest+0x21/0xec [kvm_amd]
    Jan  2 16:29:12 3900X kernel: Code: 1f 44 00 00 48 89 f7 eb 89 0f 1f 44 00 00 55 48 c7 c0 70 d6 02 00 53 48 63 57 20 48 89 fb 48 8b 14 d5 e0 6a 16 82 48 8b 2c 02 <48> 8b 07 80 b8 c1 9d 00 00 00 74 12 80 b8 c0 9d 00 00 00 75 04 0f
    Jan  2 16:29:12 3900X kernel: RSP: 0018:ffffc90000d8fdb0 EFLAGS: 00000246
    Jan  2 16:29:12 3900X kernel: RAX: 000000000002d670 RBX: ffff888b1f66a5b0 RCX: ffff888b1f66a5b0
    Jan  2 16:29:12 3900X kernel: RDX: ffff888c0ed00000 RSI: ffff888b1f66a5b0 RDI: ffff888b1f66a5b0
    Jan  2 16:29:12 3900X kernel: RBP: ffff888108b13780 R08: 0000000000000000 R09: 0000000000000000
    Jan  2 16:29:12 3900X kernel: R10: 0000000000000000 R11: 0000000000000000 R12: 000000001f66a500
    Jan  2 16:29:12 3900X kernel: R13: 0000000000000001 R14: 0000000000000000 R15: 000000001f66a501
    Jan  2 16:29:12 3900X kernel: kvm_arch_vcpu_ioctl_run+0xf92/0x1506 [kvm]
    Jan  2 16:29:12 3900X kernel: kvm_vcpu_ioctl+0x192/0x5a4 [kvm]
    Jan  2 16:29:12 3900X kernel: ? hrtimer_forward+0x82/0x92
    Jan  2 16:29:12 3900X kernel: ? timerqueue_add+0x6a/0x76
    Jan  2 16:29:12 3900X kernel: ? enqueue_hrtimer+0x77/0x82
    Jan  2 16:29:12 3900X kernel: ? __seccomp_filter+0x89/0x313
    Jan  2 16:29:12 3900X kernel: vfs_ioctl+0x1e/0x2f
    Jan  2 16:29:12 3900X kernel: __do_sys_ioctl+0x52/0x78
    Jan  2 16:29:12 3900X kernel: do_syscall_64+0x6b/0x81
    Jan  2 16:29:12 3900X kernel: entry_SYSCALL_64_after_hwframe+0x63/0xcd
    Jan  2 16:29:12 3900X kernel: RIP: 0033:0x14d24d993d38
    Jan  2 16:29:12 3900X kernel: Code: 00 00 48 8d 44 24 08 48 89 54 24 e0 48 89 44 24 c0 48 8d 44 24 d0 48 89 44 24 c8 b8 10 00 00 00 c7 44 24 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 77 07 89 d0 c3 0f 1f 40 00 48 8b 15 91 d0 0d
    Jan  2 16:29:12 3900X kernel: RSP: 002b:000014ca437fdc48 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    Jan  2 16:29:12 3900X kernel: RAX: ffffffffffffffda RBX: 000000000000ae80 RCX: 000014d24d993d38
    Jan  2 16:29:12 3900X kernel: RDX: 0000000000000000 RSI: 000000000000ae80 RDI: 000000000000001e
    Jan  2 16:29:12 3900X kernel: RBP: 000014ca4b53b580 R08: 0000557f8b1349a0 R09: 00000000ffffffff
    Jan  2 16:29:12 3900X kernel: R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    Jan  2 16:29:12 3900X kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 000014ca435ff000
    Jan  2 16:29:12 3900X kernel: </TASK>
    Jan  2 16:29:12 3900X kernel: handlers:
    Jan  2 16:29:12 3900X kernel: [<0000000086f580d9>] vfio_intx_handler
    Jan  2 16:29:12 3900X kernel: Disabling IRQ #34

    Jan  2 16:29:13 3900X kernel: usb 1-10: reset full-speed USB device number 3 using xhci_hcd
    Jan  2 16:29:13 3900X kernel: usb 1-4: reset full-speed USB device number 2 using xhci_hcd
    Jan  2 16:29:46 3900X webGUI: Successful login user root from 192.168.178.42

     

    Whe i stop the vm the syslog error vanishes and the IRQ returns to 11. Maybe because of that the error message was not included in the diagnostics i posted here before. I also added "irqpoll" to my boot options. That seems to do nothing. I still get the same error.

     

  12. Maybe entering a vendor id and setting kvm hidden state to ON will help:

     

      <features>
        <acpi/>
        <apic/>
        <hyperv mode='custom'>
          <relaxed state='on'/>
          <vapic state='on'/>
          <spinlocks state='on' retries='8191'/>
          <vendor_id state='on' value='1234567890ab'/>
        </hyperv>
        <kvm>
          <hidden state='on'/>
        </kvm>

     

    Not using beta drivers might help too.

     

  13. Quote

      <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0c' slot='0x00' function='0x0'/>
          </source>
          <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='0x0c' slot='0x00' function='0x1'/>
          </source>
          <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x1'/>
        </hostdev>

    These are your graphics card and the inlcuded hdmi soundcard. Those need to be on the same bus.

     

    To solve your passthrough problem set bus='0x05' in the line  <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x1'/> to bus='0x04'.

     

    Quote

    2022-12-24T15:46:05.050051Z qemu-system-x86_64: vfio: Cannot reset device 0000:0e:00.4, depends on group 31 which is not owned

    This error seems to originate from your onboard soundcard passthrough. I get the same error on passing through my onboard soundcard. The sound is working. You can ignore that error.

  14. After further investigating the issue with the Auzentech Forte soundcard i found an IRQ error in my Unraid Log after i switched the pci-e slots with the soundcard. After i stopped passing through the card, the IRQ error was gone.

     

    Now i also passed through my onboard audio to the VM. The windows driver for the Auzentech card caused weird issues in Firefox browser stopping the video playback after 1 sec. The video will resume if i press the mute button in the youtube player but i had no sound. As a workaround i tried my onboard audio and after removing the Auzentech driver i have audio passthrough working.

     

    I also tried enabeling MSI for the Auzentech but that did not work. As soon as i enabled MSI and rebooted the vm i noticed that the IRQ of the card changed. The IRQ error vanished from the system log.

     

    Maybe i cannot passthrough my X-Fi card because my mainboard BIOS is still a beta version? Or is there anything else i can do to prevent IRQ errors?

    3900x-diagnostics-20221221-2009.zip

  15. For Radeon cards you do not have to use a VBIOS file.

     

    First Steps: Set your machine in UEFI to CSM mode "enabled". Set your Unraid to Legacy mode. In "Main" klick on "Flash" right next to the Unraid usb drive this will bring you to Unraid settings, in the settings uncheck "Allow UEFI boot". Open "Settings", "VM Manger" and set "PCI ACS Override" to "Both", set "Allow unsafe interrupts" to "Yes", reboot Unraid, go to "Tools" "System devices" and set the VFIO passthrough devices, then click "Bind selected devices to VFIO", click "Done", install the AMD Vendor reset plugin. Go to "Main", "Flash", "Syslinux Configuration", the section "Unraid OS" should look something like this:

     

    kernel /bzimage
    append pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

     

    after "append" add this: video=efifb:off,vesafb:off

     

    it should now look like this:

     

    kernel /bzimage
    append video=efifb:off,vesafb:off pcie_acs_override=downstream,multifunction vfio_iommu_type1.allow_unsafe_interrupts=1 initrd=/bzroot

     

    Reboot again.

     

    Create a VM. Edit the VM in GUI, the first gpu should be "Virtual" for the VNC card, the second GPU should be your Radeon card. As first soundcard set Radeon HDMI passthrough, click "Update", then edit the VM again in XML.

     

    In the XML File go to <features> and edit

     

    <features>
        <acpi/>
        <apic/>
        <hyperv mode='custom'>
          <relaxed state='on'/>
          <vapic state='on'/>
          <spinlocks state='on' retries='8191'/>
          <vendor_id state='on' value='1234567890ab'/>       <----  with Vendor ID set to 'none' you get error 43
        </hyperv>

        <kvm>
          <hidden state='on'/>
         <--- set this for kvm, if you do not do it, you get error 43
        </kvm>

      </features>

    .

    .

    For the graphics card edit the following lines:

     

    <hostdev mode='subsystem' type='pci' managed='yes'>
          <driver name='vfio'/>
          <source>
            <address domain='0x0000' bus='0x0a' slot='0x00' function='0x0'/>
          </source>
         <alias name='hostdev0'/> remove the vbios
          <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='0x1'/>     
          </source>                                                                                               
          <alias name='hostdev1'/>                                                                    
          <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
        </hostdev>

    .

    .

    .

    After you set everthing, you have to set your VM to autoboot and reboot Unraid. Don´t forget do pass through a keyboard for pressing the any key to boot from the Windows Image. During the reboot process Unraid will launch the VM at start and you will not be able to get any screen output. Just keep pressing the space bar when the keyboard lights up a second time during VM boot.

     

    When the VM starts you can install Windows, reboot, install VirtIO drivers, reboot, then configure Windows using the vnc connection. Usually when i am in the process of configuring Windows the video card will get installed in the background after some minutes of runnig the VM. A second "Microsoft Basic Dispay Adapter" will appear in the windows device manger, reporting Code 31, which means you did not install drivers yet. At this point your screen connected to the Radeon card should light up.

     

    A critical step will be preventing Windows from loading driver updates through Windows Update. If that happens, your VM will be borked and you have to reinstall it again because the standard Windows Update driver for Radeon does not work.

     

    BEFORE you install the VIRTIO drivers you have to configure Windows Update. Run "gpedit.msc" and select "Computer configuration", "Administrative templates", "Windows components", "Windows Update", "Do not allow driver updates through Windows Update" and set this rule to "Active". ALSO check System Properties, Hardware, Device installation settings, set it to "No, do not download apps and device symbols". There will be a warning wich can be accepted clicking "OK".

     

    During the whole process do NOT shutdown your VM through the Unraid GUI. The VM should be working and you should reboot the VM using the Windows start menu every time you have to manually reboot the guest.

     

    Do not install the latest video drivers. Install WHQL 22.5.1 drivers. I tried latest drivers wich resulted in slow video performance and black screen.

     

    For some reason the installation of the virtio drivers fails everytime in a Windows 10 VM when i run the setup for the first time. Just rerun  the installer and it will work the second time. Then open the virtio driver folder on the virtio driver disk and navigate to "qemu system agent" and install that on top of the drivers. Do not install anything else from the virtio drivers disk. I tried installing the guest agent using the "virtio-win-guest-tools.exe" in the main folder and that borked my vm. Do not use that.

     

    A lot of errors in dealing with VM are solved when you realise that when you make changes to the VM template in the GUI all former changes you made in the XML template get discarded. As soon as you click the "Update" button in the GUI the current XML gets overwritten by a standard template and you have to edit your XML setting again.

    • Like 1
    • Thanks 3
  16. Set your BIOS and Unraid to CSM/Legacy mode. Do not use the latest Radeon drivers. Use WHQL drivers. I used 22.11.2 and it did not work, performance was sluggish. I had to use 22.5.1 WHQL driver to solve that.

     

    A lot of errors in dealing with VM are solved when you realise that when you make changes to the VM template in the GUI all former changes you made in the XML template get discarded. As soon as you click the "Update" button in the GUI the current XML gets overwritten by a standard template and you have to edit your XML setting again.

     

    Also this may help you if you are using Unraid 6.11.5:

     

×
×
  • Create New...