{ "meta": { "title": "ProxMenux Monitor — Pannello: Hardware | Documentazione ProxMenux", "description": "La scheda Hardware inventaria la macchina fisica: CPU e scheda madre, moduli di memoria, sensori termici, GPU con monitoraggio per slot e installazione driver in un clic, acceleratori Coral TPU, riepilogo storage con velocità dei collegamenti, elenchi PCI e USB, consumo, alimentatori, ventole e UPS." }, "header": { "title": "Pannello: Hardware", "description": "La macchina fisica in uno schermo — CPU e l'identità della scheda madre, ogni modulo di memoria, sensori termici in tutti i sottosistemi, GPU con l'utilizzo dal vivo e un installatore driver integrato, Coral TPUs, ogni dispositivo PCI e USB con il suo driver del kernel, l'inventario del disco completo con velocità di collegamento negoziate, più potenza, raffreddamento e UPS.", "section": "ProxMenux Monitor · Dashboard" }, "intro": { "title": "Costruito con strumenti standard", "body": "La maggior parte dei dati proviene da lscpu, dmidecode, lspci, lsusb, lsblk, smartctl, nvme, sensors, nvidia-smi, intel_gpu_top, amdgpu_top, ipmitool e upsc. Le sezioni appaiono solo quando lo strumento pertinente restituisce dati: senza UPS non appare la scheda UPS e senza IPMI non appaiono i dati di potenza fuori banda." }, "thresholds": { "title": "Colori e soglie di stato applicate qui", "intro": "Ogni indicatore e lettura di temperatura usa la stessa scala: verde sotto Avviso, ambra tra Avviso e Critico, rosso da Critico in poi. Valori predefiniti consigliati di ProxMenux:", "items": [ "Temperatura CPU — avviso 80 °C, critico 90 °C.", "Temperatura del disco — HDD 60/65 °C · SSD 70/75 °C · NVMe 80/85 °C · SAS 55/65 °C (avvertimento / critico)." ], "outro": "Ogni valore è configurabile per host. Impostazioni → Soglie del monitor di integrità centralizza le impostazioni e spiega come regolarle." }, "sections": { "heading": "Sezioni", "intro": "Le sezioni appaiono in questo ordine, dall’alto in basso. Alcune richiedono lo hardware o lo strumento corrispondente e sono indicate come (condizionale).", "systemInfoTitle": "Informazioni sistema", "systemInfoIntro": "Due blocchi affiancati, sempre presenti:", "systemInfoItems": [ "CPU — modello, microarchitettura, socket/core/thread, frequenze base e boost, funzionalità di virtualizzazione (VT-x / AMD-V) e topologia della cache.", "Scheda madre — produttore, modello, versione e data BIOS, UUID SMBIOS. Aiuta a trovare la pagina corretta del produttore per gli aggiornamenti firmware." ], "memoryTitle": "Moduli memoria", "memoryBody": "Una riga per slot occupato da dmidecode: etichetta, capacità del modulo, tipo (DDR4 / DDR5 / varianti ECC), velocità configurata e nominale, produttore, codice prodotto e numero di serie. Gli slot vuoti sono attenuati per mostrare le possibilità di espansione.", "thermalTitle": "Monitoraggio termico", "thermalIntro": "Sette blocchi con dati da lm-sensors, sysfs e lettori specifici per strumento. I sensori hwmon di storage sono associati al dispositivo a blocchi fisico, con modello e percorso /dev/.... Un blocco si nasconde se la categoria non contiene sensori.", "thermalItems": [ "CPU — temperatura del package e di ogni core.", "GPU — sensori di GPU dedicata tramite nvidia-smi / amdgpu_top e iGPU Intel. Include hot spot e temperatura di giunzione della memoria quando il driver li espone.", "NVME — temperatura composita del controller associata al namespace NVMe esatto.", "HDD — Letture drivetemp per dispositivi di blocco rotazionale.", "SSD — Letture drivetemp per dispositivi di blocco SATA/SAS non-rotazionali.", "PCI — sensori di dispositivi collegati a PCI, come HBA e schede di rete con sensori interni.", "OTHER — chipset, VRM, sensori ambientali che non si adattano altrove." ] }, "graphics": { "heading": "Schede grafiche", "intro": "Ogni controller video appare in una scheda con produttore, modello, tipo (Integrata / PCI / BMC), indirizzo PCI (BDF), driver del kernel e moduli. Cambia modalità alterna condivisione LXC con driver nativo e passthrough VM (vfio-pci). Cambia modalità GPU (VM ↔ LXC) spiega gli effetti sull'host.", "vfioImageAlt": "Schede grafiche: Matrox G200EH integrata associata a mgag200, pronta per LXC, e NVIDIA Quadro P400 associata a vfio-pci, pronta per passthrough VM", "vfioImageCaption": "Due GPU rilevate: il chip BMC Matrox usa il driver nativo ed è pronto per LXC; NVIDIA Quadro P400 è associata a vfio-pci, pronta per passthrough VM.", "lxcImageAlt": "Schede grafiche: iGPU Intel UHD Graphics con i915 e NVIDIA Quadro P1000 con nvidia, entrambe pronte per container LXC", "lxcImageCaption": "Stesso nodo dopo aver cambiato la scheda NVIDIA al driver nativo — entrambe le GPU ora pronte per contenitori LXC.", "realtimeTitle": "Finestra di monitoraggio in tempo reale", "realtimeBody": "Un clic apre il monitoraggio per slot, che interroga lo strumento del produttore ogni tre secondi. Mostra produttore, tipo, slot PCI, driver, moduli del kernel, utilizzo dei motori (Render/3D, Video, Blitter, VideoEnhance), frequenze grafiche e di memoria, temperatura, consumo se disponibile, VRAM e processi attivi con carico per processo. Dati da /api/gpu/<slot>/realtime.", "toolsIntro": "Lo strumento del fornitore utilizzato per GPU:", "headerVendor": "Produttore", "headerTool": "Strumento", "headerProject": "Progetto", "tools": [ { "vendor": "NVIDIA", "tool": "nvidia-smi", "projectLabel": "developer.nvidia.com", "projectHref": "https://developer.nvidia.com/nvidia-system-management-interface" }, { "vendor": "Intel iGPU", "tool": "intel_gpu_top (igt-gpu-tools)", "projectLabel": "gitlab.freedesktop.org", "projectHref": "https://gitlab.freedesktop.org/drm/igt-gpu-tools" }, { "vendor": "AMD", "tool": "amdgpu_top", "projectLabel": "github.com/Umio-Yasuno/amdgpu_top", "projectHref": "https://github.com/Umio-Yasuno/amdgpu_top" }, { "vendor": "Matrox / ASPEED (BMC)", "tool": "— (solo visualizzazione)", "projectLabel": "Rilevato e identificato come BMC; nessun monitoraggio in tempo reale." } ], "nvidiaImageAlt": "Monitoraggio NVIDIA Quadro P1000: produttore NVIDIA, driver nvidia caricato, frequenza grafica 1.26 GHz, memoria 2.50 GHz, temperatura 50 °C, motori allo 0 %, nessun processo attivo, memoria totale 4096 MiB", "nvidiaImageCaption": "NVIDIA Quadro P1000 con driver proprietario: frequenze, temperatura, barre di utilizzo dei motori e processi attivi.", "intelImageAlt": "Monitoraggio iGPU Intel UHD Graphics con i915: consumo 11.31 W, carico video 1 % e processo ffmpeg che usa 8 MB", "intelImageCaption": "Intel iGPU con i915 attivo. La tabella dei processi attivi raccoglie un lavoro ffmpeg utilizzando il motore video.", "amdImageAlt": "Monitoraggio GPU integrata AMD Lucienne con amdgpu: motori allo 0 % e amdgpu_top come processo attivo", "amdImageCaption": "iGPU AMD monitorata con amdgpu_top. Lo strumento appare come processo attivo perché acquisisce i dati in tempo reale.", "installTitle": "Installare il driver NVIDIA dalla finestra", "installBody": "Con nouveau/nvidiafb senza driver proprietario NVIDIA, non sono disponibili frequenze, consumo e carico per processo. La finestra offre Installa driver NVIDIA, che esegue lo script di Installa driver NVIDIA (host).", "noDriverAlt": "Monitoraggio NVIDIA Quadro P620 con nvidiafb e nouveau caricati, avviso Monitoraggio esteso non disponibile e pulsante blu Installa driver NVIDIA", "noDriverCaption": "Driver proprietario non ancora installato: la finestra offre un installatore in un clic.", "promptAlt": "Conferma di installazione del driver NVIDIA con GPU rilevate, container LXC con passthrough NVIDIA e pulsanti Sì/Annulla", "promptCaption": "Riepilogo prima dell'installazione: GPU rilevate, container LXC con passthrough NVIDIA e azioni previste. Nessuna modifica prima della conferma.", "successAlt": "Uscita terminale che mostra il driver NVIDIA 580.105.08 installato con successo e nvidia-smi segnalando un Quadro P620", "successCaption": "Installazione di successo — il NVIDIA .run costruito tramite DKMS, il servizio di persistenza è in atto, e nvidia-smi segnala il GPU.", "warningTitle": "Scegli una versione del driver supportata dalla GPU", "warningBody": "I nuovi rami NVIDIA abbandonano il supporto per famiglie GPU precedenti, come Maxwell o Kepler. Se nvidia-smi mostra \"No devices were found\" dopo l'installazione o DKMS fallisce, il ramo può essere incompatibile. Ripeti con un ramo precedente, come legacy 470.x per Kepler. Verifica la compatibilità nella pagina ufficiale di ricerca dei driver.", "whereGoIntro": "Dove andare da qui:", "whereGoItems": [ "Installa driver NVIDIA (host) — guida completa, matrice di compatibilità del kernel, patch NVENC opzionale e propagazione ai LXC.", "Cambia modalità GPU (VM ↔ LXC) — effetti del comando Cambia modalità nella scheda.", "Aggiungi GPU a VM (passthrough) e Aggiungi GPU a LXC — prima assegnazione di una GPU non associata." ] }, "coral": { "heading": "Coral TPU / Acceleratori AI", "subHeading": "(condizionale)", "intro": "Appare con dispositivi Google Coral o altri acceleratori AI collegati. Ogni finestra mostra connessione (M.2 / mini-PCIe / USB), larghezza PCIe, ID produttore/prodotto, supporto software (apex nel kernel per PCIe, libedgetpu in spazio utente per USB), moduli (gasket + apex), nodi (/dev/apex_*), stato del runtime Edge TPU, temperatura in tempo reale e soglie di avviso del firmware.", "imageAlt": "Coral Edge TPU dettaglio modale: connessione PCIe/M.2, collegamento PCIe 5.0 GT/s x1, fornitore 1ac1:089a, driver del kernel apex, Moduli gasket e apex caricati, /dev/apex_0 presente, Edge TPU Runtime non installato, temperatura 53.5 °C con soglie di avviso hardware", "imageCaption": "M.2 Coral con i moduli del kernel host caricati, il nodo del dispositivo e gli avvisi di temperatura del firmware esposti. La linea runtime diventa verde una volta installato il runtime Edge TPU corrispondente.", "pathsIntro": "Esistono due percorsi di installazione a seconda del fattore forma:", "pathsItems": [ "M.2 / Mini-PCIe — l'host ha bisogno dei moduli del kernel gasket + apex costruiti tramite DKMS così il nodo del dispositivo /dev/apex_0 appare all'avvio.", "USB Accelerator — l'host ha solo bisogno del runtime user-space Edge TPU (libedgetpu1-std) del repository APT di Google." ], "outro": "Installa Coral TPU sull'host rileva e gestisce entrambe le varianti. Informazioni e runtime ufficiale sono su coral.ai/docs. Poi assegna il dispositivo a un container con Aggiungi Coral TPU a LXC." }, "storage": { "heading": "Riepilogo storage", "intro": "Tutti i dispositivi a blocchi noti al kernel, raggruppati per tipo. Ogni disco mostra nome (sda, nvme0n1, zram0…), tipo (SSD, HDD, NVMe SSD), modello e collegamento negoziato. Un clic apre modello, numero di serie, capacità, interfaccia e velocità attuale e massima.", "imageAlt": "Riepilogo storage con undici dispositivi a blocchi (SSD SATA, HDD SATA, SSD NVMe e zram), modelli e velocità negoziate; due NVMe in 3.0 x4 con velocità attuale evidenziata", "imageCaption": "Undici dispositivi su questo nodo. I collegamenti SATA appaiono come SATA <version>, <Gb/s> (current: ...); gli NVMe come <PCIe gen> x<width>.", "nvmeBody": "Per ogni NVMe la riga confronta il collegamento negoziato con il massimo supportato. Se differiscono, per esempio un SSD Gen3 x4 a 3.0 x1 in uno slot con una sola linea, il valore attuale appare in ambra. Aiuta a diagnosticare dischi lenti o cambiamenti delle linee dopo un aggiornamento BIOS.", "nvmeModalAlt": "Dettagli NVMe di nvme0n1: NVMe SSD, 953.9 GB, collegamento attuale 3.0 x1 in ambra, massimo 3.0 x4, WDC CL SN720, numero di serie e interfaccia PCIe/NVMe", "nvmeModalCaption": "Dettagli NVMe con collegamento ridotto: il disco supporta x4, ma lo slot è cablato x1.", "outro": "Dati SMART, autotest, cronologia e rapporto PDF sono in Pannello: Storage. Gli stessi dati alimentano Integrità e test SMART dei dischi. Un test lungo dallo script scrive il JSON mostrato da Monitor in Storage → Cronologia." }, "pci": { "heading": "Dispositivi PCI", "intro": "Dispositivi PCI identificati dal BDF PCI (Bus:Device.Function, ad esempio 03:00.0) e classe (Controller di storage, Controller USB, Scheda grafica, Controller di rete, Controller audio…). Ogni scheda mostra produttore, nome e driver del kernel associato, utili per diagnosticare passthrough, gruppi IOMMU o driver errati.", "imageAlt": "PCI Dispositivi elenco quindici dispositivi raggruppati per classe: controller di archiviazione su ahci/nvme, controller USB, schede grafiche (uno su vfio-pci, uno sul driver nativo), controllori di rete su igb / tg3, un controller audio accanto a un GPU", "imageCaption": "Quindici dispositivi su questo nodo. Notare il GPU e la sua funzione audio compagno sia legato a vfio-pci — che è una scheda preparata per il passaggio VM.", "bdfTitle": "Leggere il BDF", "bdfBody": "03:00.0 indica bus PCI 03, dispositivo 00, funzione 0. Le GPU dedicate usano di solito .0 per la GPU e .1 per l'audio HDMI. Entrambe le funzioni si passano insieme alla VM; Cambia modalità GPU pulisce quindi anche le associazioni audio orfane quando si esce dalla modalità VM." }, "usb": { "heading": "Dispositivi USB", "intro": "Dispositivi USB con produttore e prodotto, versione USB, indirizzo bus:device, ID vendor:product e driver del kernel. Sono classificati per ruolo: Comunicazioni (adattatori Z-Wave / Zigbee), UPS, storage o HID. Si identificano così senza confrontare gli ID.", "imageAlt": "Dispositivi USB: Aeotec Z-Wave Z-Stick, coordinatore Zigbee ConBee II e UPS Ellipse ECO, con versione USB, indirizzo, ID vendor:product e driver associato", "imageCaption": "Tre dispositivi USB — due radio home-automazione su usbfs e un UPS su usbfs (NUT parla con libusb)." }, "power": { "heading": "Consumo energetico", "subHeading": "(condizionale)", "intro": "Appare se l'host fornisce telemetria di potenza. Mostra due fonti indipendenti quando disponibili:", "items": [ "Consumo totale ACPI / IPMI — potenza di tutto il sistema misurata da un sensore della scheda madre o dal BMC. Tipico delle schede server.", "Consumo del package CPU — contatori Intel RAPL o equivalente AMD. Distingue il consumo CPU dal resto sulle schede consumer prive di sensore totale." ], "supplyImageAlt": "Consumo: 198 W totali via ACPI e due alimentatori con stato OK e potenza di uscita di 185 W e 5 W", "supplyImageCaption": "Scheda server con un sensore ACPI e due alimentatori via IPMI: il secondo è ridondante, a riposo con 5 W.", "cpuImageAlt": "Consumo su scheda consumer: solo 8.7 W di CPU tramite Intel RAPL", "cpuImageCaption": "Scheda consumer senza sensore totale: mostra solo il consumo CPU tramite RAPL." }, "psu": { "heading": "Alimentatori", "subHeading": "(condizionale)", "body": "Sulle macchine server con doppi alimentatori, IPMI mostra presenza (PSU 1 / PSU 2 / …), tensione di ingresso, potenza di uscita e stato OK/guasto. Da controllare dopo un'interruzione elettrica sui nodi con alimentatori ridondanti." }, "fans": { "heading": "Ventole sistema", "subHeading": "(condizionale)", "body": "RPM di ogni ventola con minigrafico, se supportato. Senza dati individuali mostra una sola lettura della ventola del telaio." }, "ups": { "heading": "Stato UPS", "subHeading": "(condizionale)", "body": "Appare con un server NUT (Network UPS Tools) configurato e raggiungibile. Mostra stato (rete / batteria / ricarica / batteria scarica), carica della batteria, autonomia stimata, percentuale di carico, tensione di ingresso, modello e firmware. I dati alimentano anche Sicurezza e certificati del monitor di integrità: il passaggio a batteria viene segnalato subito." }, "dataCollected": { "heading": "Come vengono raccolti i dati", "headerSection": "Sezione della scheda", "headerEndpoint": "Endpoint", "headerSource": "Fonte", "rows": [ { "section": "inventario statico (PCI, CPU, BIOS)", "endpoint": "/api/hardware", "source": "lspci -vmm, /proc/cpuinfo, dmidecode; cache per la durata del processo." }, { "section": "Valori del sensore dal vivo", "endpoint": "/api/hardware/live", "source": "sensors (lm-sensors), /sys/class/hwmon e /sys/block identificano i dispositivi di storage. Le temperature restano in tempo reale; solo la mappatura hwmon-dispositivo è in cache per 60 secondi." }, { "section": "Storia della temperatura CPU", "endpoint": "/api/temperature/history", "source": "Serie temporale registrata ogni 60 secondi dal collettore di temperatura e salvata in SQLite." }, { "section": "metriche live GPU", "endpoint": "/api/gpu//realtime", "source": "NVIDIA: nvidia-smi --query-gpu=.... Intel: intel_gpu_top. AMD: sysfs /sys/class/drm/cardN." } ], "codeComment1": "# Confronta l'inventario con la vista del sistema operativo", "codeComment2": "# Confermare la scheda GPU che il cruscotto vede" }, "whereNext": { "heading": "Dove proseguire", "items": [ { "label": "Installare driver NVIDIA (Host)", "href": "/docs/hardware/nvidia-host", "tail": " — script eseguito dal pulsante di installazione della finestra GPU." }, { "label": "Cambia modalità GPU (VM ↔ LXC)", "href": "/docs/hardware/switch-gpu-mode", "tail": "— che cosa fa l'interruttore in linea su ogni scheda GPU all'host." }, { "label": "Installare Coral TPU sull'host", "href": "/docs/hardware/install-coral-tpu-host", "tail": " — installazione del modulo kernel e del runtime Coral." }, { "label": "Integrità e test disco SMART", "href": "/docs/disk-manager/smart-disk-test", "tail": " — script che produce i dati SMART nei dettagli del disco nella scheda Storage." }, { "label": "Dashboard: scheda di stoccaggio", "href": "/docs/monitor/dashboard/storage", "tail": " — tabella completa degli attributi SMART, cronologia degli autotest e rapporto PDF." }, { "label": "Monitoraggio integrità", "href": "/docs/monitor/health-monitor", "tail": " — categoria CPU e Temperatura, che usa gli stessi sensori." }, { "label": "Riferimento API", "href": "/docs/monitor/api", "tail": " — endpoint di hardware e GPU." }, { "label": "Indice del pannello", "href": "/docs/monitor/dashboard", "tail": "— le altre schede." } ] } }