Привет, ребята, я тут новичок. Провёл выходные, пытаясь настроить полный passthrough моего IGD, и хочу поделиться своими конфигурациями — может, кому-то пригодятся. Вокруг есть несколько тем, но ни одна из них сразу не сработала с моим железом. Мне понадобилось время, чтобы заставить Intel-драйвы работать без ошибок Code 43. В итоге всё получилось, и я получил вывод по DisplayPort. YouTube и всё остальное работает без проблем. Даже могу несколько раз подряд запускать и останавливать ВМ — ничто не взрывается (пока что).
Что я хотел:
Мне нужна была одна из моих proxmox ВМ, на которой стоит Windows 11 с полным passthrough IGD, чтобы иметь вывод по DisplayPort/HDMI.
Моя конфигурация:
MB: ASRock Rack W680D4U
CPU: Intel i7-14700
Настройки BIOS: стандартные + выключил resizable PCIe bar для IGD.
Я скачал 6-14-qemu10.rom отсюда:
Сохранил в /usr/share/kvm
root@vmm:~# shasum /usr/share/kvm/6-14-qemu10.rom
8a56648e10dc34bf76e02b79285abf277815f629 /usr/share/kvm/6-14-qemu10.rom
Дальше нужно следовать обычным инструкциям (их можно найти в разных местах) по отвязыванию IGD от хоста (см. конец темы)
/etc/pve/qemu-server/112.conf
Code:
agent: 1
args: -set device.hostpci0.x-igd-opregion=on -set device.hostpci0.x-igd-legacy-mode=on -set device.hostpci0.x-igd-gms=0x2
bios: ovmf
boot: order=scsi0;ide0;net0
cores: 16
cpu: host,hidden=1,flags=+pcid
cpuunits: 50
efidisk0: zfs-vm:vm-112-disk-0,efitype=4m,size=4M,pre-enrolled-keys=0
vga: none
machine: pc-i440fx-10.0+pve1
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=6-14-qemu10.rom
hostpci1: 0000:00:1f.3
hotplug: 0
memory: 32768
meta: creation-qemu=9.2.0,ctime=1758317594
name: win
net0: virtio=BC:24:11:AA:AC:BD,bridge=vmbr0
numa: 0
ostype: win11
scsi0: zfs-vm:vm-112-disk-1,iothread=1,size=128G,ssd=1
scsihw: virtio-scsi-single
sockets: 1
tpmstate0: zfs-vm:vm-112-disk-2,size=4M,version=v2.0
Примечание: если вам не нужна аудио поддержка HDMI, можете не добавлять hostpci1: 0000:00:1f.3
Различные конфиги для отвязки драйвера i915 от хоста
Code:
root@vmm:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:a780
root@vmm:~# cat /etc/modprobe.d/blacklist-i915.conf
blacklist i915
root@vmm:~# grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset video=efifb:off video=vesafb:off intel_iommu=on iommu=pt vfio-pci.ids=8086:a780"
update-initramfs -u -k all
update-grub
Что я хотел:
Мне нужна была одна из моих proxmox ВМ, на которой стоит Windows 11 с полным passthrough IGD, чтобы иметь вывод по DisplayPort/HDMI.
Моя конфигурация:
MB: ASRock Rack W680D4U
CPU: Intel i7-14700
Настройки BIOS: стандартные + выключил resizable PCIe bar для IGD.
Я скачал 6-14-qemu10.rom отсюда:
Сохранил в /usr/share/kvm
root@vmm:~# shasum /usr/share/kvm/6-14-qemu10.rom
8a56648e10dc34bf76e02b79285abf277815f629 /usr/share/kvm/6-14-qemu10.rom
Дальше нужно следовать обычным инструкциям (их можно найти в разных местах) по отвязыванию IGD от хоста (см. конец темы)
/etc/pve/qemu-server/112.conf
Code:
agent: 1
args: -set device.hostpci0.x-igd-opregion=on -set device.hostpci0.x-igd-legacy-mode=on -set device.hostpci0.x-igd-gms=0x2
bios: ovmf
boot: order=scsi0;ide0;net0
cores: 16
cpu: host,hidden=1,flags=+pcid
cpuunits: 50
efidisk0: zfs-vm:vm-112-disk-0,efitype=4m,size=4M,pre-enrolled-keys=0
vga: none
machine: pc-i440fx-10.0+pve1
hostpci0: 0000:00:02.0,legacy-igd=1,romfile=6-14-qemu10.rom
hostpci1: 0000:00:1f.3
hotplug: 0
memory: 32768
meta: creation-qemu=9.2.0,ctime=1758317594
name: win
net0: virtio=BC:24:11:AA:AC:BD,bridge=vmbr0
numa: 0
ostype: win11
scsi0: zfs-vm:vm-112-disk-1,iothread=1,size=128G,ssd=1
scsihw: virtio-scsi-single
sockets: 1
tpmstate0: zfs-vm:vm-112-disk-2,size=4M,version=v2.0
Примечание: если вам не нужна аудио поддержка HDMI, можете не добавлять hostpci1: 0000:00:1f.3
Различные конфиги для отвязки драйвера i915 от хоста
Code:
root@vmm:~# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:a780
root@vmm:~# cat /etc/modprobe.d/blacklist-i915.conf
blacklist i915
root@vmm:~# grep CMDLINE_LINUX_DEFAULT /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset video=efifb:off video=vesafb:off intel_iommu=on iommu=pt vfio-pci.ids=8086:a780"
update-initramfs -u -k all
update-grub
