RTX 5070 Ti passthrough on Proxmox VE 9.2 (AM5, B650)
My daily desktop is a VM. The RTX 5070 Ti, the USB controller and a games NVMe all go straight into it from the Proxmox host. This is that setup, pasted off the running box. When a BIOS or driver update changes something, this page gets a new date.
Tested on
| Part | Value |
|---|---|
| Board | Gigabyte B650 AORUS ELITE AX V2, BIOS F41 (2026-05-21) |
| CPU | AMD Ryzen 9 7950X3D, 16C/32T |
| GPU | NVIDIA GeForce RTX 5070 Ti, PCI IDs 10de:2c05 (GPU) and 10de:22e9 (audio) |
| Host | Proxmox VE 9.2.20, kernel 7.0.14-19-pve, ZFS root |
| Guest | Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, nvidia-driver-595-open 595.99.02 |
| Display | 3440x1440 at 164.9 Hz VRR (DisplayPort) plus 2560x1440 at 143.9 Hz (HDMI), both off the 5070 Ti |
BIOS F41 broke it, one setting fixed it
After updating this board from F33 to F41, the VM would not start. The host log said:
vfio 0000:01:00.0: Firmware has requested this device have a 1:1 IOMMU mapping, rejecting configuring the device without a 1:1 mapping
The fix is in the BIOS, under Settings → AMD CBS → NBIO Common Options:
| Setting | Set to |
|---|---|
| IOMMU | Enabled (not Auto; Enabled is what reveals the next option) |
| Kernel DMA Protection Indicator | Disabled |
| Pre-boot DMA Protection | Enabled (left as is) |
After saving, the boot log held zero "1:1" lines and the VM started with the GPU, the USB controller and an NVMe drive all passed through. The same fix is reported on Gigabyte X870E boards with newer AGESA [2][3].
Tip: systemctl reboot --firmware-setup on the host boots straight into the BIOS, no key timing.
Host setup
The commands follow the Proxmox admin guide, PCI(e) Passthrough section [1]. Run them in the node shell.
1. Load the VFIO modules
printf "vfio\nvfio_iommu_type1\nvfio_pci\n" > /etc/modules-load.d/vfio.conf
2. Find the card's IDs
lspci -nn | grep -i nvidia
Two lines come back, the GPU and its HDMI audio. Note both [10de:xxxx] IDs and the bus address (here 01:00).
3. Reserve the card for VMs
echo "options vfio-pci ids=10de:2c05,10de:22e9" > /etc/modprobe.d/vfio.conf
printf "blacklist nouveau\nblacklist nvidiafb\n" > /etc/modprobe.d/blacklist-nouveau.conf
update-initramfs -u -k all
reboot
Swap in your own IDs from step 2. This host needed no extra kernel parameters: /proc/cmdline is the Proxmox default (quiet, ZFS root), with no iommu=pt and no nomodeset.
4. Check it took
lspci -nnk -s 01:00
cat /proc/cmdline
Both functions must show Kernel driver in use: vfio-pci.
The VM
The passthrough lines from qm config on the running VM:
bios: ovmf
machine: q35
cpu: host
efidisk0: local-zfs:vm-210-disk-0,efitype=4m,pre-enrolled-keys=0,size=1M
hostpci0: 0000:01:00,pcie=1
vga: virtio
hostpci0: 0000:01:00with no function number passes both the GPU and its audio.vga: virtiois kept. Turning on Primary GPU (x-vga) withvga: nonehung the guest at boot here seen here.- Monitors plug into the 5070 Ti, not the motherboard.
Shell equivalent, VM 100 and the card at 01:00:
qm set 100 -hostpci0 0000:01:00,pcie=1
Guest driver
RTX 50 (Blackwell) cards are supported only by NVIDIA's open kernel modules [4], so on Ubuntu pick the -open package:
sudo apt update
sudo ubuntu-drivers list
sudo apt install -y nvidia-driver-595-open
sudo reboot
nvidia-smi
Known snags
| Symptom | What fixed it |
|---|---|
1:1 IOMMU mapping after a BIOS update | The BIOS setting above. |
Could not open /dev/vfio/NN: Device or resource busy on start | Seen right after a qm shutdown. Nothing held the device seconds later; a second qm start worked seen here. |
| Host or installer boots to a black screen | Add nomodeset to the kernel line (installer: press e on the boot entry). This host did not need it after install. |
| Guest hangs at boot with Primary GPU on | Primary GPU off, vga: virtio seen here. |