Skip to content

Instantly share code, notes, and snippets.

@libevm
Last active January 25, 2026 21:28
Show Gist options
  • Select an option

  • Save libevm/0c7e556af453f42b8a909710c1bbac60 to your computer and use it in GitHub Desktop.

Select an option

Save libevm/0c7e556af453f42b8a909710c1bbac60 to your computer and use it in GitHub Desktop.
PROXMOX with GPU passthrough

Proxmox VE + RTX 5090 Passthrough (Debian 13)

This document summarizes the end‑to‑end, known‑good process to:

  • Enable GPU passthrough on Proxmox VE
  • Create a Debian 13 (trixie) VM
  • Attach an RTX 5090 via PCI passthrough
  • Run the VM headless (Display: none)
  • Access the VM via serial console and SSH

The steps are ordered and opinionated to avoid the common traps.


1. Proxmox Host: Enable GPU Passthrough

1.1 Enable IOMMU

Edit /etc/default/grub on the Proxmox host:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"

(Use amd_iommu=on iommu=pt on AMD CPUs.)

Apply and reboot:

update-grub
reboot

Verify:

dmesg | grep -e IOMMU -e DMAR

1.2 Bind RTX 5090 to VFIO (host must NOT use NVIDIA)

Confirm device IDs:

lspci -nn | grep -i nvidia

Example (yours):

  • GPU: 10de:2b85
  • Audio: 10de:22e8

Create VFIO binding:

echo "options vfio-pci ids=10de:2b85,10de:22e8 disable_vga=1" > /etc/modprobe.d/vfio.conf

Blacklist nouveau:

echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist-nouveau.conf

Ensure VFIO modules load:

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

Rebuild initramfs and reboot:

update-initramfs -u -k all
reboot

Verify after reboot:

lspci -nnk | grep -A3 -i nvidia

Expected:

Kernel driver in use: vfio-pci

2. Create the Debian 13 VM (Proxmox Web UI)

2.1 VM Creation (Wizard)

General

  • Any VM ID / Name

OS

  • Debian 13 (trixie) ISO
  • Guest OS: Linux

System (CRITICAL)

  • BIOS: OVMF (UEFI)
  • Add EFI Disk: ✔ (Pre‑enroll keys ❌)
  • Machine: q35
  • SCSI Controller: VirtIO SCSI single
  • QEMU Agent: ✔

Disks / CPU / Memory / Network

  • Defaults are fine
  • Network model: VirtIO

Create the VM but do not rely on GPU yet.


3. Install Debian (Temporary Display)

During installation, you need some console.

Recommended:

  • Display: Standard VGA (or SPICE)

Install Debian normally.

Inside Debian, install essentials:

apt install openssh-server qemu-guest-agent

Enable guest agent:

systemctl enable --now qemu-guest-agent

Confirm you can SSH into the VM.


4. Switch VM to Headless + Serial Console

4.1 Disable Virtual Display

  • VM → Hardware → Display → None

(noVNC will no longer work — this is expected)


4.2 Add Serial Console (Web UI)

  1. VM → Hardware → Add → Serial Port

    • Port: serial0
  2. VM → Options → Console → set to Serial0

Inside Debian (one‑time):

systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service

Now the Proxmox Console button works even with Display: none.


5. Attach RTX 5090 to the VM

5.1 Add PCI Devices (Web UI)

Add GPU:

  • Hardware → Add → PCI Device
  • Device: 0000:e1:00.0
  • ✔ PCI‑Express
  • ❌ Primary GPU
  • ❌ ROM‑Bar

Add audio:

  • Device: 0000:e1:00.1
  • ✔ PCI‑Express

Do NOT enable “Primary GPU” (this avoids x-vga crashes).


5.2 Start the VM

Inside Debian:

lspci | grep -i nvidia

You should now see:

NVIDIA Corporation GB202 [GeForce RTX 5090]

6. Install NVIDIA Driver Inside Debian VM

Enable non‑free repositories:

deb http://deb.debian.org/debian trixie main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian trixie-updates main contrib non-free non-free-firmware

Install headers + driver:

apt update
apt install linux-headers-$(uname -r)
apt install nvidia-driver firmware-misc-nonfree

Reboot the VM.

Verify:

nvidia-smi

7. Final Access Model (Expected)

  • ❌ noVNC / VGA
  • ✅ Serial console (Proxmox Web UI)
  • ✅ SSH (ssh user@vm_ip)
  • ✅ Full RTX 5090 acceleration inside Debian

Key Rules (TL;DR)

  • Never install NVIDIA drivers on the Proxmox host
  • q35 + OVMF is mandatory
  • Do NOT use Primary GPU / x‑vga
  • Display: none + Serial Port is the correct headless setup
  • RTX 5090 works cleanly with Debian 13 + modern Proxmox

This configuration is stable, repeatable, and avoids all known RTX 50‑series passthrough pitfalls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment