Я пытаюсь прокинуть часть встроенной видеокарты в windows guest с помощью этой технологии, на ядре 5.4.60 и ловлю следующую ошибку:
qemu-system-x86_64: -device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/2c9c2336-4a44-48fa-a36b-28ece57a13ed,rombar=0,display=off,x-igd-opregion=on,x-vga=on: vfio 2c9c2336-4a44-48fa-a36b-28ece57a13ed: failed to setup container for group 11: Failed to set iommu for container: Input/output error
Скрипт запуска виртуальной машины:
#!/bin/sh
SPICE_PORT=5924
qemu-system-x86_64 -enable-kvm \
-cpu host \
-smp cores=3,threads=2 \
-drive file=/home/tui/Virtual/WinVM.img,if=virtio \
-net nic -net user,hostname=windowsvm \
-m 6G \
-machine type=q35 \
-vga qxl \
-vnc :1 \
-machine kernel_irqchip=on \
-spice port=${SPICE_PORT},disable-ticketing \
-usbdevice tablet \
-device virtio-serial \
-chardev spicevmc,id=vdagent,name=vdagent \
-device usb-ehci,id=ehci \
-device usb-host,bus=ehci.0,vendorid=0x090c,productid=0x1000,id=fl0,port=2 \
-device qemu-xhci,id=xhci \
-device usb-host,bus=xhci.0,vendorid=0x2aab,productid=0x800a,id=flc,port=3 \
-device usb-host,bus=xhci.0,vendorid=0x0483,productid=0x374b,id=stm,port=4 \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-device vfio-pci,sysfsdev=/sys/bus/pci/devices/0000:00:02.0/2c9c2336-4a44-48fa-a36b-28ece57a13ed,rombar=0,display=off,x-igd-opregion=on,x-vga=on \
-monitor stdio \
"$@"
Перед запуском я создаю два устройства следующим образом(да-да, потом внесу создание устройств в скрипт):
localhost /home/towe # uuidgen
2c9c2336-4a44-48fa-a36b-28ece57a13ed
localhost /home/towe # echo 2c9c2336-4a44-48fa-a36b-28ece57a13ed > /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_8/create
localhost /home/towe # uuidgen
291bf434-aca7-41b6-9b7e-9e05ffb00f0e
localhost /home/towe # echo 291bf434-aca7-41b6-9b7e-9e05ffb00f0e > /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_8/create
Что я делаю не так, может кто-то сталкивался с ошибкой? Другой вопрос: обязательно ли создавать две виртуальных видеокарты(как я это понимаю, одна для host, другая для guest)? Просто встройка поддерживает только одну i915-GVTg_V5_4, а i915-GVTg_V5_8 работает на низком разрешении.