UPDATE: Eu tenho isso funcionando corretamente com libvirt agora. Para mim, a única complicação foi aprender como falsificar o driver do Windows NVidia para Acredito que não esteja sendo executado em uma VM. Fiz isso adicionando <kvm><hidden state='on'/></kvm>
ao bloco <features>
. e . (Atualização 2: o hypervclock agora parece ser aceitável para os drivers modernos da NVidia.) <timer name='hypervclock' present='no'/>
ao bloco <clock>
RESPOSTA ORIGINAL:
Não há uma maneira "fácil", e eu tive apenas um sucesso parcial adicionando diretamente o dispositivo PCI com o libvirt / virtual-manager. Eu tive sucesso absoluto seguindo este guia.
No entanto, eu tive que ler muito em outros tutoriais e fóruns para entender o que estava acontecendo. Aqui está a lista de terminologia que eu gostaria de ter tido quando comecei .
Os passos básicos são:
- elimine o seu dispositivo VGA de passagem para que o Ubuntu não o reivindique
- script de uma linha de comando do qemu para ...
- adicione uma porta raiz virtual ioh3420
- adicione seu dispositivo VGA
- adicione outros dispositivos no mesmo grupo IOMMU que seu dispositivo VGA
- adiciona um mouse / teclado
Aqui está o script do link acima, todo o crédito para o autor, Matt Bach.
#!/bin/bash
configfile=/etc/virt/vfio-pci1.cfg
vfiobind() {
dev=""
vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
device=$(cat /sys/bus/pci/devices/$dev/device)
if [ -e /sys/bus/pci/devices/$dev/driver ]; then
echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
fi
echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
}
modprobe vfio-pci
cat $configfile | while read line;do
echo $line | grep ^# >/dev/null 2>&1 && continue
vfiobind $line
done
sudo qemu-system-x86_64 -enable-kvm -M q35 -m 4096 -cpu host,kvm=off \
-name cmdline \
-smp 4,sockets=1,cores=4,threads=1 \
-bios /usr/share/qemu/bios.bin -vga none \
-usb \
-usbdevice host:046d:c52b,hostbus=3,hostaddr=7 \ // My logitech mouse/kb receiver
-device ioh3420,bus=pcie.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=05:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
-device vfio-pci,host=05:00.1,bus=root.1,addr=00.1 \
-drive file=/home/at/virt/windows1.img,id=disk,format=qcow2,cache=none,if=none -device ide-hd,drive=disk \
-drive file=/home/at/virt/win7.iso,id=isocd,cache=none,if=none,format=raw -device ide-cd,bus=ide.2,drive=isocd \
-boot menu=on