May 9, 20206 yr So I got Unraid up and running nicely and even managed to get a Windows 10 VM going pretty well. Then I tried to figure out how to pass through my 1070 ti and because it was a drop down option I just tried to update the graphics settings in the template by selecting my 1070 for the graphics and sound. Then each time I tried to start the VM the whole server would become unreachable. I would have to manually (physically) reboot it. So I went and watched a lot of Spaceinvader one's videos about GPU pass through and I think that the reason it doesn't work is because I didn't do anything with the vbios but I want to make sure I do this right the first time so I don't have to keep doing unclean reboots. My hardware: Ryzen 3900x Asus prime x470 pro GTX 1070 ti My question is: Do I need a secondary GPU for unraid to use or can I just follow the spaceinvader video about GPU pass through without dumping the vbios and only have one gpu in the system? Edit: just clarifying my question.. do I need that dedicated second GPU because of my CPU/Mobo for unraid to have access to? Or if done correctly, can I just use the one GPU? Edited May 9, 20206 yr by Dijk21 Clarification
May 9, 20206 yr 2 hours ago, Dijk21 said: Edit: just clarifying my question.. do I need that dedicated second GPU because of my CPU/Mobo for unraid to have access to? Or if done correctly, can I just use the one GPU? You don't need a dedicated GPU for Unraid itself. On some setups it works on some not. Hard to predict. It's different for every user. Is your GPU in it's own IOMMU group?
May 9, 20206 yr Author 56 minutes ago, bastl said: You don't need a dedicated GPU for Unraid itself. On some setups it works on some not. Hard to predict. It's different for every user. Is your GPU in it's own IOMMU group? Ok thank you for the confirmation on the dedicated GPU. The spaceinvader videos have him doing it a number of different ways so I just wasn't sure. Yes it is. They (the GPU and GPU sound card) are in group 16 by themselves. I just deleted my old VM and started over and it is running without GPU passthrough. I just selected the GPU in the template and I'm trying to get the vbios I created (using spaceinvader's method without a 2nd gpu) in the right spot. I manually typed it into the XML because the ROM bios file wouldn't appear in the template (red flag?). See my xml below: The GPU is listed on bus 8 function 0 and 1 (near the bottom). Not sure why bus 6 (looks like my ethernet controller) is showing up in the middle of that either... Quote <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Gaming Windows 10</name> <uuid>49dc4a72-3048-83d7-fb5a-8a9f1290ca3b</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>24641536</memory> <currentMemory unit='KiB'>24641536</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>20</vcpu> <cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='14'/> <vcpupin vcpu='2' cpuset='3'/> <vcpupin vcpu='3' cpuset='15'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='5' cpuset='16'/> <vcpupin vcpu='6' cpuset='5'/> <vcpupin vcpu='7' cpuset='17'/> <vcpupin vcpu='8' cpuset='6'/> <vcpupin vcpu='9' cpuset='18'/> <vcpupin vcpu='10' cpuset='7'/> <vcpupin vcpu='11' cpuset='19'/> <vcpupin vcpu='12' cpuset='8'/> <vcpupin vcpu='13' cpuset='20'/> <vcpupin vcpu='14' cpuset='9'/> <vcpupin vcpu='15' cpuset='21'/> <vcpupin vcpu='16' cpuset='10'/> <vcpupin vcpu='17' cpuset='22'/> <vcpupin vcpu='18' cpuset='11'/> <vcpupin vcpu='19' cpuset='23'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/49dc4a72-3048-83d7-fb5a-8a9f1290ca3b_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <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'> <topology sockets='1' cores='10' 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/disks/INTEL_SSDSC2BW240A4_CVDA330201KW2403GN/Gaming Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/disks/CT1000MX500SSD1_1933E218BBE7/Gaming Windows 10/vdisk2.img'/> <target dev='hdd' bus='virtio'/> <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/Windows.iso'/> <target dev='hda' bus='ide'/> <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.173-2.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0' model='qemu-xhci' ports='15'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <interface type='bridge'> <mac address='52:54:00:68:cf:cf'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <rom file='/mnt/user/domains/vbios/msi1070ti.dump'/> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain> Thank you for your help
May 9, 20206 yr Author Just FYI, i haven't tested the VM yet so it could work but I wanted to make sure the xml looked okay so I don't have to do an unclean reboot again. edit: so actually it won't even let me update the XML giving me the following error: internal error: unknown pci source type 'rom' Edited May 9, 20206 yr by Dijk21 clarification
May 9, 20206 yr Author Ok look at me solving my own problems. I realized the vbios file had the wrong prefix. I was able to update it via the template now. Would anyone be so kind as to tell me if the new XML looks alright so I don't make any more obvious mistakes? Quote <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm'> <name>Gaming Windows 10</name> <uuid>49dc4a72-3048-83d7-fb5a-8a9f1290ca3b</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/> </metadata> <memory unit='KiB'>24641536</memory> <currentMemory unit='KiB'>24641536</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>20</vcpu> <cputune> <vcpupin vcpu='0' cpuset='2'/> <vcpupin vcpu='1' cpuset='14'/> <vcpupin vcpu='2' cpuset='3'/> <vcpupin vcpu='3' cpuset='15'/> <vcpupin vcpu='4' cpuset='4'/> <vcpupin vcpu='5' cpuset='16'/> <vcpupin vcpu='6' cpuset='5'/> <vcpupin vcpu='7' cpuset='17'/> <vcpupin vcpu='8' cpuset='6'/> <vcpupin vcpu='9' cpuset='18'/> <vcpupin vcpu='10' cpuset='7'/> <vcpupin vcpu='11' cpuset='19'/> <vcpupin vcpu='12' cpuset='8'/> <vcpupin vcpu='13' cpuset='20'/> <vcpupin vcpu='14' cpuset='9'/> <vcpupin vcpu='15' cpuset='21'/> <vcpupin vcpu='16' cpuset='10'/> <vcpupin vcpu='17' cpuset='22'/> <vcpupin vcpu='18' cpuset='11'/> <vcpupin vcpu='19' cpuset='23'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-4.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi.fd</loader> <nvram>/etc/libvirt/qemu/nvram/49dc4a72-3048-83d7-fb5a-8a9f1290ca3b_VARS-pure-efi.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv> <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'> <topology sockets='1' cores='10' 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/disks/INTEL_SSDSC2BW240A4_CVDA330201KW2403GN/Gaming Windows 10/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/disks/CT1000MX500SSD1_1933E218BBE7/Gaming Windows 10/vdisk2.img'/> <target dev='hdd' bus='virtio'/> <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/Windows.iso'/> <target dev='hda' bus='ide'/> <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.173-2.iso'/> <target dev='hdb' bus='ide'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='pci' index='0' model='pci-root'/> <controller type='ide' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </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:68:cf:cf'/> <source bridge='br0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <rom file='/mnt/user/domains/vbios/msi1070ti.rom'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </hostdev> <memballoon model='none'/> </devices> </domain>
May 10, 20206 yr @Dijk21 Looks kinda ok even if the GPU and it's audio are on different slots. What you can try is to put them on the same bus, same slot with different function. So it looks like the following: <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </source> <rom file='/mnt/user/domains/vbios/msi1070ti.rom'/> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x08' slot='0x00' function='0x1'/> </source> <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x1'/> </hostdev> Also machine type Q35 is a option to play around with. Create a new template for Q35 if you wanna play around with it.
Archived
This topic is now archived and is closed to further replies.