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:
-
Power off the Pop!_OS VM.
-
Go to
Hardware > Add > PCI Device
. -
Add only the VGA compatible controller (e.g.,
07:00.0
). -
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.
No Comments