Passthrough de la RTX 5070 Ti en Proxmox VE 9.2 (AM5, B650)
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
| Pieza | Valor |
|---|---|
| Placa | Gigabyte B650 AORUS ELITE AX V2, BIOS F41 (2026-05-21) |
| CPU | AMD Ryzen 9 7950X3D, 16C/32T |
| GPU | NVIDIA GeForce RTX 5070 Ti, IDs PCI 10de:2c05 (GPU) y 10de:22e9 (audio) |
| Host | Proxmox VE 9.2.20, kernel 7.0.14-19-pve, raíz ZFS |
| Guest | Ubuntu 26.04.1 LTS, kernel 7.0.0-38-generic, nvidia-driver-595-open 595.99.02 |
| Pantalla | 3440x1440 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:
| Ajuste | Poner en |
|---|---|
| IOMMU | Enabled (no Auto; Enabled es lo que revela la siguiente opción) |
| Kernel DMA Protection Indicator | Disabled |
| Pre-boot DMA Protection | Enabled (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
hostpci0: 0000:01:00sin número de función pasa tanto la GPU como su audio.vga: virtiose mantiene. Activar Primary GPU (x-vga) convga: nonecolgó el guest al arrancar, aquí visto aquí.- Los monitores se conectan a la 5070 Ti, no a la placa base.
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íntoma | Qué lo arregló |
|---|---|
1:1 IOMMU mapping tras una actualización de BIOS | El ajuste de BIOS de arriba. |
Could not open /dev/vfio/NN: Device or resource busy al arrancar | Visto 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 negra | Agrega 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 activo | Primary GPU apagado, vga: virtio visto aquí. |