Проброс видеокарты в QEMU/KVM

Ваша видео карта nvidia не предназначена для вывода изображение куда либо вообще.
Можете попробовать intel если она gvt поддерживает...
Ошибки в тексте-неповторимый стиль автора©
sawanzard
RDP / OBS / QXL
Вы ещё не все трёх буквенные сокращения перечислили...
Ошибки в тексте-неповторимый стиль автора©
Зачем передается параметр ядра "vfio-pci.ids=10de:134f"?
В вики написано:
linux kernel does not include vfio-pci as a built-in module and therefore needs to be loaded en configured separately like so.
/etc/modprobe.d/vfio.conf
options vfio-pci ids=10de:13c2,10de:0fbb
То есть, ядро из реп Арча не содержит vfio-pci и должно быть загружено отдельно.
А дальше написано:
If your kernel comes with the vfio-pci module built in, as opposed to it being a module that needs to be loaded separately. All that should be required to isolate the GPU is to pass the device IDs as kernel parameters like so:
vfio-pci.ids=10de:13c2,10de:0fbb
То есть если ядро содержит vfio-pci, тогда для изолирования GPU нужно передать параметр ядра.
А сделано и то, и другое. Если используется ванильное ядро, параметр ядра передавать не нужно. И наоборот, если ядро включает в себя vfio-pci, тода нужно передавать только параметр ядра.

Плюс я так и не понял, что именно не работает. Виртуальная машина не запускается? Или запускается, но выдает черный экран?
Arch x86_64, Linux 5.16.7, Plasma 5.23.5
Не хватает kvm=off:
-cpu host,kvm=off
Arch x86_64, Linux 5.16.7, Plasma 5.23.5
1. Рекомендую использовать Tianocore UEFI (пакет ovmf). Но windows, скорее всего, придется переустановить. Думаю, это не проблема, раз установка не ушла дальше драйверов.
2. Примерный конфиг:
qemu-system-x86_64 \
-name windows \
-enable-kvm \
-nodefaults \
-rtc base=localtime,clock=host \
-machine pc,accel=kvm \
-drive if=pflash,format=raw,readonly,file=/usr/share/ovmf/x64/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/path/to/vm/directory/OVMF_VARS.fd \
-cpu host,kvm=off \
-smp cpus=8,sockets=1,cores=8,threads=1 \
-m 8G \
-nic user,model=e1000,mac=fe:00:00:00:00:01 \
-drive file=/path/to/vm.qcow2,format=qcow2,if=virtio,aio=native,cache=directsync,media=disk \
-drive file=/path/to/windows.iso,format=raw,media=cdrom \
-drive file=/path/to/virtio.iso,format=raw,media=cdrom \
-device vfio-pci,host=01:00.0,multifunction=on,x-vga=on \
-vga qxl \
-usb \
-device usb-tablet \
-monitor stdio \
-boot menu=on
Параметр -rtc ... также рекомендую для гостевых windows-систем, чтобы время выставлялось корректно.
Параметр -machine я выбираю pc. Точную сслыку не дам, но, вроде, сам автор рекомендует использовать для windows "pc", а для linux "q35".
Дальше идет подключение UEFI. OVMF_CODE.fd обязательно должен быть readonly. OVMF_VARS.fd надо скопировать из /usr/share/ovmf/x64 в директорию виртуальной машины (или куда удобнее, можно хоть в /tmp, главное в конфиге указать правильный путь).
В -cpu ... обязательно kvm=off.
В -smp ... и -m ... на усмотрение, это лишь пример
Дальше подключаем сеть (т. к. ранее было указано -nodefaults, что означает отсутствие стандартного набора устройств: vga, ethernet, serial и пр.)
Дальше подключаем носители (cdrom'ы только во время установки). aio и cache тоже на усмотрение, в примере настройки на максимальную производительность в ущерб сохранности данных в случаях сбоев питания и пр.
Дальше, собственно, сама видеокарта nVidia. Затем QXL. usb-tablet может понадобиться, чтобы не происходил перехват устройств ввода виртуалкой (ну либо каждый раз ctrl-alt-g для высвобождения клавиатуры и мыши. Опционально можно пробросить геймпады параметром -device usb-host,vendorid=0x0000,productid=0x0000, чтобы они сразу пробрасывались в виртуалку).
Опционально -monitor ... если нужно управлять витруалкой (на лету добавлять устройства или отправить сигнал завершения работы)
Параметр -boot ... удалить после установки ОС.
Arch x86_64, Linux 5.16.7, Plasma 5.23.5
 
Зарегистрироваться или войдите чтобы оставить сообщение.