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