Proxmox versione 9.1.4
GPU nvidia GTX1650
come attivare passthrough
Prima fase INSTALLAZIONE DRIVER NVIDIA
Seconda fase ATTIVARE passthrough
una precisazione. Se intendiamo usare il passthrough su una VM non dobbiamo effettuare il secondo passaggio, in quanto è già tutto attivo. Se vogliamo invece utilizzare il passthrough su un container LXC dobbiamo effettuare il secondo passaggio ma dopo di questo il passthrough funzionerà solo sui container
1️⃣ Verifica IOMMU support nel kernel
Controlla se il tuo host supporta IOMMU (fondamentale per il passthrough):
dmesg | grep -e DMAR -e IOMMU
Se vedi qualcosa tipo:
DMAR: IOMMU enabled
✅ OK
Se NON appare → devi abilitare IOMMU nel GRUB:
Modifica /etc/default/grub:
GRUB_CMDLINE_LINUX_DEFAULT=”quiet intel_iommu=on iommu=pt”
# o se AMD:
# GRUB_CMDLINE_LINUX_DEFAULT=”quiet amd_iommu=on iommu=pt”
Aggiorna GRUB:
update-grub
Reboot
2️⃣ Identifica la tua GPU
lspci -nn | grep -i nvidia
Output tipico:
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation RTX 3060 [10de:2504] (rev a1)
01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:228b] (rev a1)
01:00.0 → GPU
01:00.1 → Audio GPU (HDMI/Display)
🔹 Prossimo passo: configurare VFIO
Crea il file /etc/modprobe.d/vfio.conf:
options vfio-pci ids=10de:1f0a,10de:10f9 disable_vga=1
10de:1f0a → GPU
10de:10f9 → Audio HDMI
disable_vga=1 → evita conflitti VGA con host
Aggiorna initramfs:
update-initramfs -u -k all
Riavvia host:
reboot
1️⃣ Creare il file di configurazione VFIO
Apri il terminale sul tuo host Proxmox e crea il file /etc/modprobe.d/vfio.conf:
nano /etc/modprobe.d/vfio.conf
All’interno del file, scrivi esattamente:
options vfio-pci ids=10de:1f0a,10de:10f9 disable_vga=1
10de:1f0a → GPU (VGA)
10de:10f9 → Audio HDMI della GPU
disable_vga=1 → evita conflitti VGA con l’host
Salva e chiudi:
In nano → premi CTRL+O → invio → CTRL+X
2️⃣ Aggiornare l’initramfs
Affinché il modulo VFIO prenda la GPU all’avvio, esegui:
update-initramfs -u -k all
3️⃣ Riavviare il nodo
Ora riavvia il server:
reboot
Questo permetterà al kernel di caricare VFIO e legare la GPU al driver passthrough
La GPU non sarà più disponibile all’host, pronta per le VM
4️⃣ Verifica VFIO dopo reboot
Dopo il reboot, esegui:
lspci -nnk -s 09:00.0
lspci -nnk -s 09:00.1
Dovresti vedere qualcosa tipo:
Kernel driver in use: vfio-pci
Se sì → ✅ la GPU è pronta per il passthrough.
se non appare
🔹 Passi correttivi per far sì che VFIO prenda la GPU
Modifica il file VFIO per escludere il driver NVIDIA dall’host (già fatto con vfio.conf), ma dobbiamo anche dire al kernel di caricare VFIO prima dei driver NVIDIA.
Aggiungi VFIO all’initramfs:
Apri /etc/initramfs-tools/modules:
nano /etc/initramfs-tools/modules
Aggiungi in fondo:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
Salva (CTRL+O, invio, CTRL+X).
Aggiorna initramfs:
update-initramfs -u -k all
Riavvia l’host:
reboot
Verifica VFIO dopo reboot:
lspci -nnk -s 09:00.0
lspci -nnk -s 09:00.1
Dovresti vedere:
Kernel driver in use: vfio-pci
✅ Se appare così, la GPU è pronta per il passthrough alla VM.
🔹 Cosa fare ad ogni aggiornamento kernel
Dopo ogni update kernel:
update-initramfs -u -k all
Riavvio host con il nuovo kernel
Verifica VFIO:
lspci -nnk -s 09:00.0
lspci -nnk -s 09:00.1
Deve comparire ancora Kernel driver in use: vfio-pci
COME RILASCIARE LA GPU PER USO SU VM
Passi per rilasciare la GPU
a) Rimuovi la configurazione VFIO
Apri il file /etc/modprobe.d/vfio.conf:
nano /etc/modprobe.d/vfio.conf
Commenta o cancella la riga:
# options vfio-pci ids=10de:1f0a,10de:10f9 disable_vga=1
Salva (CTRL+O, invio, CTRL+X).
b) Rigenera initramfs
update-initramfs -u -k all
Serve per far sì che al prossimo avvio il kernel non carichi più VFIO sulla GPU
c) Riavvia host
reboot
d) Verifica driver NVIDIA host
Dopo reboot, esegui:
lspci -nnk -s 09:00.0
Dovresti vedere:
Kernel driver in use: nvidia
Se sì → la GPU è di nuovo disponibile per l’host e quindi anche per LXC.
e) Passare la GPU ai container LXC
Controlla i device NVIDIA:
ls -l /dev/nvidia*
Tipicamente:
/dev/nvidia0
/dev/nvidiactl
/dev/nvidia-uvm
In Proxmox GUI → Container → Resources → Add → Device Passthrough
Device path: /dev/nvidia0
Poi aggiungi /dev/nvidiactl e /dev/nvidia-uvm uno per uno
Avvia il container → dentro puoi usare nvidia-smi
💡 Nota importante:
Se vuoi LXC con accesso GPU, non devi mai legarla a VFIO
Se vuoi passthrough completo con prestazioni massime (CUDA, Ollama), usa una VM

Lascia un commento
Devi essere connesso per inviare un commento.