Temperatura Raspberry Pi: come monitorarla con vcgencmd e Cockpit
Il firmware di un Raspberry Pi sa sempre quanto scalda il SoC, a che frequenza girano i core Arm e se l’alimentatore ha mai fatto scendere la tensione. Per leggerlo basta vcgencmd, lo strumento di Raspberry Pi OS che interroga la GPU VideoCore. Questa guida parte da lì: temperatura, clock e il valore di get_throttled letto bit per bit. Nella seconda parte installiamo Cockpit, un’interfaccia web per server Linux che mostra CPU, memoria, archiviazione e servizi, e la mettiamo in ascolto solo sull’indirizzo del Pi nella rete di casa. I comandi sono quelli della documentazione ufficiale, elencata in fondo.
Cosa serve
- Sistema: Raspberry Pi OS. L’ultima versione si basa su Debian Trixie, la precedente su Debian Bookworm. La parte su vcgencmd segue la documentazione Raspberry Pi. Per Cockpit seguiamo le istruzioni che il progetto pubblica per Debian, dove il pacchetto c’è dalla versione 10 (Buster): non sono scritte per Raspberry Pi OS. Valgono per la versione a 64 bit, che prende i pacchetti dai repository Debian, e solo per Raspberry Pi OS Trixie: non applicarle a Bookworm, perché gli aggiornamenti di bookworm-backports sono terminati il 9 agosto 2026. La versione a 32 bit usa invece il repository Raspbian.
- Scheda: vcgencmd c’è su tutti i Raspberry Pi. La temperatura del PMIC si legge solo sui Raspberry Pi 4 e 5. Le misure di tensione e corrente con
pmic_read_adcci sono solo sul Raspberry Pi 5. - Terminale: un utente che può usare
sudoe una shell compatibile POSIX, come bash. Se usi fish o un’altra shell, Cockpit suggerisce di aprire temporaneamente bash conbash -i. - Spazio libero sulla scheda per gli aggiornamenti.
- Un PC sulla stessa rete con un browser recente. Cockpit viene sviluppato e testato in automatico con Firefox e Chrome, e controllato periodicamente con Edge e Safari. Le versioni minime indicate sono Firefox 82, Chrome 88, Edge 88 e Safari 14.5, ma per motivi di sicurezza il progetto raccomanda l’ultima versione.
Aggiornare Raspberry Pi OS prima di cominciare
Con l’aggiornamento via APT arrivano anche il kernel e il firmware stabile, contenuto nel pacchetto raspi-firmware. Apri il terminale e aggiorna prima l’elenco dei pacchetti:
sudo apt update
Poi installa gli aggiornamenti. La documentazione di Raspberry Pi OS raccomanda full-upgrade al posto di upgrade, perché Raspberry Pi OS cambia le dipendenze dei pacchetti più spesso di Debian:
sudo apt full-upgrade
APT indica lo spazio necessario e chiede conferma: premi Y e poi Invio.
Vedere cosa sa fare vcgencmd
Il codice sorgente di vcgencmd è pubblico su GitHub. Non tutte le schede accettano gli stessi sottocomandi: mem_oom, per esempio, sul Raspberry Pi 5 non c’è. Per questo il primo passo è chiedere l’elenco:
vcgencmd commands
La sintassi è sempre la stessa: vcgencmd seguito dal nome del sottocomando. La temperatura del SoC, misurata dal sensore interno, si legge con measure_temp. Sui Raspberry Pi 4 e 5 puoi aggiungere pmic dopo measure_temp per leggere la temperatura del PMIC.
Secondo la documentazione sull’hardware Raspberry Pi, le temperature lette da Linux possono essere imprecise, mentre vcgencmd dà una lettura accurata e istantanea perché comunica direttamente con la GPU.
Leggere la frequenza attuale della CPU
measure_clock restituisce la frequenza attuale del clock che gli indichi. Con il valore arm legge quella dei core Arm, cioè della CPU:
vcgencmd measure_clock arm
Accetta anche altri clock, fra cui core (il core della GPU), emmc (l’interfaccia della scheda SD) e hdmi. Perché la frequenza scenda lo spiega la gestione termica: il limite è fissato a 85 °C su tutti i modelli; fra 80 e 85 °C i core Arm vengono rallentati progressivamente, e a 85 °C vengono rallentati sia i core Arm sia la GPU. Il valore da solo non dice se c’è throttling: per saperlo leggi get_throttled, nella sezione successiva.
Sottotensione e throttling: leggere get_throttled
vcgencmd get_throttled restituisce lo stato di throttling del sistema come numero esadecimale, da leggere bit per bit: ogni bit acceso indica una condizione. I bit da 0 a 3 descrivono quello che succede in questo momento, i bit da 16 a 19 segnalano condizioni che si sono verificate dall’avvio. Questa è la tabella della documentazione Raspberry Pi:
| Bit | Valore esadecimale | Significato |
|---|---|---|
| 0 | 0x1 |
Sottotensione rilevata |
| 1 | 0x2 |
Frequenza Arm limitata |
| 2 | 0x4 |
Throttling in corso |
| 3 | 0x8 |
Limite di temperatura soft attivo |
| 16 | 0x10000 |
Si è verificata una sottotensione |
| 17 | 0x20000 |
Si è verificata una limitazione della frequenza Arm |
| 18 | 0x40000 |
Si è verificato un throttling |
| 19 | 0x80000 |
Si è raggiunto il limite di temperatura soft |
Se ottieni 0x0, nessun bit è acceso. Se è acceso un bit fra 16 e 19 ma i bit da 0 a 3 sono spenti, il problema c’è stato ma in quel momento non è attivo.
Se rilevi sottotensione, passa a un alimentatore e a un cavo di qualità adeguata: un’alimentazione scadente può causare comportamenti imprevedibili e corrompere i dati sul supporto di archiviazione, come avverte la documentazione Raspberry Pi sugli avvisi di alimentazione.
Solo su Raspberry Pi 5: controllare la tensione di alimentazione
Il PMIC del Raspberry Pi 5 ha degli ADC integrati. pmic_read_adc li legge e riporta la corrente assorbita e la tensione di ogni linea di alimentazione del PMIC, più la tensione di ingresso EXT5V_V. Senza parametri mostra tutti i canali:
vcgencmd pmic_read_adc
I canali che finiscono in _A sono correnti, quelli che finiscono in _V sono tensioni, da 3V3_SYS a VDD_CORE. Per leggere solo la tensione che arriva dall’alimentatore, indica il nome del canale:
vcgencmd pmic_read_adc EXT5V_V
Nell’esempio della documentazione il risultato è:
EXT5V_V volt(24)=5.06520000V
Queste letture non includono la corrente delle porte USB né quella di altri dispositivi collegati direttamente ai 5 V, perché quell’energia non passa dal PMIC.
Installare Cockpit dai backports Debian
Cockpit parte solo quando serve, grazie all’attivazione tramite socket di systemd, e non resta in background quando non lo usi. È software libero, distribuito con licenza GNU LGPL. Per avere la versione più recente, la pagina di installazione di Cockpit consiglia il repository backports di Debian. Per prima cosa carica le variabili di sistema, fra cui c’è il nome in codice della tua versione:
. /etc/os-release
Il passaggio successivo aggiunge un repository alle sorgenti di APT. Esegui tutto nella stessa finestra del terminale: in un’altra finestra la variabile ${VERSION_CODENAME} sarebbe vuota e la riga scritta nel file non funzionerebbe. Nella pagina di Cockpit, alla sezione Debian, copia il blocco di due righe che comincia con echo "deb http://deb.debian.org/debian ${VERSION_CODENAME}-backports main" e finisce con sudo tee /etc/apt/sources.list.d/backports.list. Incolla le due righe insieme e senza modificarle: la barra rovesciata alla fine della prima le unisce in un solo comando, che crea il file /etc/apt/sources.list.d/backports.list. Poi aggiorna l’elenco dei pacchetti:
sudo apt update
Ora installa Cockpit dal repository backports:
sudo apt install -t ${VERSION_CODENAME}-backports cockpit
Conferma con Y. Quando aggiorni Cockpit e le sue dipendenze, il progetto raccomanda di usare di nuovo l’opzione -t con il backports, come qui, così che i pacchetti arrivino da lì.
Avviare Cockpit e aprirlo nel browser
Il browser si collega al componente cockpit-ws, che parte quando arriva una connessione al socket cockpit.socket, di solito sulla porta 9090. Secondo la guida di Cockpit sull’avvio, per rendere il pannello disponibile dopo l’avvio del sistema bisogna abilitare il socket:
sudo systemctl enable cockpit.socket
Da un PC della stessa rete apri il browser all’indirizzo https://<indirizzo-IP-del-Pi>:9090. Al posto del segnaposto metti l’indirizzo IP del Raspberry Pi sulla rete di casa: se non lo conosci, la documentazione Raspberry Pi spiega come trovarlo nella sezione «Find the IP address of your Raspberry Pi». Se il browser mostra un avviso sul certificato, accettalo ed entra con nome utente e password del Raspberry Pi: Cockpit usa gli account e i permessi normali del sistema.
La home del progetto elenca cosa puoi fare dal pannello, fra cui:
- seguire le prestazioni, con metriche che mettono in relazione carico della CPU, uso della memoria, traffico di rete e archiviazione con il journal di sistema;
- gestire l’archiviazione;
- controllare i servizi systemd e intervenire su di essi;
- sfogliare e cercare nei log di sistema, vedere l’hardware e aggiornare il software;
- usare un terminale integrato.
Quando ti disconnetti, il processo cockpit-bridge termina. Dopo 10 minuti senza attività si chiude da solo anche cockpit-ws.
Limitare Cockpit alla rete di casa
Di default cockpit-ws accetta connessioni sulla porta 9090. La guida su porta e indirizzo spiega come metterlo in ascolto su un solo indirizzo IP con un file drop-in per systemd.
Attenzione: questo passaggio cambia il modo in cui raggiungi il pannello. Se nel file scrivi un indirizzo sbagliato, dopo il riavvio del socket Cockpit non risponderà più dal browser; per rimediare correggi o cancella il file dal terminale del Pi, in locale o via SSH. Vale lo stesso se il router assegna al Pi un indirizzo IP diverso da quello scritto nel file. E non aprire né inoltrare la porta 9090 sul router: Cockpit non va esposto su internet.
Il file va in /etc/systemd/system/cockpit.socket.d/listen.conf. La cartella cockpit.socket.d di solito non c’è, e la guida di Cockpit dice di creare le cartelle mancanti del percorso. Crea la cartella cockpit.socket.d dentro /etc/systemd/system con mkdir preceduto da sudo, poi apri il file con un editor di testo da terminale, sempre tramite sudo. Se il file non esiste, l’editor si apre vuoto e lo crea quando salvi. Il file deve contenere queste righe:
[Socket]
ListenStream=
ListenStream=192.168.1.1:443
FreeBind=yes
Nella terza riga metti l’indirizzo IP del tuo Pi sulla rete locale al posto di 192.168.1.1, e 9090 al posto di 443, così la porta resta quella usata finora. La seconda riga, ListenStream= senza valore, va lasciata così: svuota l’elenco degli indirizzi di ascolto e disattiva la porta 9090 predefinita dell’unità originale. Quando si indica un IP specifico, la guida raccomanda vivamente FreeBind=yes. Salva, chiudi l’editor e ricarica la configurazione di systemd:
sudo systemctl daemon-reload
Poi riavvia il socket:
sudo systemctl restart cockpit.socket
Dal PC ricarica https://<indirizzo-IP-del-Pi>:9090: se compare la schermata di accesso, l’indirizzo è giusto. Se usi firewalld o SELinux, la stessa guida spiega anche come autorizzare una porta diversa da 9090.
Tornare indietro: disattivare o rimuovere Cockpit
Se non vuoi più che il pannello sia raggiungibile dal browser dopo l’avvio, disabilita il socket:
sudo systemctl disable cockpit.socket
Per eliminarlo del tutto non basta rimuovere il pacchetto cockpit: lascia installati i componenti del pannello, a cominciare da cockpit-ws. Usa invece sudo apt purge cockpit cockpit-ws cockpit-bridge cockpit-system cockpit-networkmanager cockpit-packagekit cockpit-storaged, che cancella anche i file di configurazione, e controlla l’elenco proposto da APT prima di confermare. Poi cancella il file /etc/systemd/system/cockpit.socket.d/listen.conf e fai rileggere la configurazione a systemd:
sudo systemctl daemon-reload
Il file /etc/apt/sources.list.d/backports.list, creato durante l’installazione, resta sul sistema: APT continua a usare il repository backports finché non lo togli.
Se qualcosa va storto
full-upgradechiede più spazio di quello libero: controlla lo spazio disponibile e liberane cancellando consudo apt cleani vecchi pacchetti scaricati, che APT conserva in/var/cache/apt/archives.get_throttledsegnala sottotensione: controlla alimentatore e cavo e sostituiscili con modelli di qualità adeguata, perché un’alimentazione scadente può corrompere i dati sul supporto di archiviazione.pmic_read_adcmostra tutti i canali invece di quello richiesto: il nome del canale non è stato riconosciuto. Il comando non dà errore: controlla di aver scritto esattamenteEXT5V_V.- I comandi di Cockpit per Debian non funzionano: richiedono una shell compatibile POSIX come bash. Se usi fish o simili, apri bash con
bash -ie riparti dal comando che carica/etc/os-release.
Documentazione di riferimento
Pagine consultate il 9 novembre 2026:
- Documentazione Raspberry Pi — Raspberry Pi OS (aggiornamenti, gestione dei pacchetti, vcgencmd)
- Documentazione Raspberry Pi — Raspberry Pi computer hardware (gestione termica, misura della temperatura, avvisi di alimentazione)
- Cockpit Project — Running Cockpit (installazione su Debian)
- Cockpit Guide — Cockpit Startup
- Cockpit Guide — TCP Port and Address
- Cockpit Project


