{
"meta": {
"title": "Aggiungi GPU a LXC | Documentazione ProxMenux",
"description": "Condividi GPU Intel, AMD o NVIDIA con LXC. ProxMenux configura dispositivi, gruppi e librerie secondo la distribuzione; l’app deve supportare e configurare l’accelerazione."
},
"header": {
"title": "Aggiungi GPU a LXC",
"description": "Condivide l’accesso GPU con LXC tramite i dispositivi dell’host. Il driver resta sull’host; le app richiedono librerie compatibili e una configurazione propria.",
"section": "Hardware: GPU e Coral-TPU"
},
"intro": {
"title": "Cosa fa",
"body": "Aggiunge voci dev<N> a /etc/pve/lxc/<ctid>.conf per i nodi /dev/dri/*, /dev/kfd o /dev/nvidia* pertinenti. Avvia il container, installa i pacchetti userspace della sua distribuzione e, per Intel/AMD, allinea i gruppi video e render. L’accelerazione delle applicazioni richiede comunque hardware e librerie compatibili e configurazione dell’app."
},
"compare": {
"heading": "Condivisione LXC e passthrough VM a confronto",
"intro": "LXC condivide il kernel e può condividere la GPU fra host e container. Con il passthrough completo a una VM, il dispositivo è riservato alla VM e non è disponibile al driver dell’host.",
"headerFeature": "Caratteristica",
"headerLxc": "LXC (questa pagina)",
"headerVm": "VM",
"rows": [
{
"feature": "L’host può continuare a usare la GPU?",
"lxc": "Sì",
"vm": "No — esclusiva della VM"
},
{
"feature": "Più container possono condividere una GPU?",
"lxc": "Sì",
"vm": "No"
},
{
"feature": "Richiede IOMMU / VFIO sull'host?",
"lxc": "No",
"vm": "Sì"
},
{
"feature": "Riavvio richiesto?",
"lxc": "Di solito no (solo riavviare il CT)",
"vm": "Se cambia la configurazione di driver o IOMMU sull’host; non a ogni assegnazione"
},
{
"feature": "Sistemi operativi guest",
"lxc": "Solo Linux (LXC è Linux-solo)",
"vm": "Sistema guest supportato con driver GPU compatibile"
}
]
},
"prereqs": {
"title": "Prima di iniziare",
"gpu": "GPU sull’host Intel, AMD o NVIDIA, rilevata tramite lspci.",
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
"vfio": "La GPU non deve essere associata a vfio-pci. Serve il driver nativo dell’host. Se assegnata a una VM, lo script propone Cambia modalità GPU.",
"nvidia": "Per NVIDIA: installa prima il driver sull’host. Le librerie del container devono corrispondere alla sua versione. Usa Installa driver NVIDIA sull’host.",
"nvidiaCheck": "nvidia-smi",
"container": "Un LXC esistente. Lo script non lo crea. Supporta entrambi i modi; un container privilegiato non è sempre necessario. Dispositivi e permessi numerici dell’app devono corrispondere."
},
"unpriv": {
"title": "Supporta container privilegiati e non privilegiati",
"body": "Lo script usa le voci dev<N> e allinea i GID video e render fra host e container. Questo evita di modificare manualmente lxc.idmap per il normale accesso ai dispositivi; verifica comunque i permessi dell’utente dell’app."
},
"running": {
"heading": "Eseguire l’installer",
"body": "Apri ProxMenux e scegli Hardware: GPU e Coral-TPU → Aggiungi GPU a LXC.",
"imageAlt": "Voce del menu per aggiungere GPU a LXC"
},
"howRuns": {
"heading": "Come funziona lo script",
"body": "Scegli container e famiglie GPU e supera i controlli. Poi il processo arresta e modifica il container senza un’ulteriore conferma finale. La pulizia VFIO facoltativa ha conferma separata e può modificare prima l’host."
},
"walkthrough": {
"heading": "Procedura passo per passo",
"detect": {
"title": "Rilevamento GPU host",
"body": "Cerca controller GPU con lspci. Per NVIDIA verifica il modulo nvidia e nvidia-smi; la versione rilevata determina l’installer .run del container.",
"tipTitle": "NVIDIA non pronto?",
"tipBody": "Se manca il modulo o NVIDIA non funziona sull’host, usa prima Installa driver NVIDIA sull’host e verifica il driver."
},
"pickCt": {
"title": "Scegli un container LXC",
"body": "Elenca i container LXC idonei per ID e nome; i container OCI sono esclusi e usano OCI manager Apps per i dispositivi. Il container viene arrestato se è in esecuzione, avviato per l’installazione dei driver e normalmente riportato allo stato iniziale (in esecuzione/arrestato).",
"imageAlt": "Selezione di un container LXC esistente"
},
"selectGpu": {
"title": "Scegli le famiglie GPU",
"body": "L’elenco seleziona famiglie di produttori, non un dispositivo PCI isolato. Intel/AMD aggiungono i nodi DRI previsti; NVIDIA i dispositivi disponibili, anche di più schede. Una sola famiglia viene selezionata automaticamente. Verifica l’elenco finale, soprattutto con più GPU.",
"imageAlt": "Elenco delle famiglie GPU rilevate con nome e indirizzo PCI"
},
"preflight": {
"title": "Controlli preliminari",
"imageAlt": "Proposta di cambio modalità per una GPU associata a vfio-pci",
"intro": "Tre controlli, uno dei quali può bloccare o reindirizzare:",
"items": [
"Controllo SR-IOV. L’assistente blocca VF o PF con VF attive. È un limite della selezione ampia dei dispositivi, non un divieto generale per LXC. Configurali separatamente.",
"Associata a vfio-pci. Il driver nativo non può creare /dev/dri/* o /dev/nvidia*. Propone Cambia modalità GPU; segui le indicazioni sul riavvio e poi torna.",
"Già configurata. Se tutti i dispositivi sono presenti, esce senza reinstallare le librerie. Prosegue solo con le famiglie selezionate mancanti."
]
},
"applyConfig": {
"title": "Applicare le modifiche di configurazione LXC",
"body1": "Arresta il container se è in esecuzione e modifica /etc/pve/lxc/<ctid>.conf. Le voci numerate dev<N> includono il GID host di video o render. Le righe bind lxc.mount.entry esistenti per /dev/dri vengono sostituite da voci dev:; verifica la configurazione e i permessi risultanti.",
"body2": "Esempio dopo Intel + NVIDIA sullo stesso contenitore:"
},
"installDrivers": {
"title": "Avviare il contenitore e installare i driver all'interno",
"body": "Avvia il container e attende fino a circa 30 secondi la risposta di pct exec. Rileva la distribuzione da /etc/os-release e installa i pacchetti adatti.",
"headerDistro": "Distribuzione",
"headerInt": "Intel / AMD",
"headerNvidia": "NVIDIA",
"rows": [
{
"distro": "Alpine",
"intel": "apk add mesa-va-gallium intel-media-driver libva-utils",
"nvidia": "apk add nvidia-utils"
},
{
"distro": "Arch / Manjaro",
"intel": "pacman -Sy intel-media-driver mesa libva-utils",
"nvidia": "pacman -Sy nvidia-utils"
}
],
"debianDistro": "Debian / Ubuntu / altri",
"debianIntel": "apt-get install va-driver-all intel-opencl-icd vainfo",
"debianNvidia": "Estrae .run sull’host → pct push → installa con --no-kernel-modules --no-dkms.",
"whyTitle": "Perché usa l’installer NVIDIA .run su Debian",
"whyBody": "I pacchetti possono non corrispondere all’host. Le librerie devono corrispondere al modulo host caricato per NVML e nvidia-smi. Debian/glibc usa il .run della versione host in cache, lo estrae e archivia sull’host, trasferisce con pct push e installa con --no-kernel-modules --no-dkms. Alpine e Arch usano i repository: verifica le versioni."
},
"alignGids": {
"title": "Allineare GID e ripristinare lo stato",
"body1": "Per Intel/AMD legge i GID host di video e render, usando 44/104 solo come ripiego, poi modifica /etc/group nel container perché corrispondano; le esecuzioni solo NVIDIA saltano questo passaggio. Voci come video:44 e render:104 sono esempi, non ID universali. Verifica l’appartenenza dell’app ai gruppi e i permessi effettivi sui dispositivi.",
"body2": "Al termine normale, arresta di nuovo il container se inizialmente era fermo; se era attivo lo lascia attivo. In caso di errore di avvio o installazione, verifica stato finale e log."
}
},
"vendors": {
"heading": "Note per produttore",
"intelHeading": "Intel iGPU",
"intelBody": "L’accelerazione multimediale Intel, incluso Quick Sync, dipende da generazione del GPU, codec e configurazione dell’app. Lo script condivide quelli tra /dev/dri/card0, card1, renderD128 e renderD129 che esistono; altri numeri di nodo non vengono aggiunti. L’host deve già fornirli tramite il proprio driver nativo, per esempio i915.",
"amdHeading": "AMD",
"amdBody": "AMD usa DRI per Mesa/VA-API. Se l’host espone /dev/kfd, lo condivide. ROCm/OpenCL richiede hardware e librerie compatibili; condividere il dispositivo non installa l’intero stack ROCm.",
"nvidiaHeading": "NVIDIA",
"nvidiaBody": "Condivide i dispositivi /dev/nvidia*. Le versioni del driver devono corrispondere per nvidia-smi. Debian/glibc usa il .run della versione host; Alpine/Arch i repository. Sotto 2048 MiB di RAM configurata propone un aumento temporaneo poi ripristinato; richiede anche 1500 MiB liberi su disco.",
"updateTitle": "Dopo un aggiornamento NVIDIA host, controlla le librerie LXC",
"updateBody": "Vecchie librerie possono causare errori in nvidia-smi. L’installer NVIDIA dell’host propone aggiornamenti dei container. Ripetere l’aggiunta può terminare se i dispositivi esistono già: non garantisce l’aggiornamento delle librerie. Verifica versioni e aggiorna i pacchetti o l’installazione utente adatta."
},
"verification": {
"heading": "Verifica",
"body": "Nel container verifica che la GPU sia visibile e utilizzabile."
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"mismatchTitle": "nvidia-smi: Failed to initialize NVML: Driver/library version mismatch",
"mismatchBody": "Le librerie non corrispondono al modulo caricato. Verifica le versioni e aggiorna lo spazio utente LXC. Il .run in cache serve per Debian/glibc, ma l’aggiunta può terminare se tutti i dispositivi esistono già.",
"denyTitle": "Permesso negato su /dev/dri/renderD128 all'interno del contenitore",
"denyBody": "Verifica dispositivo e permessi numerici di render, poi che l’utente appartenga a render. Se disponibile, aggiungilo a render con usermod -aG render <user>, sostituendo il segnaposto con l’account reale. Riavvia la sessione. Cambiare privilegi non è una soluzione generale.",
"vainfoTitle": "vainfo dice: VA-API versione 1.xx; non inizializzare",
"vainfoBody": "Verifica accesso e driver VA-API. I nomi variano per distribuzione: per esempio intel-media-driver per Intel recenti supportate, i965-va-driver per quelle vecchie compatibili e mesa-va-drivers per AMD. Il messaggio da solo non prova che manchi un pacchetto.",
"logTitle": "Registro d’installazione",
"logBody": "Ogni esecuzione scrive /tmp/add_gpu_lxc.log sull’host. Allegalo alle richieste di assistenza."
},
"related": {
"heading": "Vedi anche",
"items": [
{
"label": "Installare driver NVIDIA (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — installa il driver host prima di condividere NVIDIA."
},
{
"label": "Aggiungi GPU a VM (Passthrough)",
"href": "/docs/hardware/gpu-vm-passthrough",
"tail": " — alternativa per dedicare una GPU a una VM."
},
{
"label": "Cambia modalità GPU (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": " — passa la GPU fra condivisione LXC e assegnazione VM."
},
{
"label": "Comandi di passaggio GPU",
"href": "/docs/help-info/gpu-commands",
"tail": "— rapido riferimento per i relativi comandi shell."
}
]
}
}