my arch script: systemd service:
[Unit] Description=Binds devices to vfio-pci After=syslog.target [Service] Type=oneshot RemainAfterExit=yes ExecStart=-/usr/bin/setup_kvm_vfio.sh [Install] WantedBy=multi-user.target setup_kvm_vfio.sh script: #!/bin/bash # Get pci-id host GPU host_gpu=$(lspci | grep "GTX 770" | awk '{print $1;}') host_gpu_audio=$(echo $host_gpu | sed -e 's/\.0$/.1/') # Get pci-id/vendor-id/device-id guest GPU guest_gpu=$(lspci | grep "GTX TITAN Black" | awk '{print $1;}') guest_gpu_vendor=$(cat /sys/bus/pci/devices/0000:$guest_gpu/vendor) guest_gpu_device=$(cat /sys/bus/pci/devices/0000:$guest_gpu/device) guest_gpu_audio=$(echo $guest_gpu | sed -e 's/\.0$/.1/') guest_gpu_audio_vendor=$(cat /sys/bus/pci/devices/0000:$guest_gpu_audio/vendor) guest_gpu_audio_device=$(cat /sys/bus/pci/devices/0000:$guest_gpu_audio/device) # Get pci-id/vendor-id/device-id guest USB # usb_pci=$(lspci | grep "NEC" | head -1 | awk '{print $1;}') # usb_pci_vendor=$(cat /sys/bus/pci/devices/0000:$usb_pci/vendor) # usb_pci_device=$(cat /sys/bus/pci/devices/0000:$usb_pci/device) # Get pci-id/vendor-id/device-id guest SATA # sata_pci=$(lspci | grep "Marvell Technology Group Ltd. 88SE9120 SATA" | awk '{print $1;}') # sata_pci_vendor=$(cat /sys/bus/pci/devices/0000:$sata_pci/vendor) # sata_pci_device=$(cat /sys/bus/pci/devices/0000:$sata_pci/device) # Set real driver for host GPU/GPU-audio echo nvidia > /sys/bus/pci/devices/0000:$host_gpu/driver_override echo snd-hda-intel > /sys/bus/pci/devices/0000:$host_gpu_audio/driver_override # Set vfio-pci driver for guest GPU/GPU-audio/USB/SATA echo vfio-pci > /sys/bus/pci/devices/0000:$guest_gpu/driver_override echo vfio-pci > /sys/bus/pci/devices/0000:$guest_gpu_audio/driver_override # echo vfio-pci > /sys/bus/pci/devices/0000:$usb_pci/driver_override # echo vfio-pci > /sys/bus/pci/devices/0000:$sata_pci/driver_override # Load vfio-pci kernel module modprobe vfio-pci # Set GPU/GPU-audio/USB/SATA vfio-pci id echo $guest_gpu_vendor $guest_gpu_device > /sys/bus/pci/drivers/vfio-pci/new_id echo $guest_gpu_audio_vendor $guest_gpu_audio_device > /sys/bus/pci/drivers/vfio-pci/new_id # echo $usb_pci_vendor $usb_pci_device > /sys/bus/pci/drivers/vfio-pci/new_id # echo $sata_pci_vendor $sata_pci_device > /sys/bus/pci/drivers/vfio-pci/new_id # Unbind GPU/GPU-audio/USB/SATA real driver echo 0000:$guest_gpu > /sys/bus/pci/devices/0000:$guest_gpu/driver/unbind echo 0000:$guest_gpu_audio > /sys/bus/pci/devices/0000:$guest_gpu_audio/driver/unbind # echo 0000:$usb_pci > /sys/bus/pci/devices/0000:$usb_pci/driver/unbind # echo 0000:$sata_pci > /sys/bus/pci/devices/0000:$sata_pci/driver/unbind # Bind GPU/GPU-audio/USB/SATA to vfio-pci echo 0000:$guest_gpu > /sys/bus/pci/drivers/vfio-pci/bind echo 0000:$guest_gpu_audio > /sys/bus/pci/drivers/vfio-pci/bind # echo 0000:$usb_pci > /sys/bus/pci/drivers/vfio-pci/bind # echo 0000:$sata_pci > /sys/bus/pci/drivers/vfio-pci/bind # Load nvidia kernel module modprobe nvidia zero config about vfio/pcistub on the grub/modprobe.d/modules-load/etc, except: GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on" taked from: http://www.altechnative.net/2015/04/05/virtually-gaming-part-2-evolution-consolidation-and-move-to-kvm/ that configuration have a identical GPU like you i hope helps you greetings _______________________________________________ vfio-users mailing list vfio-users@redhat.com https://www.redhat.com/mailman/listinfo/vfio-users