Skip to main content

NVIDIA GPU Passthrough in Pop!_OS (Proxmox VE 8.2.7)

Date: June 1st, 2025
Category: Virtualization / GPU Passthrough
Backlink: Setting Up SSH Access in POP_OS Proxmox

This enable's GPU Passthrough as I'm going to use this VM for Local AI projects


Step 1: Enable IOMMU in Proxmox

Edit the GRUB configuration:

nano /etc/default/grub

Set this line for AMD CPUs:

GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

Update GRUB and reboot:

update-grub
reboot

Step 2: Bind GPU to vfio-pci

Get the NVIDIA GPU and related device IDs:

lspci -nn | grep -i nvidia

Example output:

07:00.0 VGA compatible controller [10de:1e84]
07:00.1 Audio device [10de:10f8]
07:00.2 USB controller [10de:1ad8]
07:00.3 Serial bus controller [10de:1ad9]

Bind them to vfio-pci:

echo "options vfio-pci ids=10de:1e84,10de:10f8,10de:1ad8,10de:1ad9" > /etc/modprobe.d/vfio.conf

Then:

update-initramfs -u
reboot

Step 3: Confirm vfio-pci Binding

Check if vfio-pci is now in use:

lspci -nnk | grep -A 3 -i nvidia

You should see something like:

Kernel driver in use: vfio-pci

Step 4: Attach GPU to Pop!_OS VM

In the Proxmox Web GUI:

  1. Power off the Pop!_OS VM.

  2. Go to Hardware > Add > PCI Device.

  3. Add only the VGA compatible controller (e.g., 07:00.0).

  4. Enable the following checkboxes:

    • ROM-Bar

    • Primary GPU

    • Optional: You can try passing the other 3 GPU functions (Audio, USB, Serial Bus) if needed.

Start the VM.


Step 5: Verify GPU Access in Pop!_OS

Inside the VM, run:

nvidia-smi

To check for CUDA:

nvcc --version

(Optional if GUI is installed):

glxinfo | grep "OpenGL renderer"

Completion Notes

  • GPU passthrough is functional.

  • Host Proxmox system is stable and still accessible via Web GUI.

  • Pop!_OS VM is now accelerated using the RTX 2070 SUPER.

  • SSH and firewall (UFW) are set up on the guest.