Passthrough de la RTX 5070 Ti en Proxmox VE 9.2 (AM5, B650)

Probado el 2026-10-17 · actualizado el 2026-10-17

Mi escritorio de cada día es una VM. La RTX 5070 Ti, el controlador USB y un NVMe de juegos van directo a ella desde el host Proxmox. Esta es esa configuración, copiada de la máquina en marcha. Cuando una actualización de BIOS o de driver cambia algo, esta página recibe una fecha nueva.

Probado en

PiezaValor
PlacaGigabyte B650 AORUS ELITE AX V2, BIOS F41 (2026-05-21)
CPUAMD Ryzen 9 7950X3D, 16C/32T
GPUNVIDIA GeForce RTX 5070 Ti, IDs PCI 10de:2c05 (GPU) y 10de:22e9 (audio)
HostProxmox VE 9.2.20, kernel 7.0.14-19-pve, raíz ZFS
GuestUbuntu 26.04.1 LTS, kernel 7.0.0-38-generic, nvidia-driver-595-open 595.99.02
Pantalla3440x1440 a 164.9 Hz VRR (DisplayPort) más 2560x1440 a 143.9 Hz (HDMI), ambas desde la 5070 Ti

La BIOS F41 lo rompió, un ajuste lo arregló

Después de actualizar esta placa de F33 a F41, la VM no arrancaba. El log del host decía:

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

El arreglo está en la BIOS, en Settings → AMD CBS → NBIO Common Options:

AjustePoner en
IOMMUEnabled (no Auto; Enabled es lo que revela la siguiente opción)
Kernel DMA Protection IndicatorDisabled
Pre-boot DMA ProtectionEnabled (se deja igual)

Después de guardar, el log de arranque no tuvo ninguna línea "1:1" y la VM arrancó con la GPU, el controlador USB y un NVMe, todos pasados directo (passthrough). El mismo arreglo se reporta en placas Gigabyte X870E con AGESA más nuevo [2][3].

Tip: systemctl reboot --firmware-setup en el host arranca directo a la BIOS, sin calcular el momento de la tecla.

Configuración del host

Los comandos siguen la guía de administración de Proxmox, sección PCI(e) Passthrough [1]. Ejecútalos en la shell del nodo.

1. Carga los módulos VFIO

printf "vfio\nvfio_iommu_type1\nvfio_pci\n" > /etc/modules-load.d/vfio.conf

2. Encuentra los IDs de la tarjeta

lspci -nn | grep -i nvidia

Vuelven dos líneas, la GPU y su audio HDMI. Anota ambos IDs [10de:xxxx] y la dirección de bus (aquí 01:00).

3. Reserva la tarjeta para las 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

Pon tus propios IDs del paso 2. Este host no necesitó parámetros de kernel extra: /proc/cmdline es el predeterminado de Proxmox (quiet, raíz ZFS), sin iommu=pt y sin nomodeset.

4. Comprueba que quedó bien

lspci -nnk -s 01:00
cat /proc/cmdline

Ambas funciones deben mostrar Kernel driver in use: vfio-pci.

La VM

Las líneas de passthrough de qm config en la VM en marcha:

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

Equivalente por shell, VM 100 y la tarjeta en 01:00:

qm set 100 -hostpci0 0000:01:00,pcie=1

Driver del guest

Las tarjetas RTX 50 (Blackwell) solo están soportadas por los módulos de kernel abiertos de NVIDIA [4], así que en Ubuntu elige el paquete -open:

sudo apt update
sudo ubuntu-drivers list
sudo apt install -y nvidia-driver-595-open
sudo reboot
nvidia-smi

Problemas conocidos

SíntomaQué lo arregló
1:1 IOMMU mapping tras una actualización de BIOSEl ajuste de BIOS de arriba.
Could not open /dev/vfio/NN: Device or resource busy al arrancarVisto justo después de un qm shutdown. Nada tenía el dispositivo retenido segundos después; un segundo qm start funcionó visto aquí.
El host o el instalador arranca a pantalla negraAgrega nomodeset a la línea de kernel (instalador: pulsa e en la entrada de arranque). Este host no lo necesitó después de instalar.
El guest se cuelga al arrancar con Primary GPU activoPrimary GPU apagado, vga: virtio visto aquí.

Fuentes

  1. Proxmox VE admin guide: PCI(e) Passthrough
  2. Proxmox forum: VFIO, firmware has requested a 1:1 IOMMU mapping
  3. Level1Techs: Gigabyte X870E (AGESA 1.2.2) passthrough fails with the 1:1 mapping error
  4. NVIDIA: transition to open-source GPU kernel modules