Skip to main content
Mini PC Lab logo
Mini PC Lab Tested. Benchmarked. Reviewed.
tutorials

How to Pass Through GPU on Proxmox (Mini PC) — VFIO Guide | Mini PC Lab

By Mini PC Lab Team · January 21, 2026 · Updated March 27, 2026

This article contains affiliate links. If you purchase through our links, we may earn a commission at no extra cost to you. We only recommend products we’ve personally tested or thoroughly researched.

Proxmox GPU passthrough on mini PC guide hero image

GPU passthrough in Proxmox gives a virtual machine direct hardware access to a GPU — no virtualization overhead, near-native graphics performance. On mini PCs, this means passing the AMD Radeon 780M iGPU to a VM for AI inference, video transcoding, or a Windows gaming VM. This guide covers the complete setup.

Before You Start

Requirements:

  • Mini PC with AMD Radeon 780M iGPU (Beelink SER9 PRO+, GMKtec K11, Minisforum UM790 Pro) or a discrete GPU via OculLink/Thunderbolt
  • Proxmox VE 8.x installed with IOMMU enabled
  • VM to pass the GPU to (Windows 11 or Linux)
  • Estimated time: 60–90 minutes

Important limitation for iGPU passthrough: Passing the only GPU in a system to a VM leaves Proxmox with no display output. This is fine for headless operation managed via web UI, but you need the Proxmox web UI accessible over the network before starting.

For discrete GPU (via OculLink on GMKtec K11): the iGPU remains available for Proxmox; the discrete GPU is passed to a VM. This is the cleaner setup. GMKtec K11 review covers OculLink GPU details.


Understanding GPU Passthrough Requirements

GPU passthrough relies on IOMMU — a hardware feature that isolates PCIe devices into groups. For passthrough to work:

  1. IOMMU must be enabled in BIOS (AMD-Vi for AMD, VT-d for Intel)
  2. The GPU must be in its own IOMMU group — or you must pass all devices in its group
  3. VFIO drivers must claim the GPU before Proxmox’s own drivers do

AMD Ryzen mini PCs (Zen 4) have better IOMMU group separation than Intel N-series. The Radeon 780M typically lands in its own IOMMU group or shares only with closely related devices, making passthrough feasible.


Step 1: Enable IOMMU in Proxmox

If not already done during Proxmox setup:

# For AMD systems (most mini PCs with Radeon 780M)
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"/' /etc/default/grub

# For Intel systems
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"/' /etc/default/grub

update-grub
reboot

After reboot, verify IOMMU is active:

dmesg | grep -e DMAR -e IOMMU
# AMD: AMD-Vi: IOMMU enabled
# Intel: DMAR: IOMMU enabled

Step 2: Check IOMMU Groups

Your GPU must be in an IOMMU group, ideally alone or with only related devices.

# List all IOMMU groups and their devices
for d in /sys/kernel/iommu_groups/*/devices/*; do
  n=${d#*/iommu_groups/*}; n=${n%%/*}
  printf 'IOMMU Group %s ' "$n"
  lspci -nns "${d##*/}"
done

Find the group containing your GPU. On a Beelink SER9 PRO+ or similar Ryzen mini PC, look for:

IOMMU Group 6: 04:00.0 Display controller [0380]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix3 [1002:15bf]

Identify your GPU’s PCI IDs:

lspci | grep -i vga
# Example: 04:00.0 Display controller: AMD Radeon 780M

Note the PCI address (04:00.0) and the vendor:device IDs from the IOMMU group listing (1002:15bf).

If the GPU shares an IOMMU group with other devices, you must pass all devices in that group to the VM, or use the ACS Override Patch (not covered here — more complex and potentially unstable).


Step 3: Load VFIO Modules

VFIO drivers claim the GPU before Proxmox’s drivers can load. This leaves the GPU available exclusively for VM passthrough.

# Add VFIO modules to load at boot
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules

Bind VFIO to your GPU’s vendor:device IDs:

# Replace 1002:15bf with your actual vendor:device IDs
echo "options vfio-pci ids=1002:15bf" > /etc/modprobe.d/vfio.conf

Blacklist the AMD GPU driver so it doesn’t claim the GPU before VFIO:

echo "blacklist amdgpu" > /etc/modprobe.d/blacklist-amdgpu.conf
echo "blacklist radeon" >> /etc/modprobe.d/blacklist-amdgpu.conf

Update initramfs and reboot:

update-initramfs -u -k all
reboot

Verify VFIO claimed the GPU:

lspci -nnk | grep -A3 "Display"
# Should show: Kernel driver in use: vfio-pci
# (Not: amdgpu)

Step 4: Create the VM

In the Proxmox web UI, create a new VM with these settings:

System tab:

  • Machine: q35 (required for PCIe passthrough)
  • BIOS: OVMF (UEFI) — add an EFI disk when prompted
  • SCSI Controller: VirtIO SCSI Single

Display tab:

  • Graphic card: None — the passthrough GPU will be the display

After creating the VM, add the GPU:

VM → Hardware → Add → PCI Device:

  • Device: select 0000:04:00.0 (your GPU’s PCI address)
  • All Functions: check (passes all GPU functions including audio)
  • ROM-Bar: check
  • PCI-Express: check

Step 5: Add GPU ROM (AMD iGPU Specific)

AMD iGPUs sometimes require a vBIOS ROM file for clean passthrough. Without it, the VM may not initialize the GPU correctly.

Extract the vBIOS from the running system:

cd /sys/bus/pci/devices/0000:04:00.0/
echo 1 > rom
cat rom > /root/amd-780m.rom
echo 0 > rom

Verify the ROM is valid:

file /root/amd-780m.rom
# Should show: data (a non-zero file)
xxd /root/amd-780m.rom | head -2
# Should start with: 55 aa (valid ROM signature)

Copy the ROM to a location Proxmox can access it:

cp /root/amd-780m.rom /usr/share/kvm/amd-780m.rom

Edit the VM config to reference the ROM:

nano /etc/pve/qemu-server/[VM-ID].conf

Find the hostpci0 line and add the ROM:

hostpci0: 0000:04:00.0,allotfunc=1,pcie=1,romfile=amd-780m.rom

Step 6: Configure VM for GPU

Start the VM (without a display for now — you’ll connect via the passthrough GPU once it initializes).

For Windows VMs:

  1. Windows detects “Microsoft Basic Display Adapter” initially
  2. Install AMD drivers: download AMD Software: Adrenalin Edition for Radeon 780M from amd.com
  3. After driver install, the Radeon 780M appears in Device Manager
  4. Connect a physical monitor to the mini PC’s HDMI/DisplayPort (the GPU passthrough output)

For Linux VMs:

# Install AMDGPU driver
sudo apt install firmware-amd-graphics
sudo apt install --install-recommends linux-image-amd64

# Verify GPU detection
lspci | grep -i vga
dmesg | grep amdgpu

Step 7: Pass Audio (Optional)

The Radeon 780M includes an HDMI audio controller. If you want HDMI audio from the VM:

# Find the audio device associated with your GPU
lspci | grep Audio
# Example: 04:00.1 Audio device: AMD/ATI Rembrandt Radeon HD Audio

In the VM Hardware settings, add another PCI Device for 0000:04:00.1 (the audio controller).


AMD iGPU Passthrough — Known Issues and Workarounds

Reset bug: AMD iGPUs have a known issue where the GPU doesn’t properly reset after the VM shuts down. The next VM start may fail.

Workaround — vendor-reset kernel module:

# Install vendor-reset
apt install pve-headers
git clone https://github.com/gnif/vendor-reset.git
cd vendor-reset
make
make install
echo "vendor-reset" >> /etc/modules
update-initramfs -u
reboot

This fixes the reset issue for AMD RDNA2/RDNA3 iGPUs including the Radeon 780M.

Error: VFIO_MAP_DMA failed

Increase the IOMMU memory limit:

echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
update-initramfs -u
reboot

The GMKtec K11’s OculLink provides PCIe 4.0 x4 bandwidth to a connected discrete GPU. This is cleaner than iGPU passthrough because:

  • The iGPU stays available for Proxmox console/display
  • The discrete GPU passes through completely to the VM
  • No reset bug with most NVIDIA cards

Connect a compatible GPU enclosure (JSAUX MG100, ADT-Link R43SG) to the OculLink port. The GPU appears as a PCIe device:

lspci | grep -i vga
# Shows both: AMD Radeon 780M (iGPU) AND your discrete GPU

Follow Steps 2–6 above, targeting the discrete GPU’s PCI address instead of the 780M.



→ Check Current Price: GMKtec K11 on Amazon — OculLink PCIe 4.0 x4 for discrete GPU passthrough → Check Current Price: Beelink SER9 PRO+ on Amazon — AMD Radeon 780M iGPU passthrough → Check Current Price: Minisforum UM790 Pro on Amazon — AMD Radeon 780M, well-tested for passthrough

See also: GMKtec K11 review for OculLink details | best mini PC for AI server | how to install Proxmox on mini PC