Cloud and Self-Hosting
GPU Passthrough on Proxmox VE 9 (Intel Xeon + AMD FirePro W5100): Step-by-Step Guide
By Amjid Ali · · Updated · 3 min read
In this article
Prefer to watch? This video walks through it step by step. Prefer to read? The full guide is below.
This detailed tutorial explains how to pass an AMD FirePro W5100 GPU to a VM running on Proxmox VE 9 with an Intel Xeon CPU (such as HP Z440). The method works for both Windows and Linux guests and ensures full hardware acceleration using AMD’s native drivers.
The FirePro W5100 shows up as two PCI functions on one physical card:
•0000:02:00.0– GPU (Video Processor)
•0000:02:00.1– HDMI Audio Controller
For best results, pass both functions together.
Prerequisites
- Proxmox VE 9 installed and updated
- Intel Xeon CPU with VT-d support
- AMD FirePro W5100 installed in a dedicated PCIe slot
- Familiarity with basic Linux commands and file editing
Identify Your GPU and IDs
SSH into your Proxmox host and run:
lspci -nn | egrep -i 'vga|audio'
You’ll see something like:
02:00.0 VGA compatible controller [0300]: AMD/ATI Bonaire [FirePro W5100] [1002:6649]
02:00.1 Audio device [0403]: AMD/ATI HDMI Audio [1002:aac9]
Take note of:
- Bus addresses →
0000:02:00.0and0000:02:00.1 - Device IDs →
1002:6649and1002:aac9
Enable Virtualization in BIOS
- Reboot and press F10 (or Esc → F10) for BIOS.
- Go to Security → System Security.
- Enable:
• Intel Virtualization Technology (VT-x)
• Intel VT-d (Directed I/O) - Save changes and reboot.
Enable IOMMU in Proxmox VE 9
Check how your system boots:
[ -d /sys/firmware/efi ] && echo "UEFI" || echo "Legacy BIOS"
If you see Legacy BIOS → use GRUB
nano /etc/default/grub
Replace the line containing GRUB_CMDLINE_LINUX_DEFAULT with:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
Apply and reboot:
update-grub
reboot
If you see UEFI → use systemd-boot
nano /etc/kernel/cmdline
Add:
quiet intel_iommu=on iommu=pt
Then run:
proxmox-boot-tool refresh
reboot
Load VFIO Modules & Bind the GPU
1. Add VFIO modules to load at boot
cat <<'EOF' >> /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
EOF
2. Bind your GPU to VFIO
nano /etc/modprobe.d/vfio.conf
options vfio-pci ids=1002:6649,1002:aac9 disable_vga=1
3. Blacklist the host AMD drivers
nano /etc/modprobe.d/blacklist-gpu.conf
blacklist amdgpu
blacklist radeon
4. Rebuild initramfs and reboot
update-initramfs -u -k all
reboot
Verify IOMMU & Driver Binding
Check if IOMMU is active:
dmesg | egrep -i 'dmar|iommu'
You should see “DMAR: IOMMU enabled”.
Confirm your GPU is bound to vfio-pci:
lspci -nnk -s 02:00.0
lspci -nnk -s 02:00.1
Expected output → Kernel driver in use: vfio-pci
List IOMMU groups (optional):
find /sys/kernel/iommu_groups/ -type l | sort
Attach the GPU to a VM
Option A – GUI
- Open your VM → Hardware → Add → PCI Device
- Select
0000:02:00.0and0000:02:00.1, or tick All Functions - Enable PCI Express
- Under Options → BIOS, set OVMF (UEFI)
- Start the VM
Option B – CLI config
nano /etc/pve/qemu-server/<VMID>.conf
machine: q35
hostpci0: 0000:02:00,pcie=1
(This single line includes both the GPU and audio functions.)
Guest OS Setup
Windows 10/11
- Attach a monitor to the GPU.
- Install the official AMD FirePro W5100 driver from AMD.com.
- Reboot and confirm GPU acceleration in Device Manager.
Linux (Ubuntu/Debian)
- The
amdgpuorradeondriver loads automatically. - Check with:
lspci -k | egrep -A3 'VGA|Audio' glxinfo | grep -i render
NoVNC will not display the GPU output. Connect a physical monitor to the FirePro.
Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
| VM won’t start | GPU still claimed by host | Confirm vfio-pci in use (lspci -nnk) |
| Black screen | No primary GPU / wrong firmware | Use OVMF (UEFI) and attach monitor |
| GPU shares IOMMU group | Motherboard layout | Move to different slot or add pcie_acs_override=downstream |
| VM works once then fails | AMD reset bug | Stop VM fully before restart or install vendor-reset |
| Host loses display | Host trying to use GPU | Keep AMD drivers blacklisted on host |
Checklist & Verification
- BIOS: VT-x and VT-d enabled
- Kernel flags:
intel_iommu=on iommu=pt - VFIO modules load on boot
- AMD drivers blacklisted
lspci -nnkshowsvfio-pcifor GPU + audio- VM uses
machine:q35+OVMF+ PCIe device - Guest drivers installed and display working
Learn Proxmox in Depth
If you’d like a complete, hands-on Proxmox training—from installation and clustering to networking, storage, firewalls, and GPU passthrough—take my full Udemy course:
👉 Proxmox Virtualization Environment – Complete Training
By Amjid Ali
You’ll learn real-world enterprise deployment techniques using open-source virtualization with Proxmox VE 9.
Author: Amjid Ali | Website: https://syncbricks.com | LinkedIn: linkedin.com/in/amjidali
Keep reading
Cloud and Self-HostingInstalling Kubernetes Dashboard on a K3s High Availability Cluster (Ubuntu 24.04)The Kubernetes Dashboard is a browser-based UI that allows you to visualize, manage, and troubleshoot workloads and resources inside your Kubernetes clu... · 2 min read
Cloud and Self-HostingInstall a 3-Node HA Kubernetes (K3s) Cluster on Ubuntu Server 24.04 Step-by-Step (Proxmox/VM Friendly)Step-by-step guide to install a 3-node HA Kubernetes (K3s) cluster on Ubuntu Server 24.04 using Proxmox VMs. Includes setup, firewall rules, tokens, and verification. · 5 min read
Cloud and Self-HostingHow to Install and Configure n8n on Oracle Cloud Always Free VM (Ubuntu 24.04)n8n (short for nodemation) is an open-source workflow automation platform that allows you to connect applications and APIs, automate repetitive tasks, a... · 4 min read