publish: Relever la température du SoC d'un Raspberry Pi
This commit is contained in:
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"title": "Relever la température du SoC d'un Raspberry Pi",
|
||||
"_updated_at": "2026-05-15 19:02:23",
|
||||
"slug": "relever-la-temperature-du-soc-d-un-raspberry-pi",
|
||||
"published": true,
|
||||
"published_at": "2020-04-17 20:51",
|
||||
"category": "Électronique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"Raspberry Pi",
|
||||
"devOps"
|
||||
]
|
||||
},
|
||||
"seo_title": "",
|
||||
"seo_description": ""
|
||||
}
|
||||
@@ -1,100 +0,0 @@
|
||||
# Relever la température du SoC d'un Raspberry Pi
|
||||
|
||||
Surveiller la température de votre Raspberry Pi permet d'anticiper les ralentissements et d'éviter les dommages matériels. **À partir de 80 °C, le Pi réduit automatiquement sa fréquence** (throttling) pour se protéger ; au-delà de 85 °C, le throttling devient plus agressif. Les composants ne risquent pas de griller dans des conditions normales — la protection thermique est intégrée — mais une température qui plafonne haut indique qu'un meilleur refroidissement s'impose.
|
||||
|
||||
À noter : sur un Raspberry Pi, le CPU et le GPU partagent le même SoC (Broadcom). Les deux commandes ci-dessous renvoient donc des valeurs quasi identiques, issues de capteurs très proches. On parle plus justement de « température du SoC ».
|
||||
|
||||
Tests réalisés sur un Raspberry Pi 4 sous Raspberry Pi OS Bookworm.
|
||||
|
||||
## Fondamentaux
|
||||
|
||||
La température rapportée par le firmware VideoCore est accessible via `vcgencmd` :
|
||||
|
||||
```
|
||||
$ vcgencmd measure_temp
|
||||
temp=43.0'C
|
||||
```
|
||||
|
||||
La température exposée par le kernel se trouve dans `/sys/class/thermal/thermal_zone0/temp`, en millièmes de **°C** :
|
||||
|
||||
```
|
||||
$ cat /sys/class/thermal/thermal_zone0/temp
|
||||
44790
|
||||
```
|
||||
|
||||
Pour l'afficher en **°C**, on divise par 1000 :
|
||||
|
||||
```
|
||||
$ awk '{printf("temp=%.1f°C\n", $1/1e3)}' /sys/class/thermal/thermal_zone0/temp
|
||||
temp=44.7°C
|
||||
```
|
||||
|
||||
## Script
|
||||
|
||||
Le script ci-dessous affiche les deux mesures côte à côte, avec un formatage homogène.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Script : piSensorsTemp
|
||||
# Objet : Afficher la température du SoC d'un Raspberry Pi (2/3/4/5)
|
||||
# Auteur : Cédric Abonnel — https://www.abonnel.fr — licence CC BY
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
echo "$(date) @ $(hostname)"
|
||||
echo "-------------------------------------------"
|
||||
|
||||
# Température rapportée par le firmware (VideoCore)
|
||||
gpu_temp=$(vcgencmd measure_temp | sed "s/'C/°C/")
|
||||
echo "Firmware (VideoCore) => $gpu_temp"
|
||||
|
||||
# Température rapportée par le kernel (zone thermique cpu-thermal)
|
||||
for zone in /sys/class/thermal/thermal_zone*; do
|
||||
if [[ "$(cat "$zone/type" 2>/dev/null)" == "cpu-thermal" ]]; then
|
||||
awk '{printf("Kernel (cpu-thermal) => temp=%.1f°C\n", $1/1e3)}' "$zone/temp"
|
||||
break
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
Trois améliorations par rapport à la version originale :
|
||||
|
||||
- `vcgencmd` est appelé sans chemin absolu — `/opt/vc/bin/` n'existe plus depuis Raspberry Pi OS Bullseye et a totalement disparu sur le Pi 5.
|
||||
- La zone thermique est détectée dynamiquement plutôt que codée en dur sur `thermal_zone0`, ce qui évite les surprises selon les configurations kernel.
|
||||
- Le symbole degré est harmonisé (`°C` partout) via un simple `sed` sur la sortie de `vcgencmd`.
|
||||
|
||||
Rendre le script exécutable :
|
||||
|
||||
```
|
||||
$ chmod +x piSensorsTemp
|
||||
$ ./piSensorsTemp
|
||||
```
|
||||
|
||||
Rafraîchir l'affichage toutes les secondes (l'option `-d` surligne les valeurs qui changent) :
|
||||
|
||||
```
|
||||
$ watch -n 1 -d ./piSensorsTemp
|
||||
```
|
||||
|
||||
Exemple d'exécution :
|
||||
|
||||
```
|
||||
$ ./piSensorsTemp
|
||||
vendredi 15 mai 2026, 11:25:31 (UTC+0200) @ rpitst
|
||||
-------------------------------------------
|
||||
Firmware (VideoCore) => temp=43.0°C
|
||||
Kernel (cpu-thermal) => temp=43.3°C
|
||||
```
|
||||
|
||||
## Si la température est trop haute
|
||||
|
||||
Quelques pistes si vous observez du throttling régulier :
|
||||
|
||||
- **Dissipateurs passifs** : utiles, mais insuffisants seuls sur un Pi 4 sous charge soutenue.
|
||||
- **Ventilateur** : la solution la plus efficace ; le boîtier officiel du Pi 4 en intègre un, piloté par le kernel.
|
||||
- **Boîtier dissipateur** (type Argon ONE, FLIRC) : tout le boîtier sert de radiateur.
|
||||
- **Vérifier la ventilation de la pièce** et éviter les boîtiers fermés sans circulation d'air.
|
||||
|
||||
## Pour aller plus loin
|
||||
|
||||
- [How to find out Raspberry Pi GPU and ARM CPU temperature on Linux](https://www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/) — l'article qui m'a servi de point de départ.
|
||||
- [lm-sensors does not detect integrated temperature sensor on Raspberry Pi](https://github.com/lm-sensors/lm-sensors/issues/30) — pourquoi `sensors` ne suffit pas sur Pi.
|
||||
@@ -1,67 +1,100 @@
|
||||
# Relever la température dans la GPU et le CPU d'un Raspberry Pi
|
||||
# Relever la température du SoC d'un Raspberry Pi
|
||||
|
||||
Il est judicieux de connaître la température du processeur et de la puce graphique afin de ne pas endommager votre Raspberry Pi. **La température maximale est de 80 °C**, au delà de 93 °C les composants peuvent subir des dommages irréversibles. Le pire ? Griller votre carte !
|
||||
Surveiller la température de votre Raspberry Pi permet d'anticiper les ralentissements et d'éviter les dommages matériels. **À partir de 80 °C, le Pi réduit automatiquement sa fréquence** (throttling) pour se protéger ; au-delà de 85 °C, le throttling devient plus agressif. Les composants ne risquent pas de griller dans des conditions normales — la protection thermique est intégrée — mais une température qui plafonne haut indique qu'un meilleur refroidissement s'impose.
|
||||
|
||||
Voici mes tests réalisés avec un Raspberry Pi 4.
|
||||
À noter : sur un Raspberry Pi, le CPU et le GPU partagent le même SoC (Broadcom). Les deux commandes ci-dessous renvoient donc des valeurs quasi identiques, issues de capteurs très proches. On parle plus justement de « température du SoC ».
|
||||
|
||||
Tests réalisés sur un Raspberry Pi 4 sous Raspberry Pi OS Bookworm.
|
||||
|
||||
## Fondamentaux
|
||||
La température de la GPU est accessible depuis la commande `vcgencmd` et le paramètre `measure_temp` :
|
||||
|
||||
La température rapportée par le firmware VideoCore est accessible via `vcgencmd` :
|
||||
|
||||
```
|
||||
$ vcgencmd measure_temp
|
||||
temp=43.0'C
|
||||
```
|
||||
|
||||
La température du processeur est stocké dans le fichier `/sys/class/thermal/thermal_zone0/temp`, exprimée en millième de **°C** :
|
||||
La température exposée par le kernel se trouve dans `/sys/class/thermal/thermal_zone0/temp`, en millièmes de **°C** :
|
||||
|
||||
```
|
||||
$ cat /sys/class/thermal/thermal_zone0/temp
|
||||
44790
|
||||
```
|
||||
|
||||
Pour afficher la valeur en **°C**, il faut effectuer une division par 1000 de la valeur contenue dans `/sys/class/thermal/thermal_zone0/temp` :
|
||||
Pour l'afficher en **°C**, on divise par 1000 :
|
||||
|
||||
```
|
||||
$ awk '{printf("\ntemp=%.1f°C\n\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp
|
||||
temp=44.7'C
|
||||
$ awk '{printf("temp=%.1f°C\n", $1/1e3)}' /sys/class/thermal/thermal_zone0/temp
|
||||
temp=44.7°C
|
||||
```
|
||||
|
||||
## Script évolué
|
||||
Le script ci-dessous affiche la température de la GPU et du CPU.
|
||||
```BASH
|
||||
## Script
|
||||
|
||||
Le script ci-dessous affiche les deux mesures côte à côte, avec un formatage homogène.
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Script: piSensorsTemp
|
||||
# Purpose: Display the ARM CPU and GPU temperature of Raspberry Pi 2/3/4
|
||||
# Author: Cédric Abonnel <https:*www.abonnel.fr/start?q=piSensorsTemp&do=search> under CC BY
|
||||
# -------------------------------------------------------
|
||||
# Script : piSensorsTemp
|
||||
# Objet : Afficher la température du SoC d'un Raspberry Pi (2/3/4/5)
|
||||
# Auteur : Cédric Abonnel — https://www.abonnel.fr — licence CC BY
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
echo "$(date) @ $(hostname)"
|
||||
echo "-------------------------------------------"
|
||||
echo "GPU => $(/opt/vc/bin/vcgencmd measure_temp)"
|
||||
echo "CPU => $(awk '{printf("temp=%.1f°C\n\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp)"
|
||||
|
||||
# Température rapportée par le firmware (VideoCore)
|
||||
gpu_temp=$(vcgencmd measure_temp | sed "s/'C/°C/")
|
||||
echo "Firmware (VideoCore) => $gpu_temp"
|
||||
|
||||
# Température rapportée par le kernel (zone thermique cpu-thermal)
|
||||
for zone in /sys/class/thermal/thermal_zone*; do
|
||||
if [[ "$(cat "$zone/type" 2>/dev/null)" == "cpu-thermal" ]]; then
|
||||
awk '{printf("Kernel (cpu-thermal) => temp=%.1f°C\n", $1/1e3)}' "$zone/temp"
|
||||
break
|
||||
fi
|
||||
done
|
||||
```
|
||||
|
||||
Pour rendre exécutable le code :
|
||||
Trois améliorations par rapport à la version originale :
|
||||
|
||||
- `vcgencmd` est appelé sans chemin absolu — `/opt/vc/bin/` n'existe plus depuis Raspberry Pi OS Bullseye et a totalement disparu sur le Pi 5.
|
||||
- La zone thermique est détectée dynamiquement plutôt que codée en dur sur `thermal_zone0`, ce qui évite les surprises selon les configurations kernel.
|
||||
- Le symbole degré est harmonisé (`°C` partout) via un simple `sed` sur la sortie de `vcgencmd`.
|
||||
|
||||
Rendre le script exécutable :
|
||||
|
||||
```
|
||||
$ sudo chmod +x piSensorsTemp
|
||||
$ chmod +x piSensorsTemp
|
||||
$ ./piSensorsTemp
|
||||
```
|
||||
|
||||
Pour afficher toutes les secondes, les informations rafraîchies :
|
||||
Rafraîchir l'affichage toutes les secondes (l'option `-d` surligne les valeurs qui changent) :
|
||||
|
||||
```
|
||||
$ watch -n 1 -d ./piSensorsTemp
|
||||
```
|
||||
|
||||
Exemple d'execution :
|
||||
Exemple d'exécution :
|
||||
|
||||
```
|
||||
$ ./piSensorsTemp
|
||||
vendredi 17 janvier 2020, 11:25:31 (UTC+0100) @ rpitst
|
||||
---
|
||||
GPU => temp=43.0'C
|
||||
CPU => temp=43.3°C
|
||||
vendredi 15 mai 2026, 11:25:31 (UTC+0200) @ rpitst
|
||||
-------------------------------------------
|
||||
Firmware (VideoCore) => temp=43.0°C
|
||||
Kernel (cpu-thermal) => temp=43.3°C
|
||||
```
|
||||
|
||||
## Biblio
|
||||
[How to find out Raspberry Pi GPU and ARM CPU temperature on Linux](https:*www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/)
|
||||
## Si la température est trop haute
|
||||
|
||||
[lm-sensors does not detect integrated temperature sensor on Raspberry Pi](https://github.com/lm-sensors/lm-sensors/issues/30)
|
||||
Quelques pistes si vous observez du throttling régulier :
|
||||
|
||||
- **Dissipateurs passifs** : utiles, mais insuffisants seuls sur un Pi 4 sous charge soutenue.
|
||||
- **Ventilateur** : la solution la plus efficace ; le boîtier officiel du Pi 4 en intègre un, piloté par le kernel.
|
||||
- **Boîtier dissipateur** (type Argon ONE, FLIRC) : tout le boîtier sert de radiateur.
|
||||
- **Vérifier la ventilation de la pièce** et éviter les boîtiers fermés sans circulation d'air.
|
||||
|
||||
## Pour aller plus loin
|
||||
|
||||
- [How to find out Raspberry Pi GPU and ARM CPU temperature on Linux](https://www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/) — l'article qui m'a servi de point de départ.
|
||||
- [lm-sensors does not detect integrated temperature sensor on Raspberry Pi](https://github.com/lm-sensors/lm-sensors/issues/30) — pourquoi `sensors` ne suffit pas sur Pi.
|
||||
|
||||
@@ -1,18 +1,32 @@
|
||||
{
|
||||
"uuid": "96eaaeb7-e04f-472d-b4ed-37ffbdae945f",
|
||||
"slug": "relever-temperature-cpu-gpu",
|
||||
"title": "Relever la température dans la GPU et le CPU d'un Raspberry Pi",
|
||||
"slug": "relever-la-temperature-du-soc-d-un-raspberry-pi",
|
||||
"title": "Relever la température du SoC d'un Raspberry Pi",
|
||||
"author": "cedric@abonnel.fr",
|
||||
"published": true,
|
||||
"published_at": "2020-04-17 20:51:11",
|
||||
"featured": false,
|
||||
"published_at": "2020-04-17 20:51",
|
||||
"created_at": "2020-04-17 20:51:11",
|
||||
"updated_at": "2020-04-17 20:51:11",
|
||||
"revisions": [],
|
||||
"updated_at": "2026-05-15 19:02:24",
|
||||
"revisions": [
|
||||
{
|
||||
"n": 1,
|
||||
"date": "2026-05-15 19:02:24",
|
||||
"comment": "Titre modifié, tags modifiés, contenu modifié",
|
||||
"title": "Relever la température dans la GPU et le CPU d'un Raspberry Pi"
|
||||
}
|
||||
],
|
||||
"cover": "",
|
||||
"files_meta": [],
|
||||
"external_links": [],
|
||||
"seo_title": "",
|
||||
"seo_description": "",
|
||||
"og_image": "",
|
||||
"category": "Électronique"
|
||||
"category": "Électronique",
|
||||
"tags": {
|
||||
"tags": [
|
||||
"Raspberry Pi",
|
||||
"devOps"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
# Relever la température dans la GPU et le CPU d'un Raspberry Pi
|
||||
|
||||
Il est judicieux de connaître la température du processeur et de la puce graphique afin de ne pas endommager votre Raspberry Pi. **La température maximale est de 80 °C**, au delà de 93 °C les composants peuvent subir des dommages irréversibles. Le pire ? Griller votre carte !
|
||||
|
||||
Voici mes tests réalisés avec un Raspberry Pi 4.
|
||||
|
||||
## Fondamentaux
|
||||
La température de la GPU est accessible depuis la commande `vcgencmd` et le paramètre `measure_temp` :
|
||||
|
||||
```
|
||||
$ vcgencmd measure_temp
|
||||
temp=43.0'C
|
||||
```
|
||||
|
||||
La température du processeur est stocké dans le fichier `/sys/class/thermal/thermal_zone0/temp`, exprimée en millième de **°C** :
|
||||
|
||||
```
|
||||
$ cat /sys/class/thermal/thermal_zone0/temp
|
||||
44790
|
||||
```
|
||||
|
||||
Pour afficher la valeur en **°C**, il faut effectuer une division par 1000 de la valeur contenue dans `/sys/class/thermal/thermal_zone0/temp` :
|
||||
```
|
||||
$ awk '{printf("\ntemp=%.1f°C\n\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp
|
||||
temp=44.7'C
|
||||
```
|
||||
|
||||
## Script évolué
|
||||
Le script ci-dessous affiche la température de la GPU et du CPU.
|
||||
```BASH
|
||||
#!/bin/bash
|
||||
# Script: piSensorsTemp
|
||||
# Purpose: Display the ARM CPU and GPU temperature of Raspberry Pi 2/3/4
|
||||
# Author: Cédric Abonnel <https:*www.abonnel.fr/start?q=piSensorsTemp&do=search> under CC BY
|
||||
# -------------------------------------------------------
|
||||
echo "$(date) @ $(hostname)"
|
||||
echo "-------------------------------------------"
|
||||
echo "GPU => $(/opt/vc/bin/vcgencmd measure_temp)"
|
||||
echo "CPU => $(awk '{printf("temp=%.1f°C\n\n",$1/1e3)}' /sys/class/thermal/thermal_zone0/temp)"
|
||||
```
|
||||
|
||||
Pour rendre exécutable le code :
|
||||
|
||||
```
|
||||
$ sudo chmod +x piSensorsTemp
|
||||
$ ./piSensorsTemp
|
||||
```
|
||||
|
||||
Pour afficher toutes les secondes, les informations rafraîchies :
|
||||
|
||||
```
|
||||
$ watch -n 1 -d ./piSensorsTemp
|
||||
```
|
||||
|
||||
Exemple d'execution :
|
||||
```
|
||||
$ ./piSensorsTemp
|
||||
vendredi 17 janvier 2020, 11:25:31 (UTC+0100) @ rpitst
|
||||
---
|
||||
GPU => temp=43.0'C
|
||||
CPU => temp=43.3°C
|
||||
```
|
||||
|
||||
## Biblio
|
||||
[How to find out Raspberry Pi GPU and ARM CPU temperature on Linux](https:*www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/)
|
||||
|
||||
[lm-sensors does not detect integrated temperature sensor on Raspberry Pi](https://github.com/lm-sensors/lm-sensors/issues/30)
|
||||
Reference in New Issue
Block a user