How to Enable iGPU Passthrough on Proxmox 8.2.2 with Windows 11 on Dell Optiplex 3050

In this guide, we’ll go through the steps to successfully pass through an Intel iGPU to a Windows 11 VM running on Proxmox 8.2.2 on a Dell Optiplex 3050. This setup uses an Intel Core i7-6700T and allows full utilization of the iGPU in the virtual machine.

Prerequisites:

  • Proxmox 8.2.2 installed.
  • Dell Optiplex 3050 with an Intel i7-6700T.
  • Proxmox configured with UEFI boot mode and hardware virtualization enabled in the BIOS.

Step 1: Configure GRUB for IOMMU and PCIe ACS Override

To begin, you’ll need to enable IOMMU and configure the ACS override in your GRUB settings. This is essential for passing through PCI devices like the iGPU.

Edit the GRUB file:

nano /etc/default/grub

Add the following to the GRUB_CMDLINE_LINUX_DEFAULT line:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt video=efifb:off pcie_acs_override=downstream,multifunction"

Save the file and update GRUB:

update-grub
reboot

Step 2: Configure VFIO for the iGPU

To configure iGPU passthrough, you need to identify the PCI ID of your iGPU and bind it to vfio-pci.

Get the PCI ID:

Run this command to list all PCI devices:

lspci -nn

Look for your Intel iGPU, something like:

00:02.0 VGA compatible controller [8086:1912] (rev 06)

The ID is 8086:1912 (vendor).

Configure VFIO:

Edit /etc/modprobe.d/vfio.conf and add:

options vfio-pci ids=8086:1912 disable_vga=1
options vfio-pci disable_idle_d3=1

Save and reboot.

Step 3: Blacklist the i915 Driver

Since the iGPU is now being passed to the VM, we need to ensure it isn’t used by the host by blacklisting the i915 driver.

Edit the blacklist file:

nano /etc/modprobe.d/blacklist.conf

Add the following line:

blacklist i915

Step 4: Configure the Windows 11 VM

Now, we will configure the Windows 11 VM to use the iGPU.

Edit the VM’s configuration file (replace 101 with your VM ID):

    nano /etc/pve/qemu-server/101.conf

    Add the following line for iGPU passthrough:

    args: -device vfio-pci,host=00:02.0,x-igd-opregion=on

    Your final VM configuration should look something like this:

    args: -device vfio-pci,host=00:02.0,x-igd-opregion=on
    balloon: 0
    bios: ovmf
    boot: order=scsi0;ide0;ide2;net0
    cores: 8
    cpu: host,hidden=1,flags=+pcid
    efidisk0: local-lvm:vm-101-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
    ide0: SSD500:iso/virtio-win-0.1.262.iso,media=cdrom,size=708140K
    ide2: none,media=cdrom
    machine: pc-q35-8.1
    memory: 8192
    scsi0: local-lvm:vm-101-disk-1,iothread=1,size=80G
    smbios1: uuid=f503eb2e-687b-4e5c-8aef-f959aa02081d
    sockets: 1
    tpmstate0: local-lvm:vm-101-disk-3,size=4M,version=v2.0

    Step 5: BIOS Settings

    Before rebooting the system, ensure you have the correct BIOS settings configured on your Optiplex 3050.

    1. Enable Virtualization:
      • Ensure both Intel VT-d and Intel VT-x are enabled.
    2. Disable iGPU Multi-Monitor:
      • If available, disable the multi-monitor support for the iGPU to avoid conflicts.

    Hardware Details:

    • CPU: Intel Core i7-6700T @ 2.80 GHz
    • Memory: 16 GB, 8 GB allocated to the VM
    • Host System: Dell Optiplex 3050
    • Proxmox Version: 8.2.2 (Kernel: 6.8.4-2-pve)

    Share this Article: