Windows 10 KVM Single-GPU Passthrough
- -
-
-
-
-
-
-
-
-
-
-
-
- Note: This is here as notes and shouldn’t be taken as a direct guide.
-Table of Contents
-
-
-
-
--
Host Specs
-CPU: AMD Ryzen 5 3600
-GPU: NVIDIA GeForce GTX 1060 6GB
-Motherboard: MSI B450 Tomahawk Max
-OS: Garuda Linux: Spotted-Eagle
-Kernel: 5.12.3-zen1-1-zen
-Memory: 16GB Final VM Configuration
-CPU: 4 Cores, 8 Threads
-GPU: NVIDIA GeForce GTX 1060 6GB
-Memory: 10GB
-Chipset: Q35
-Firmware: OVMF
-PCI Passthrough: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller
-PCI Passthrough: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host ControllerExtra Kernal Arguements
-video:vesafb=off video:efifb=off amd_iommu=on iommu=pt iommu=1 pcie_acs_override=downstream,multifunctionNvidia GPU VFIO patch (This is required on 10XX Series)
-Original bios downloaded from: https://www.techpowerup.com/vgabios/
-NVIDIA vBIOS VFIO Patcher
-
git clone https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
-cd NVIDIA-vBIOS-VFIO-Patcher
-python nvidia_vbios_vfio_patcher.py -i /home/phoenix/download/gtx1060.rom -o ./gtx1060-patched.rom
-cp ./gtx1060-patched.rom /usr/share/vgabios/gtx1060-patched.romMake sure Bar is toggled, Pass the file for the rom, and the second address contains multifunction=‘on’
-<hostdev mode='subsystem' type='pci' managed='yes'>
- <source>
- <address domain='0x0000' bus='0x26' slot='0x00' function='0x0'/>
- </source>
- <rom bar='on' file='/usr/share/vgabios/gtx1060-patched.rom'/>
- <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
-</hostdev>VM Networking
-Scripts
-macvlan.sh
-macvlan.service
Virt-Manager Settings
-
CPU Settings
-<cputune>
- <vcpupin vcpu='0' cpuset='2'/>
- <vcpupin vcpu='1' cpuset='8'/>
- <vcpupin vcpu='2' cpuset='3'/>
- <vcpupin vcpu='3' cpuset='9'/>
- <vcpupin vcpu='4' cpuset='4'/>
- <vcpupin vcpu='5' cpuset='10'/>
- <vcpupin vcpu='6' cpuset='5'/>
- <vcpupin vcpu='7' cpuset='11'/>
- <emulatorpin cpuset='0-1,6-7'/>
-</cputune> <cpu mode='host-passthrough' check='none' migratable='off'>
- <topology sockets='1' dies='1' cores='4' threads='2'/>
- <cache mode='passthrough'/>
- <feature policy='require' name='topoext'/>
- </cpu>Sata Passthrough
-<disk type='block' device='disk'>
- <driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
- <source dev='/dev/disk/by-id/ata-....'/>
- <target dev='sda' bus='sata'/>
- <boot order='1'/>
- <address type='drive' controller='0' bus='0' target='0' unit='0'/>
-</disk>Virt-Manager Hardware Overview
-