Dear fellow passthroughers,
I am new to this whole VM passthrough thingie but did my best to passthrough my GTX 1050 Ti -> but failed.
My machine is a Fujitsu Primergy TX 1310 M3 pre-built server with Xeon E3-1225 v6 and a C236 board from Fujitsu (D3521-A1). The graphics card is an ASUS GeForce® GTX 1050 Ti Cerberus Advanced 4GB, the vBios I got from this unoffical techpowerup Bios https://www.techpowerup.com/vgabios/198967/198967 and hex edited the header away. Strangely, my iGPU of the Xeon is deactivated since I put the 1050 in. So the 1050 is the primary and only GPU. The Bios has no option for graphics whatsoever.
I had to enable PCIE ACS override (set it to downstream), the IOMMU groups now look like this:
IOMMU group 0: [8086:5918] 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)
IOMMU group 1: [8086:1901] 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)
IOMMU group 2: [8086:a12f] 00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)
[8086:a131] 00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)
IOMMU group 3: [8086:a13a] 00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)
IOMMU group 4: [8086:a102] 00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31)
IOMMU group 5: [8086:a149] 00:1f.0 ISA bridge: Intel Corporation C236 Chipset LPC/eSPI Controller (rev 31)
[8086:a121] 00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)
[8086:a123] 00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)
IOMMU group 6: [8086:15b7] 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (2) I219-LM (rev 31)
IOMMU group 7: [10de:1c82] 01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
[10de:0fb9] 01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
My machine is only able to boot Unraid in UEFI mode, in Legacy mode I get the message that the USB drive is not bootable.
In VM setup, I tried every combination that I could imagine:
i4770fx/Q35: with Q35 there was always an unknown device in Device Manager of Win10
SEA-Bios/OMVF: Both boot and yield similar results
Hyper-V on/off: Both boot and yield similar results
"paired" the GPU and sound device of the 1050 Ti via space invaders route (mutlifunction)
but also tried to only passthrough the GPU.
Attached is the config that I thought is best, with i4770fx and OMVF and Hyper-V on:
<?xml version='1.0' encoding='UTF-8'?>
<domain type='kvm'>
<name>Windows 10 - UEFI - i440fx</name>
<uuid>25a754ed-b851-98ce-0a5c-b20e66778a0f</uuid>
<metadata>
<vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
</metadata>
<memory unit='KiB'>8388608</memory>
<currentMemory unit='KiB'>8388608</currentMemory>
<memoryBacking>
<nosharepages/>
</memoryBacking>
<vcpu placement='static'>4</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='0'/>
<vcpupin vcpu='1' cpuset='1'/>
<vcpupin vcpu='2' cpuset='2'/>
<vcpupin vcpu='3' cpuset='3'/>
</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/25a754ed-b851-98ce-0a5c-b20e66778a0f_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='4' threads='1'/>
</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 10 - UEFI - i440fx/vdisk1.img'/>
<target dev='hdc' bus='virtio'/>
<boot order='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/mnt/user/isos/Win10_1909_German_x64.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.160-1.iso'/>
<target dev='hdb' bus='ide'/>
<readonly/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
<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='virtio-serial' index='0'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</controller>
<controller type='usb' index='0' model='nec-xhci' ports='15'>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:cc:0d:28'/>
<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='0x01' slot='0x00' function='0x0'/>
</source>
<rom file='/mnt/user/system/198967.rom'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' 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='0x00' slot='0x05' function='0x1'/>
</hostdev>
<memballoon model='none'/>
</devices>
</domain>
Here, I can connect via Teamviewer and navigate through Windows GUI and the graphics card shows as GTX 1050 Ti, but with Code 43 Error.
The vBios is the one linked above, I also tried to dump my own bios, but since I have no other graphics card in the machine, this has probably failed (can I dump the vbios, when my GPU is the only GPU?).
So what else can I do?
0. Legacy booting Unraid does not work on any of the USB ports and with any of the Bios settings.
1. Get another 1050 Ti that has a "valid"/verified entry at techpowerup?
2. Get a cheap GPU as primary GPU and dump the vBios?
- do I need to dump the vBios if I use the 1050 Ti as secondary GPU?
Any help is appreciated, also stating the obvious, as I said I am new to this.