Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
805 views
in Technique[技术] by (71.8m points)

gpu - VFIO - igpu passthrough on Intel 4770 to a virtual machine (Host Os Proxmox)

I am running the latest Proxmox (6.3-3 at this time, fully updated) and attempting to passthrough the onboard GPU on my Core i7 4770 CPU to a Windows 10 VM. I have already enabled iommu on the system and also told grub to not let the system claim the device by adding intel_iommu=on video=efifb:off to the grub kernel options. I've verified IOMMU is actually available by checking dmesg

# dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
[    0.007556] ACPI: DMAR 0x00000000D88C33C8 0000B8 (v01 INTEL  HSW      00000001 INTL 00000001)
[    0.083595] DMAR: IOMMU enabled
[    0.180445] DMAR: Host address width 39
[    0.180446] DMAR: DRHD base: 0x000000fed90000 flags: 0x0
[    0.180449] DMAR: dmar0: reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
[    0.180449] DMAR: DRHD base: 0x000000fed91000 flags: 0x1
[    0.180451] DMAR: dmar1: reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da
[    0.180452] DMAR: RMRR base: 0x000000d8842000 end: 0x000000d884efff
[    0.180452] DMAR: RMRR base: 0x000000db000000 end: 0x000000df1fffff
[    0.180454] DMAR-IR: IOAPIC id 8 under DRHD base  0xfed91000 IOMMU 1
[    0.180454] DMAR-IR: HPET id 0 under DRHD base 0xfed91000
[    0.180455] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[    0.180831] DMAR-IR: Enabled IRQ remapping in x2apic mode
[    0.874497] DMAR: No ATSR found
[    0.874527] DMAR: dmar0: Using Queued invalidation
[    0.874531] DMAR: dmar1: Using Queued invalidation
[    1.026818] DMAR: Intel(R) Virtualization Technology for Directed I/O

I've also added the iGPU (and associated audio device) to blacklist to prevent the host OS from claiming it:

# cat /etc/modprobe.d/blacklist.conf
blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

# cat /etc/modprobe.d/vfio.conf
options vfio-pci ids=8086:0412 disable_vga=1

Finally, I setup a new Windows 10 VM on my host along with the q35 chipset and uEFI (OVMF) BIOS as this is apparently the most "compatible" way to pass through hardware. I've also got an external screen plugged into the HDMI port of my Proxmox host. I understand when the VM boots up, I should see this screen come to life. The qemu config file of the VM is below:

agent: 1
balloon: 0
bios: ovmf
boot: order=virtio0;ide2;net0
cores: 4
efidisk0: local-1tb-nvme-thinpool:vm-118-disk-1,size=4M
hostpci0: 00:02,pcie=1,x-vga=1
ide2: none,media=cdrom
machine: q35
memory: 4096
name: VFIOtest
net0: virtio=52:D7:02:CA:B6:2E,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
scsihw: virtio-scsi-pci
smbios1: uuid=cd9d41e9-d8c2-465e-94dc-798aa8e517e2
sockets: 1
virtio0: local-1tb-nvme-thinpool:vm-118-disk-0,backup=0,discard=on,size=60G
vmgenid: 2cb8ce5e-5dda-4870-9cf3-774bb025057f

Once I've done that I can boot the VM. As soon as I boot the VM, the screen goes to standby indicating no signal. I can however then RDP into the system and I see that the Intel HD Graphics 4600 is visible in device manager. So I installed the latest drivers from the Intel website. Unfortunately, the device will not start and shows an exclamation mark next to it. The Device Status shows

Windows has stopped this device because it has reported problems. (Code 43)

Unfortunately, the code 43 error just means something is wrong, it isn't very specific on what is causing this.

Not too sure what to try from this point on - any assistance on where to continue fixing this would be useful.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Code 43 is a NVIDIA specific error; you will need a way to mask the true CPU by using the FancyId parameter. Here is a link to a video that covers some of the process revolving around the error you are seeing.

Can you edit the original post to contain your grub config file? There are some more recent changes to Proxmox 6.3 that might need to be reconfigured; there are almost no articles about setting up passthrough on 6.3.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...