Merge remote-tracking branch 'origin/develop' into HEAD

This commit is contained in:
MacRimi
2026-10-18 16:05:23 +02:00
50 changed files with 3960 additions and 293 deletions
+119
View File
@@ -0,0 +1,119 @@
{
"meta": {
"title": "Backup di Proxmox su cloud personale | ProxMenux",
"description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo.",
"ogTitle": "Backup di Proxmox su cloud personale",
"ogDescription": "Montare un cloud con rclone sull’host Proxmox VE e usarlo come destinazione vzdump per i backup di VM e container."
},
"header": {
"title": "Backup di Proxmox su cloud personale",
"description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo.",
"section": "Guide"
},
"intro": {
"pbsCalloutTitle": "Valuta prima Proxmox Backup Server",
"pbsCalloutBody": "Su una seconda macchina che soddisfa i requisiti x86-64, <pbsLink>Proxmox Backup Server</pbsLink> offre backup incrementali e deduplicati con cifratura facoltativa lato client. È progettato per i backup delle VM. Questa guida spiega invece come montare un cloud personale, come Google Drive, Mega, OneDrive o Dropbox, come destinazione dei backup.",
"stepsTitle": "Cosa farai",
"steps": [
"Creare una directory sull’host Proxmox e registrarla come archivio per backup vzdump.",
"Installare e configurare rclone per il provider cloud.",
"Montare la cartella cloud nella directory.",
"Ripristinare il montaggio a ogni avvio con un’unità systemd."
],
"vzdumpCalloutTitle": "Nota sui backup vzdump di Proxmox",
"vzdumpCalloutBody": "Gli archivi vzdump di Proxmox sono <strong>backup completi, non incrementali</strong>. La dimensione reale dipende dai dati inclusi e dalla compressione, non solo dalla capacità del disco virtuale. Se un archivio occupa 30 GB, conservarne cinque richiede circa 150 GB. Imposta una politica di conservazione per evitare di riempire il cloud."
},
"createDir": {
"heading": "1. Creare la directory sull’host e registrarla come archivio di backup",
"body": "Collegati all’host tramite SSH o apri la shell Proxmox e crea una directory come punto di montaggio in <code>/mnt/</code>. Scegli un nome che identifichi il fornitore:",
"mkdirCode": "mkdir -p /mnt/gdrive",
"afterMkdir": "Nel web UI di Proxmox: <strong>Datacenter → Storage → Aggiungere → Directory</strong>.",
"image1Alt": "Aggiunta di nuovo storage in Proxmox",
"configIntro": "Configuralo così:",
"configItems": [
"<strong>ID:</strong> <code>gdrive</code> (o qualsiasi cosa tu abbia usato per il nome della directory)",
"<strong>Directory:</strong> <code>/mnt/gdrive</code>",
"<strong>Contenuto:</strong> seleziona <strong>File di backup VZDump</strong>."
],
"image2Alt": "Configurazione di nuovi storage in Proxmox",
"afterConfig": "Fai clic su <strong>Aggiungi</strong>:",
"image3Alt": "Nuovo storage aggiunto in Proxmox",
"afterAdd": "La directory è registrata come archivio Proxmox, ma è ancora vuota: il cloud non è ancora montato."
},
"installRclone": {
"heading": "2. Installare e configurare rclone",
"body": "<rcloneLink>rclone</rcloneLink> comunica con i servizi di archiviazione cloud. Installalo dai repository Debian:",
"installCode": "apt-get update\napt-get install -y rclone",
"newerCalloutTitle": "Se hai bisogno di un nuovo rclone",
"newerCalloutBody": "Se ti serve una versione più recente di quella fornita da Debian, usa il programma di installazione ufficiale:",
"newerCode": "curl https://rclone.org/install.sh | bash",
"tunnelHeading": "2.1 Autenticazione nel browser tramite tunnel SSH",
"tunnelBody": "Per i fornitori con accesso via browser, l’host Proxmox di solito non dispone di un browser. Segui la <remoteSetupLink>procedura di configurazione remota di rclone</remoteSetupLink>: usa il browser del portatile e inoltra la connessione di ritorno localhost tramite SSH a rclone sull’host.",
"tunnelFrom": "Dal <strong>portatile</strong>, sostituendo <code>ip_proxmox</code> con l’IP di Proxmox:",
"tunnelCode": "ssh -L localhost:53682:localhost:53682 root@ip_proxmox",
"tunnelAfter": "Questa sessione SSH apre la porta localhost 53682 sul portatile e inoltra le connessioni alla stessa porta dell’host Proxmox. Tienila aperta durante la configurazione di rclone.",
"runHeading": "2.2 Esegui rclone config",
"runBody": "Nella sessione SSH appena aperta, esegui:",
"runCode": "rclone config",
"runAfter": "Segui le istruzioni per aggiungere una nuova configurazione remota, o «remote». Le risposte dipendono dal fornitore: consulta la <providerDocsLink>documentazione dei fornitori rclone</providerDocsLink> per Google Drive, Mega, Dropbox, OneDrive e altri. Il passaggio chiave è la domanda sull’autenticazione:",
"authPrompt": "Use web browser to automatically authenticate rclone with remote?\n * Say Y if the machine running rclone has a web browser you can use\n * Say N if running rclone on a (remote) machine without web browser access\nIf not sure try Y. If Y failed, try N.\ny) Yes\nn) No\ny/n> y",
"authAfter": "Rispondi <strong>Y</strong>. rclone mostra un URL locale. Aprilo nel <strong>browser del portatile</strong>: il tunnel SSH inoltra la connessione. Autorizza rclone presso il fornitore cloud per completare la configurazione.",
"nameRemote": "Come nome della configurazione remota usa un nome che corrisponda alla directory, ad esempio <code>gdrive</code>."
},
"mount": {
"heading": "3. Montare la cartella cloud",
"body": "Crea nel cloud una cartella per i backup, ad esempio <code>PBC</code>, abbreviazione di Proxmox Backup Cloud.",
"mountIntro": "Montala nella directory sull’host:",
"mountCode": "rclone mount gdrive:/PBC /mnt/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes",
"mountItems": [
"<code>gdrive:/PBC</code> — la cartella nel cloud.",
"<code>/mnt/gdrive</code> — la directory host registrata come datastore."
],
"mountFootnote": "<strong>Questo comando resta in primo piano.</strong> Lascialo in esecuzione in un terminale per provare un backup. Per ripristinare il montaggio a ogni avvio, configura un’unità systemd nella sezione seguente."
},
"systemd": {
"heading": "4. Montaggio automatico a ogni avvio con systemd",
"body": "Un’unità systemd offre più controllo di <code>crontab @reboot</code>: può attendere l’avvio della rete, riavviarsi in caso di errore e fornire log tramite <code>journalctl</code>.",
"createIntro": "Crea il file dell’unità:",
"createCode": "nano /etc/systemd/system/rclone-gdrive.service",
"pasteIntro": "Incolla:",
"unitCode": "[Unit]\nDescription=rclone mount for Proxmox cloud backups\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nType=notify\nExecStart=/usr/bin/rclone mount \\\n gdrive:/PBC /mnt/gdrive \\\n --allow-other \\\n --allow-non-empty \\\n --vfs-cache-mode writes \\\n --log-level INFO \\\n --log-file /var/log/rclone-gdrive.log\nExecStop=/bin/fusermount -uz /mnt/gdrive\nRestart=on-failure\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target",
"adjust": "Adatta <code>gdrive:/PBC</code> e <code>/mnt/gdrive</code> se hai scelto nomi diversi. Salva, esci dall’editor con <code>Ctrl+X</code>, poi abilita e avvia il servizio:",
"enableCode": "systemctl daemon-reload\nsystemctl enable --now rclone-gdrive.service",
"verifyIntro": "Verifica:",
"verifyCode": "systemctl status rclone-gdrive.service\nmount | grep /mnt/gdrive",
"verifyAfter": "L’unità richiede un riavvio dopo 10 secondi se il processo rclone termina con un errore. Non ripristina credenziali scadute e non garantisce il recupero da ogni errore di rete o del fornitore. Controlla <code>/var/log/rclone-gdrive.log</code> e <code>journalctl -u rclone-gdrive.service -f</code>.",
"vfsCalloutTitle": "Perché usare --vfs-cache-mode writes?",
"vfsCalloutBody": "Con la cache di scrittura, operazioni come <code>fwrite</code> scrivono in una cache su disco locale. rclone carica il file dopo la chiusura e il ritardo di scrittura differita. Riserva spazio locale per i backup in corso e verifica che il caricamento sia terminato prima di considerare disponibile la copia nel cloud."
},
"configureBackup": {
"heading": "5. Configurare il cloud come destinazione dei backup",
"body": "In Proxmox, per un backup pianificato o manuale, scegli l’archivio registrato come <strong>destinazione</strong>:",
"image5Alt": "Selezione della destinazione di backup in Proxmox",
"after": "Dopo la fine di vzdump, attendi il completamento del caricamento rclone in background e verifica l’archivio nell’interfaccia del fornitore cloud:",
"image6Alt": "File di backup in cloud storage"
},
"retention": {
"heading": "6. Conservazione: tenere sotto controllo la quota cloud",
"body": "Gli archivi vzdump di Proxmox sono <strong>backup completi, non incrementali</strong>. La dimensione reale dipende dai dati inclusi e dalla compressione, non solo dalla capacità del disco virtuale. Se un archivio occupa 30 GB, conservarne cinque richiede circa 150 GB. Imposta una politica di conservazione per evitare di riempire il cloud.",
"uiPath": "Nell’interfaccia Proxmox: <strong>Datacenter → Backup → [la tua attività] → Conservazione</strong>:",
"image7Alt": "Impostazioni di conservazione di backup in Proxmox",
"starterIntro": "Possibili valori iniziali per un ambiente domestico o di prova:",
"starterItems": [
"Conservare gli ultimi 5 backup giornalieri",
"Conservare gli ultimi 4 backup settimanali",
"Conservare gli ultimi 6 backup mensili"
],
"adjust": "Adatta i valori alla quota cloud e alla frequenza con cui cambiano le VM."
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"items": [
"<strong><code>Mount point /mnt/gdrive is itself on a fuse.rclone filesystem</code>:</strong> la directory è già montata, forse da un’altra istanza rclone. Controlla che non siano in corso backup prima di rimuovere il vecchio montaggio con <code>fusermount -uz /mnt/gdrive</code>, poi riavvia l’unità systemd.",
"<strong>Il backup è molto lento:</strong> verifica che <code>--vfs-cache-mode writes</code> sia nella riga <code>ExecStart</code>. Controlla prestazioni della cache locale, banda di caricamento e limiti del fornitore. Il caricamento può continuare dopo la fine di vzdump.",
"<strong>Il backup segnala No space left on device:</strong> controlla spazio della cache locale e quota cloud. La cache usa normalmente <code>~/.cache/rclone/</code>. Se è piena, scegli ad esempio <code>--cache-dir /var/cache/rclone</code> su un filesystem con spazio sufficiente. Un altro percorso sullo stesso filesystem pieno non risolve il problema.",
"<strong>Il token di autenticazione rclone è scaduto:</strong> ricollegati tramite SSH con il tunnel (<code>ssh -L localhost:53682:localhost:53682 root@ip_proxmox</code>) ed esegui <code>rclone config reconnect gdrive:</code> per rinnovare l’autorizzazione.",
"<strong>I backup sono nel cloud, ma il ripristino fallisce:</strong> non usare il cloud come <strong>unica</strong> destinazione. Affiancagli PBS locale o backup vzdump su un altro disco."
]
}
}
+118
View File
@@ -0,0 +1,118 @@
{
"meta": {
"title": "Guide Proxmox VE — Coral TPU, NVIDIA, Kodi in LXC, Samba e backup cloud | ProxMenux",
"description": "Tutorial dettagliati per Proxmox VE: Kodi in LXC con accelerazione GPU, driver NVIDIA su PVE 9, dischi USB condivisi tramite Samba in un container e backup vzdump su Google Drive, Mega, Dropbox o OneDrive. Con risorse selezionate della comunità, glossario e guida ai comandi.",
"ogTitle": "Guide Proxmox VE — Coral TPU, NVIDIA, Kodi in LXC, Samba e backup cloud",
"ogDescription": "Tutorial dettagliati per Proxmox VE: passthrough GPU, centro multimediale Kodi in LXC, dischi USB condivisi tramite Samba, backup cloud con rclone e risorse selezionate della comunità.",
"twitterTitle": "Guide Proxmox VE | ProxMenux",
"twitterDescription": "Tutorial dettagliati per Proxmox VE: GPU, Kodi in LXC, Samba, backup cloud e altro.",
"ogImageAlt": "Guide ProxMenux — tutorial dettagliati per Proxmox VE"
},
"header": {
"title": "Guide ProxMenux",
"tagline": "Tutorial approfonditi, riferimenti rapidi e risorse selezionate della comunità per sfruttare al meglio Proxmox VE."
},
"inDepth": {
"heading": "Guide approfondite",
"intro": "Tutorial dettagliati per attività specifiche di Proxmox. Ogni guida descrive i passaggi manuali di un processo automatizzato da ProxMenux, per capire cosa avviene in ogni fase.",
"items": [
{
"slug": "kodi-lxc",
"title": "Installare Kodi in LXC con accelerazione GPU e collegarlo a un monitor o televisore",
"description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore."
},
{
"slug": "backup-cloud",
"title": "Backup di Proxmox su cloud personale",
"description": "Montare con rclone un cloud personale, come Google Drive, Mega, Dropbox o OneDrive, in una directory dell’host Proxmox VE, registrarlo come archivio di backup per vzdump e salvare direttamente VM e container nel cloud, senza uno script di backup aggiuntivo."
},
{
"slug": "lxc-samba",
"title": "Aggiungere un disco o una chiavetta USB a LXC e condividerli in rete con Samba",
"description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete."
},
{
"slug": "nvidia-manual",
"title": "Installazione dei driver di scheda grafica NVIDIA su Proxmox VE 9 (procedura manuale)",
"description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container."
}
]
},
"references": {
"heading": "Riferimenti ProxMenux",
"intro": "Materiale di riferimento rapido dalla documentazione ProxMenux stessa.",
"cards": {
"glossary": {
"title": "Glossario",
"description": "Oltre 60 definizioni dei termini tecnici usati in ProxMenux: Proxmox, virtualizzazione, archiviazione, rete e Linux. Consultazione rapida con etichette di categoria e collegamenti."
},
"helpInfo": {
"title": "Aiuto e Info — Catalogo dei comandi",
"description": "Una selezione di comandi Linux e Proxmox per argomento, con copia negli appunti. Riprende la guida disponibile nel menu ProxMenux."
},
"linuxResources": {
"title": "Risorse Linux",
"description": "Risorse esterne per imparare la riga di comando Linux, le pratiche di sicurezza, gli strumenti di monitoraggio e ZFS, a complemento del catalogo dei comandi ProxMenux."
},
"externalRepos": {
"title": "Repository esterni",
"description": "Repository di script di terze parti integrati in ProxMenux come opzioni alternative del menu, come community-scripts/ProxmoxVE."
}
}
},
"official": {
"heading": "Risorse ufficiali Proxmox",
"intro": "Documentazione pubblicata da Proxmox Server Solutions, il riferimento ufficiale per la piattaforma.",
"cards": {
"pveDocs": {
"title": "Documentazione Proxmox VE",
"description": "La guida ufficiale di amministrazione: un riferimento completo su installazione, rete, archiviazione, cluster, alta disponibilità e API."
},
"pbsDocs": {
"title": "Documentazione di Proxmox Backup Server",
"description": "Documentazione per PBS — backup incrementali, deduplicati, crittografati per Proxmox VE."
},
"videoTraining": {
"title": "Formazione video ufficiale",
"description": "Tutorial video e corsi di formazione ufficiali di Proxmox."
},
"forum": {
"title": "Proxmox Forum",
"description": "Forum ufficiale della comunità per domande, risoluzione dei problemi e condivisione di esperienze, seguito dai responsabili del progetto."
}
}
},
"community": {
"heading": "Progetti e risorse comunitarie",
"intro": "Progetti open source e raccolte selezionate della comunità Proxmox. Non sono affiliati a Proxmox Server Solutions o a ProxMenux e sono inclusi perché si sono dimostrati utili.",
"cards": {
"helperScripts": {
"title": "Proxmox VE Helper-Scripts",
"description": "Catalogo di script mantenuto dalla comunità per distribuire facilmente container LXC, VM e modifiche PVE, ad esempio per Home Assistant, Plex o Frigate. Prosegue l’idea degli helper script di tteck."
},
"awesome": {
"title": "awesome-proxmox-ve (raccolta di risorse selezionate)",
"description": "Ampia raccolta di risorse Proxmox VE selezionate dalla comunità: strumenti, librerie, integrazioni, blog e video. Un buon punto di partenza per scoprire altro."
}
},
"suggestRich": "Conosci una risorsa valida da aggiungere? Apri una issue o una PR su <link>GitHub</link>. Vogliamo mantenere una selezione mirata, anziché un elenco esaustivo."
},
"discussion": {
"heading": "Discussione comunitaria",
"intro": "Dove la gente parla di Proxmox e ProxMenux.",
"cards": {
"proxmenuxDiscussions": {
"title": "ProxMenux Discussions",
"description": "GitHub Discussions dedicato a ProxMenux: idee per nuove funzioni, domande e risposte e condivisione delle configurazioni. Il posto adatto per parlare di menu, Monitor e documentazione."
},
"proxmoxForum": {
"title": "Proxmox Forum",
"description": "Forum ufficiale Proxmox (anche collegato sopra). Il posto giusto per risolvere i problemi in profondità e problemi specifici di configurazione."
},
"reddit": {
"title": "r/Proxmox su Reddit",
"description": "Subreddit attivo per discussioni, consigli e supporto tecnico. Più accessibile del forum, con risposte spesso più rapide alle domande informali."
}
}
}
}
+70
View File
@@ -0,0 +1,70 @@
{
"meta": {
"title": "Installare Kodi in LXC con accelerazione GPU | Guide ProxMenux",
"description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore.",
"ogTitle": "Installare Kodi in LXC con accelerazione GPU",
"ogDescription": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE con accesso all’iGPU e ai dispositivi di input USB dell’host e trasformare il server in un centro multimediale."
},
"header": {
"title": "Installare Kodi in LXC con accelerazione GPU e collegarlo a un monitor o televisore",
"description": "Eseguire Kodi in un container LXC privilegiato su Proxmox VE, rendere accessibili l’iGPU e i dispositivi di input USB dell’host e usare il server come centro multimediale collegato direttamente al televisore.",
"section": "Guide"
},
"intro": {
"calloutTitle": "Attenzione",
"calloutBody": "Questa guida usa uno script esterno della comunità per preparare il container Kodi. ProxMenux può configurare l’accesso all’iGPU dell’host: <strong>GPU e Coral-TPU → Aggiungi GPU a LXC</strong> configura <code>/dev/dri</code> e installa i driver nel container. Lo script seguente installa anche Kodi e l’avvio automatico su <code>tty7</code>. Usalo per un centro multimediale LXC già pronto; scegli la <gpuLink>procedura ProxMenux</gpuLink> se serve solo l’accesso alla GPU per un container configurato manualmente.",
"credit": "Lo script originale di Kodi per LXC è stato creato da <authorLink>mrrudy</authorLink>.",
"stepsTitle": "Cosa farai",
"steps": [
"Creare un container LXC privilegiato con Kodi tramite lo script.",
"Rendere accessibili nel container tastiera, mouse o controller USB.",
"Facoltativo: aggiornare Kodi dai repository configurati nel container."
]
},
"createCt": {
"heading": "1. Creare il Kodi LXC",
"body": "Per questa procedura seleziona <strong>Privileged</strong> nelle impostazioni avanzate dello script. Per impostazione predefinita crea container non privilegiati, che richiedono permessi sui dispositivi e mappatura degli ID appropriati. Configura l’accesso alla GPU, Kodi e l’avvio automatico su <code>tty7</code>:",
"code": "bash -c \"$(wget -qLO - https://raw.githubusercontent.com/mrrudy/proxmoxHelper/main/ct/kodi-v1.sh)\"",
"after": "L’installazione richiede un po’ di tempo. Quando Kodi si avvia su <code>tty7</code>, collega il monitor o il televisore all’uscita HDMI/DisplayPort dell’host: dovrebbe comparire l’interfaccia di Kodi."
},
"addInput": {
"heading": "2. Aggiungere tastiera, mouse o controller USB",
"body": "I dispositivi di input si trovano in <code>/dev/input/</code> sull’host. Individua il loro numero major:",
"listCode": "ls -l /dev/input",
"imageAlt": "Elenco dei dispositivi di input",
"afterList": "Per i dispositivi a caratteri usa il numero major prima della virgola, nell’esempio <code>13</code>. Sull’host, modifica la configurazione del container Kodi, sostituendo <code>'<'CTID'>'</code> con il suo ID, ad esempio <code>102</code>:",
"editCode": "nano /etc/pve/lxc/CTID.conf",
"addLines": "Aggiungi le righe seguenti, adattando <code>13</code> al numero rilevato sul <strong>tuo</strong> host:",
"configCode": "lxc.cgroup2.devices.allow: c 13:* rwm\nlxc.mount.entry: /dev/input dev/input none bind,optional,create=dir",
"imageConfigAlt": "Configurazione LXC",
"save": "Salva il file, esci dall’editor con <code>Ctrl+X</code> e riavvia <strong>solo il container</strong>. Non occorre riavviare l’host Proxmox:",
"restartCode": "pct reboot CTID",
"plug": "Collega tastiera, mouse o controller USB. Kodi dovrebbe rispondere."
},
"updateKodi": {
"heading": "3. Facoltativo: aggiornare Kodi dai repository configurati",
"calloutTitle": "Importante",
"calloutBody": "Il PPA team-xbmc è <strong>solo per Ubuntu</strong> e Kodi segnala che non è più mantenuto. L’assenza di <code>add-apt-repository</code> non identifica la distribuzione. Controlla <code>cat /etc/os-release</code> e cerca <code>NAME=\"Ubuntu\"</code>; non aggiungere PPA Ubuntu a Debian. I comandi seguenti aggiornano i pacchetti dai repository configurati nel container.",
"body": "Nel container (<code>pct enter '<'CTID'>'</code>):",
"code": "apt update\napt install --only-upgrade kodi kodi-bin",
"after": "Riavvia il container dopo l’aggiornamento. Kodi userà la versione disponibile nei repository configurati, che può differire dall’ultima versione del progetto."
},
"screenshots": {
"heading": "Schermate",
"image1Alt": "Interfaccia Kodi 1",
"image2Alt": "Interfaccia Kodi 2"
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"items": [
"<strong>Il container Kodi si avvia, ma sul televisore non appare nulla:</strong> potrebbe non avere accesso all’iGPU. Controlla <code>ls /dev/dri</code> nel container: dovrebbero apparire <code>card0</code> e <code>renderD128</code>. Se la directory è vuota, controlla il passthrough GPU o usa <strong>Aggiungi GPU a LXC</strong> in ProxMenux.",
"<strong>Tastiera o mouse non rilevati dopo il riavvio:</strong> controlla che <code>/dev/input</code> sia montato e che Kodi possa leggere i dispositivi. Esegui <code>ls -l /dev/input</code> sull’host e nel container e verifica la regola <code>lxc.cgroup2.devices.allow</code>.",
"<strong>La riproduzione con accelerazione hardware usa la CPU invece della GPU:</strong> installa o aggiorna i driver VA-API nel container: <code>intel-media-va-driver</code> per le iGPU Intel recenti, <code>i965-va-driver</code> per quelle meno recenti e <code>mesa-va-drivers</code> per AMD.",
"<strong><code>add-apt-repository: command not found</code>:</strong> il comando non è installato; questo non dimostra che il container usi Debian. Controlla distribuzione e pacchetti disponibili. Su Debian usa i pacchetti Kodi di Debian senza aggiungere il PPA Ubuntu."
]
},
"further": {
"heading": "Ulteriori informazioni",
"konpatRich": "<konpatLink>Articolo di Konpat</konpatLink> per approfondire l’accesso all’iGPU Intel da LXC."
}
}
+119
View File
@@ -0,0 +1,119 @@
{
"meta": {
"title": "Aggiungere un disco USB a LXC e condividerlo con Samba | ProxMenux",
"description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete.",
"ogTitle": "Aggiungere un disco USB a LXC e condividerlo con Samba",
"ogDescription": "Rendere accessibile un disco USB in un container LXC privilegiato su Proxmox VE, installare Samba e condividerne il contenuto sulla LAN."
},
"header": {
"title": "Aggiungere un disco o una chiavetta USB a LXC e condividerli in rete con Samba",
"description": "Rendere accessibile un disco o una chiavetta USB in un container LXC privilegiato su Proxmox VE, installare Samba nel container e condividerne i contenuti in rete.",
"section": "Guide"
},
"recommended": {
"calloutTitle": "Consigliato",
"calloutIntro": "ProxMenux offre entrambe le parti della procedura tramite menu guidati:",
"items": [
"<strong>Gestione dischi → Formatta/cancella disco fisico</strong> per la formattazione.",
"<strong>Archiviazione e condivisione → Condivisione di rete LXC → Server Samba in LXC</strong> per l’installazione nel container privilegiato e la configurazione di Samba."
],
"calloutOutro": "Le procedure guidate gestiscono i permessi dei container non privilegiati, i profili di condivisione in lettura-scrittura, sola lettura o personalizzati e il gruppo sharedfiles. Questa guida descrive i passaggi manuali per comprenderli o configurarli direttamente."
},
"intro": {
"body": "Un disco o una chiavetta USB può essere utile su un host Proxmox, soprattutto sui mini PC con poche possibilità di espansione interna. Questa guida spiega:",
"stepsTitle": "Cosa farai",
"steps": [
"Collegamento del disco USB a un LXC privilegiato.",
"Installare Samba all'interno del contenitore.",
"Condivisione del contenuto del disco sulla LAN."
],
"useCasesTitle": "Casi di utilizzo",
"useCases": [
"Archiviare file torrent e renderli disponibili in rete.",
"Fornire spazio a un server multimediale come Plex, Jellyfin o Emby.",
"Conservare documenti elaborati automaticamente da Paperless.",
"Memorizzazione generica in stile NAS per la rete domestica."
],
"privilegedCalloutTitle": "Container privilegiato per questa procedura",
"privilegedCalloutBody": "Questa procedura usa un container LXC privilegiato con un dispositivo a blocchi come <code>mp0</code>. Per un container non privilegiato puoi montare il filesystem sull’host e condividerne la directory tramite bind mount, con permessi e mappatura degli ID appropriati. Vedi <strong>Archiviazione e condivisione → Punti di montaggio LXC</strong> in ProxMenux."
},
"attach": {
"heading": "1. Collegare il disco USB a LXC",
"identifyHeading": "1.1 Identificare il dispositivo",
"identifyBody": "Confronta l’elenco dei dischi <strong>prima</strong> e <strong>dopo</strong> il collegamento USB. Il nuovo dispositivo è il disco da usare.",
"beforeLabel": "Prima:",
"afterLabel": "Dopo:",
"imageBeforeAlt": "Lista disco prima di aggiungere l'unità USB",
"imageAfterAlt": "Lista disco dopo aver aggiunto l'unità USB",
"lsblkBody": "Puoi anche usare <code>lsblk -o NAME,SIZE,MODEL,SERIAL</code> per elencare i dispositivi a blocchi con modello e numero di serie.",
"stableCalloutTitle": "Importante — utilizzare un identificatore stabile",
"stableCalloutBody": "Il nome <code>/dev/sdb1</code> può cambiare dopo un riavvio, soprattutto con più dischi USB. Cerca l’identificatore persistente:",
"stableCalloutCode": "ls -l /dev/disk/by-id/",
"stableCalloutAfter": "Usa nella configurazione LXC la voce <code>/dev/disk/by-id/usb-...</code> della partizione scelta, al posto di <code>/dev/sdb1</code>. Scegli la partizione, non l’intero disco: resterà identificabile se cambia l’ordine dei dispositivi.",
"formatHeading": "1.2 Formattare il disco",
"formatBody": "ext4 è adatto alle condivisioni Linux: distingue maiuscole e minuscole e supporta ACL POSIX e file grandi. La formattazione distrugge il contenuto del filesystem esistente. Verifica la partizione ed esegui il comando sull’<strong>host Proxmox</strong>:",
"formatCode": "mkfs.ext4 /dev/sdb1",
"formatAfter": "Sostituisci <code>/dev/sdb1</code> con la partizione effettiva o il suo percorso persistente <code>/dev/disk/by-id/usb-...-part1</code>.",
"mkdirHeading": "1.3 Creare il punto di montaggio nel container LXC",
"mkdirBody": "All'interno del LXC, creare la directory in cui apparirà il disco (qualsiasi nome funziona):",
"mkdirCode": "mkdir /mnt/lxc_USB",
"wireHeading": "1.4 Configurare il dispositivo in LXC",
"wireBody": "Sull’<strong>host Proxmox</strong>, modifica la configurazione del container. Sostituisci <code>'<'CTID'>'</code> con il suo ID:",
"wireEditCode": "nano /etc/pve/lxc/CTID.conf",
"wireAddLine": "Aggiungi questa linea:",
"wireConfigCode": "mp0: /dev/disk/by-id/usb-VENDOR_MODEL_SERIAL-part1,mp=/mnt/lxc_USB,backup=0",
"wireShortForm": "Puoi anche usare la voce breve <code>mp0: /dev/sdb1,mp=/mnt/lxc_USB,backup=0</code> se accetti il rischio che il percorso del dispositivo cambi.",
"wireBackupNote": "L’esempio usa <code>backup=0</code>. I contenuti dei montaggi di dispositivi e dei bind mount non sono inclusi nei backup <code>vzdump</code> del container. Prevedi un backup separato dei dati sul disco esterno.",
"restartHeading": "1.5 Riavviare il LXC e impostare le autorizzazioni",
"restartBody": "Riavviare il CT per applicare il punto di montaggio:",
"restartCode": "pct reboot CTID",
"permsBody": "Nel container LXC crea l’account della condivisione prima di assegnargli la proprietà, poi imposta i permessi della directory:",
"permsCode": "adduser --system --group --no-create-home --shell /usr/sbin/nologin proxmenux\nmkdir -p /mnt/lxc_USB\nchown -R proxmenux:proxmenux /mnt/lxc_USB\nchmod 770 /mnt/lxc_USB",
"permsNoteTitle": "Nota",
"permsNote": "Sostituisci <code>proxmenux</code> con il nome scelto. Il modo <code>770</code> consente l’accesso a proprietario e gruppo, escludendo gli altri; è più restrittivo di <code>chmod -R 777</code>. L’account viene creato qui e registrato in Samba al punto 2.2."
},
"samba": {
"heading": "2. Installare Samba",
"installHeading": "2.1 Installare il pacchetto all'interno del LXC",
"installCode": "apt-get update\napt-get install -y samba",
"confirmBody": "Confermare il servizio in esecuzione:",
"confirmCode": "systemctl status smbd.service",
"userHeading": "2.2 Verificare l’utente della condivisione",
"userBody": "L’account di sistema <code>proxmenux</code> è stato creato senza shell di accesso al punto 1.5. Verificalo prima di impostare la password Samba e usa sempre il nome scelto:",
"userCode": "id proxmenux",
"passwordBody": "Imposta la password Samba, separata da quella di sistema: Samba mantiene un proprio archivio di credenziali.",
"passwordCode": "smbpasswd -a proxmenux",
"aclHeading": "2.3 Impostare proprietà e ACL",
"aclBody": "Se il <code>chown</code> del punto 1.5 è sufficiente, i permessi sono pronti. Per più utenti con diritti diversi sullo stesso percorso puoi usare le ACL:",
"aclCode": "apt-get install -y acl\nsetfacl -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB\nsetfacl -d -R -m \"u:proxmenux:rwx\" /mnt/lxc_USB # default ACL — applies to new files"
},
"configure": {
"heading": "3. Configurare la condivisione Samba",
"editHeading": "3.1 Modifica smb.conf",
"editCode": "nano /etc/samba/smb.conf",
"appendBody": "Aggiungi una definizione della condivisione alla fine del file:",
"shareCode": "[lxc_usb]\n comment = Shared USB storage\n path = /mnt/lxc_USB\n read only = no\n writable = yes\n browseable = yes\n guest ok = no\n valid users = proxmenux\n create mask = 0660\n directory mask = 0770",
"validUsersNoteTitle": "Nota",
"validUsersNote": "La linea <code>valid users = proxmenux</code> limita l'accesso a quel singolo utente Samba. Per l'accesso basato su gruppo, utilizzare <code>valid users = @samba_users</code> dopo aver aggiunto l'utente(i) a un gruppo chiamato <code>samba_users</code>.",
"reloadHeading": "3.2 Ricaricare Samba",
"reloadCode": "systemctl restart smbd"
},
"verify": {
"heading": "4. Verificare l'accesso",
"body": "Da qualsiasi client LAN, navigare in <code>\\\\'<'CT_IP'>'</code> (Windows) o <code>smb://'<'CT_IP'>'</code> (macOS / Linux file manager). Autentica con l'utente Samba (<code>proxmenux</code>) e la password impostata con <code>smbpasswd</code>.",
"image1Alt": "Accesso server Samba da un client",
"image2Alt": "Richiesta di autenticazione Samba",
"usageBody": "Puoi usare la condivisione sia nel container sia attraverso la rete:",
"image3Alt": "Uso del disco USB tramite la condivisione"
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"items": [
"<strong><code>pct reboot</code> segnala “device not found”:</strong> verifica che il percorso in <code>mp0</code> esista sull’host. Controlla <code>ls -l /dev/disk/by-id/</code> e correggi il percorso.",
"<strong>Il container si avvia, ma <code>/mnt/lxc_USB</code> è vuoto:</strong> il disco potrebbe non essere montato oppure il filesystem è vuoto. Controlla dall’host con <code>pct exec '<'CTID'>' -- mount | grep lxc_USB</code>. Se il montaggio manca, verifica configurazione, percorso del dispositivo ed errori di avvio.",
"<strong>L’autenticazione Samba riesce, ma la scrittura segnala “Permission denied”:</strong> controlla i permessi Linux della directory e le impostazioni di scrittura della condivisione. Rivedi <code>chown</code> e <code>setfacl</code> nelle sezioni 1.5 e 2.3.",
"<strong>La condivisione non compare, ma <code>smb://'<'ip'>'/lxc_usb</code> funziona:</strong> il vecchio rilevamento NetBIOS usa <code>nmbd</code>. Windows moderno usa WS-Discovery: su Debian 12 installa <code>apt-get install -y wsdd</code>; su Debian 13, dove <code>wsdd</code> non è nell’archivio stabile, usa <code>apt-get install -y wsdd2</code>. Controlla servizio e firewall. Attivare solo <code>nmbd</code> non fornisce WS-Discovery.",
"<strong>Per aggiungere un altro utente alla condivisione:</strong> crea l’account con <code>adduser</code>, registralo con <code>smbpasswd -a</code> e aggiungilo all’elenco <code>valid users =</code>, separato da virgole. Assegna anche i permessi o le ACL necessari sul filesystem."
]
}
}
+165
View File
@@ -0,0 +1,165 @@
{
"meta": {
"title": "Installazione dei driver NVIDIA su Proxmox VE 9 (procedura manuale) | Guide ProxMenux",
"description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container.",
"ogTitle": "Installazione dei driver NVIDIA su Proxmox VE 9 (procedura manuale)",
"ogDescription": "Installazione manuale NVIDIA su PVE 9: driver host, servizio di persistenza, patch NVENC facoltativa e accesso alla GPU per ogni container LXC."
},
"header": {
"title": "Installazione dei driver di scheda grafica NVIDIA su Proxmox VE 9 (procedura manuale)",
"description": "Installare e configurare manualmente i driver NVIDIA su un host Proxmox VE 9 e rendere la GPU accessibile a uno o più container LXC. Include installazione dei driver, servizio di persistenza, patch NVENC facoltativa e configurazione di ogni container.",
"section": "Guide"
},
"intro": {
"calloutTitle": "Nota",
"calloutBody": "Questa procedura manuale resta come riferimento. Per la maggior parte degli utenti è consigliato l’assistente ProxMenux: <strong>Installa driver NVIDIA sull’host</strong> in <em>GPU e Coral-TPU</em>, quindi <strong>Aggiungi GPU a LXC</strong> o <strong>Aggiungi GPU a VM</strong> per configurare l’ospite. L’assistente esegue gli stessi passaggi con controlli aggiuntivi su header del kernel, IOMMU e conflitti VFIO. Questa pagina aiuta a capire ogni comando o ad adattare la configurazione.",
"targetNote": "Destinato a <strong>Proxmox VE 9</strong> (Debian Trixie). PVE 7 (Bullseye) e PVE 8 (Bookworm) non sono più coperti.",
"stepsTitle": "Cosa farai",
"steps": [
"Preparare l’host Proxmox VE 9: bloccare nouveau e verificare repository e prerequisiti.",
"Installare il driver NVIDIA sull'host.",
"Installare il servizio di persistenza NVIDIA.",
"Facoltativo: applicare la patch keylase per rimuovere il limite di sessioni NVENC simultanee sulle GPU consumer.",
"Rendere la GPU accessibile a uno o più container LXC e installare in ognuno la versione corrispondente del driver."
]
},
"prepareHost": {
"heading": "1. Preparare l'host (PVE 9)",
"blacklistHeading": "1.1 Bloccare nouveau",
"blacklistBody": "Controlla se il driver open source <code>nouveau</code> è già bloccato:",
"blacklistCheckCode": "cat /etc/modprobe.d/blacklist.conf",
"blacklistAdd": "Se <code>blacklist nouveau</code> non appare, aggiungerlo e riavviare:",
"blacklistAddCode": "echo \"blacklist nouveau\" >> /etc/modprobe.d/blacklist.conf\nupdate-initramfs -u -k all\nreboot",
"blacklistImageAlt": "Controllo della lista nera",
"reposHeading": "1.2 Verificare i repository (PVE 9 / Trixie)",
"reposBody": "Gli strumenti di post-installazione potrebbero aver già configurato i repository. Controlla prima le fonti esistenti e salta le modifiche già presenti, senza duplicare le voci.",
"reposOtherwise": "Altrimenti, su una nuova installazione PVE 9 senza abbonamento Enterprise:",
"reposEditCode": "nano /etc/apt/sources.list.d/proxmox.sources",
"reposPveBody": "Assicurarsi che contenga la fonte di non abbonamento per Trixie:",
"reposPveCode": "Types: deb\nURIs: http://download.proxmox.com/debian/pve\nSuites: trixie\nComponents: pve-no-subscription\nSigned-By: /usr/share/keyrings/proxmox-archive-keyring.gpg",
"reposDebianBody": "E le fonti Debian a <code>/etc/apt/sources.list.d/debian.sources</code>:",
"reposDebianCode": "Types: deb\nURIs: http://deb.debian.org/debian/\nSuites: trixie trixie-updates\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg\n\nTypes: deb\nURIs: http://security.debian.org/debian-security/\nSuites: trixie-security\nComponents: main contrib non-free non-free-firmware\nSigned-By: /usr/share/keyrings/debian-archive-keyring.gpg",
"updateHeading": "1.3 Aggiornare il sistema e installare prerequisiti",
"updateCode": "apt update && apt dist-upgrade -y",
"buildToolsBody": "Installare gli strumenti di compilazione e le intestazioni del kernel necessari per compilare il modulo del kernel NVIDIA:",
"buildToolsCode": "apt-get install -y git\napt-get install -qqy pve-headers-$(uname -r) gcc make"
},
"installDriver": {
"heading": "2. Installare il driver NVIDIA sull'host",
"pickHeading": "2.1 Scegli una versione del driver",
"pickBody": "Scegli un ramo del driver compatibile con GPU e kernel in uso. Il più recente potrebbe non supportare le vecchie GPU: controlla l’elenco dei prodotti della versione NVIDIA scelta.",
"pickUrlCode": "https://download.nvidia.com/XFree86/Linux-x86_64/latest.txt",
"nvencCallout": "Se si prevede di applicare la patch NVENC (step 4), verificare che la patch supporta prima la versione del driver scelto: <patchLink>github.com/keylase/nvidia-patch</patchLink>",
"nvencCalloutTitle": "Attenzione",
"pickReplace": "Sostituisci <code>latest.txt</code> nell’URL con il numero di versione per trovare il programma di installazione con estensione <code>.run</code>. Elenco completo dei driver:",
"pickListCode": "https://download.nvidia.com/XFree86/Linux-x86_64/",
"pickImageAlt": "Scarica il driver NVIDIA",
"pickVersionNote": "Durante il resto di questa guida, sostituire <code>'<'VERSION'>'</code> con la versione attuale (ad esempio <code>580.95.05</code>).",
"downloadHeading": "2.2 Scaricare ed eseguire l'installatore",
"downloadCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run",
"firstPassBody": "Esegui il programma di installazione. L’opzione seguente può disattivare <code>nouveau</code> se necessario; potrebbe servire un riavvio prima di completare l’installazione:",
"firstPassCode": "./NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none --disable-nouveau\nreboot",
"secondPassBody": "Dopo il ritorno dell'host, eseguire nuovamente l'installatore per compilare e installare il modulo del kernel:",
"secondPassCode": "/opt/nvidia/NVIDIA-Linux-x86_64-VERSION.run --no-questions --ui=none",
"modulesHeading": "2.3 Carica moduli NVIDIA all'avvio",
"modulesBody": "Modifica la configurazione di caricamento dei moduli:",
"modulesEditCode": "nano /etc/modules-load.d/modules.conf",
"modulesAddBody": "Aggiungi i moduli NVIDIA per host e LXC. I moduli VFIO servono al passthrough verso le VM e non sono necessari qui:",
"modulesAddCode": "nvidia\nnvidia_uvm",
"modulesSaveBody": "Salvare (<code>Ctrl+X</code>) e ricostruire initramfs:",
"modulesSaveCode": "update-initramfs -u -k all",
"udevHeading": "2.4 Creare regole di udev",
"udevBody": "Per creare i nodi dei dispositivi <code>/dev/nvidia*</code> al caricamento dei moduli:",
"udevEditCode": "nano /etc/udev/rules.d/70-nvidia.rules",
"udevRulesCode": "# /etc/udev/rules.d/70-nvidia.rules\nKERNEL==\"nvidia\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-smi -L'\"\nKERNEL==\"nvidia_uvm\", RUN+=\"/bin/bash -c '/usr/bin/nvidia-modprobe -c0 -u'\"",
"udevSaveBody": "Salvare (<code>Ctrl+X</code>)."
},
"persistence": {
"heading": "3. Servizio di persistenza NVIDIA",
"body": "Il servizio di persistenza mantiene inizializzata la GPU quando nessun’altra applicazione la usa. Riduce la latenza di reinizializzazione e conserva lo stato di inizializzazione tra i client:",
"installCode": "cd /opt/nvidia\ngit clone https://github.com/NVIDIA/nvidia-persistenced.git\ncd nvidia-persistenced/init\n./install.sh\nreboot",
"verifyBody": "Dopo il riavvio verifica che il driver sia caricato e il servizio attivo:",
"verifySmiCode": "nvidia-smi",
"smiImageAlt": "Uscita NVIDIA SMI",
"verifyServiceCode": "systemctl status nvidia-persistenced",
"serviceImageAlt": "Stato del servizio di persistenza NVIDIA"
},
"nvenc": {
"heading": "4. Facoltativo: rimuovere il limite di sessioni NVENC simultanee",
"body": "Il limite di sessioni NVENC dipende da GPU e versione del driver. Consulta la matrice NVIDIA, senza presumere un numero per generazione. La patch keylase rimuove il limite software nei driver supportati e può aiutare nella transcodifica Plex o Jellyfin.",
"code": "cd /opt/nvidia\ngit clone https://github.com/keylase/nvidia-patch.git\ncd nvidia-patch\n./patch.sh",
"imageAlt": "Applicazione patch NVIDIA",
"after": "Riapplica la patch dopo ogni aggiornamento del driver. Il repository keylase include anche <code>patch-fbc.sh</code> per FBC, la cattura del framebuffer."
},
"lxcSetup": {
"heading": "5. Configurare l’accesso alla GPU in un container LXC",
"identifyHeading": "5.1 Identificare i numeri del dispositivo",
"identifyBody": "Sull'host:",
"identifyCode": "ls -l /dev/nv*",
"identifyImageAlt": "Elenco dei dispositivi NVIDIA",
"identifyNote": "Annota i numeri major dei dispositivi: possono variare tra sistemi. Valori tipici:",
"tableHeaders": {
"device": "Dispositivo",
"major": "Numero major tipico"
},
"tableRows": [
{
"device": "<code>/dev/nvidia0</code>, <code>/dev/nvidiactl</code>",
"major": "195"
},
{
"device": "<code>/dev/nvidia-uvm</code>, <code>/dev/nvidia-uvm-tools</code>",
"major": "509 (variabile)"
},
{
"device": "<code>/dev/dri/*</code>",
"major": "226"
},
{
"device": "<code>/dev/nvidia-modeset</code>",
"major": "195 (condiviso con nvidia)"
}
],
"editHeading": "5.2 Modificare la configurazione LXC",
"editBody": "Arresta il container se è in esecuzione. Apri la configurazione sostituendo <code>'<'CTID'>'</code> con il suo ID:",
"editCode": "nano /etc/pve/lxc/CTID.conf",
"editConfigBody": "Commenta solo le righe <code>lxc.cgroup2.devices.allow</code> o <code>/dev/dri</code> effettivamente in conflitto. Aggiungi la configurazione NVIDIA e adatta i numeri major ai dispositivi NVIDIA mostrati da <code>ls -l /dev/nv*</code> sul <strong>tuo</strong> host:",
"editConfigCode": "lxc.cgroup2.devices.allow: c 195:* rwm\nlxc.cgroup2.devices.allow: c 509:* rwm\nlxc.mount.entry: /dev/nvidia0 dev/nvidia0 none bind,optional,create=file\nlxc.mount.entry: /dev/nvidiactl dev/nvidiactl none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm dev/nvidia-uvm none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-modeset dev/nvidia-modeset none bind,optional,create=file\nlxc.mount.entry: /dev/nvidia-uvm-tools dev/nvidia-uvm-tools none bind,optional,create=file",
"editConfigImageAlt": "Configurazione LXC",
"editSave": "Salvare (<code>Ctrl+X</code>) e avviare il contenitore.",
"installCtHeading": "5.3 Installare il driver all'interno del contenitore",
"installCtCalloutTitle": "Importante",
"installCtCalloutBody": "Questa parte va eseguita <strong>nel container</strong>, non sull’host.",
"installCtBody": "Il modulo del kernel è già caricato sull’host. Il container richiede solo le librerie nello spazio utente della stessa versione del driver:",
"installCtCode": "mkdir -p /opt/nvidia\ncd /opt/nvidia\nwget https://download.nvidia.com/XFree86/Linux-x86_64/VERSION/NVIDIA-Linux-x86_64-VERSION.run\nchmod +x NVIDIA-Linux-x86_64-VERSION.run\n./NVIDIA-Linux-x86_64-VERSION.run --no-kernel-module",
"installCtAfter": "Leggi le richieste e limita l’installazione alle librerie nello spazio utente. Non compilare né installare moduli del kernel nel container LXC.",
"installCtImageAlt": "Installazione driver NVIDIA",
"verifyCtHeading": "5.4 Verifica all'interno del contenitore",
"verifyCtSmiCode": "nvidia-smi",
"verifyCtSmiImageAlt": "NVIDIA SMI in LXC",
"verifyCtLsCode": "ls -l /dev/nv*",
"verifyCtLsImageAlt": "Dispositivi NVIDIA in LXC",
"verifyCtAfter": "La GPU dovrebbe comparire nell’elenco e i nodi dei dispositivi nel filesystem del container.",
"workloadHeading": "5.5 Verificare l’uso della GPU con un carico reale",
"workloadBody": "Attiva l’accelerazione NVIDIA in Plex o Jellyfin, avvia una transcodifica e verifica l’uso effettivo della GPU nella dashboard o nei log. Installare il driver non la abilita automaticamente nell’applicazione.",
"workloadImage1Alt": "Plex usando NVIDIA GPU",
"workloadImage2Alt": "Plex con NVIDIA GPU - sessione attiva",
"repeatNote": "Ripeti la <strong>sezione 5</strong> per ogni altro container che richiede la GPU. Quando aggiorni il driver host, mantieni allineate le librerie nello spazio utente di tutti i container."
},
"docker": {
"heading": "6. (opzionale) NVIDIA Docker all'interno di un LXC",
"body": "Se Docker è già installato nel container LXC, installa al suo interno <code>nvidia-container-toolkit</code> per dare accesso alla GPU ai container Docker. L’accesso alla GPU da LXC deve già funzionare. Questi comandi riguardano Docker eseguito come root:",
"code": "apt-get update\napt-get install -y ca-certificates curl gnupg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor --yes -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg\ncurl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' > /etc/apt/sources.list.d/nvidia-container-toolkit.list\napt-get update\napt-get install -y nvidia-container-toolkit\nnvidia-ctk runtime configure --runtime=docker\nsystemctl restart docker",
"after": "I comandi configurano il repository NVIDIA, installano il toolkit, configurano il runtime Docker e riavviano Docker. Restano validi i permessi dei dispositivi e i limiti cgroup di LXC: verifica la GPU con un carico di prova."
},
"troubleshoot": {
"heading": "Risoluzione dei problemi",
"items": [
"<strong><code>nvidia-smi</code> funziona sull’host, ma segnala “No devices found” nel container:</strong> controlla montaggi, permessi e versioni delle librerie. Se differiscono, installa nel container la stessa <code>'<'VERSION'>'</code> dell’host con <code>--no-kernel-module</code>.",
"<strong>La compilazione del driver fallisce:</strong> consulta il log. “No precompiled kernel interface was found” può semplicemente indicare che serve la compilazione locale. Installa gli header corrispondenti a <code>uname -r</code> con <code>apt-get install pve-headers-$(uname -r)</code> o il pacchetto proxmox-headers equivalente.",
"<strong>Le sessioni NVENC restano limitate:</strong> verifica che la patch supporti il driver attivo. Un aggiornamento può sovrascriverla. Per una versione compatibile riapplica <code>./patch.sh</code> da <code>/opt/nvidia/nvidia-patch</code> e controlla l’output.",
"<strong>La GPU smette di rispondere dopo l’inattività:</strong> controlla <code>systemctl status nvidia-persistenced</code> e abilita il servizio se previsto. Esamina anche i log del kernel e del driver: non è l’unica causa possibile.",
"<strong>Il container si avvia, ma <code>ls /dev/nv*</code> non mostra dispositivi NVIDIA:</strong> controlla bind mount e percorsi sull’host. Usa <code>ls -l /dev/nv*</code> per verificare i numeri major NVIDIA, poi controlla le regole <code>lxc.cgroup2.devices.allow</code> e i permessi."
]
}
}