[vfio-users] [help] 2 identical GPUs in Arch

sL1pKn07 SpinFlo sl1pkn07 at gmail.com
Tue Feb 23 19:02:46 UTC 2016


double identical gpu, i mean

greetings

2016-02-23 20:00 GMT+01:00 sL1pKn07 SpinFlo <sl1pkn07 at gmail.com>:
> 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




More information about the vfio-users mailing list