🛠 Surveillance thermique et fréquence CPU
Objectifs
Instrumenter l'ODROID-C4 pour le service 24/7 : lire les zones thermiques du noyau mainline, observer les paliers OPP réels du S905X3 (le tableau SM1 s'arrête à 1,908 GHz, pas 2,0 GHz marketing), régler le governor, et vérifier la fréquence réellement atteinte par votre image — certaines limitent la carte à 1,5 GHz par défaut. Consommation de référence : ≈ 1,8 W au repos, ≈ 3,64 W en stress CPU avec le dissipateur passif fourni.
Matériel
- ODROID-C4 avec dissipateur passif d'origine (40×32×10 mm) obligatoire en charge
- Boîtier fermé : prévoir un flux d'air (le seuil de throttling officiel n'est pas documenté)
- Armbian current ;
sudo apt install -y linux-cpupower stress-ng - Rail VDDCPU : régulateur PWM MP8756GD, 0,721–1,022 V — ne jamais forcer un OPP au-delà sans adapter le régulateur
Code complet
#!/usr/bin/env bash
# suivi_c4.sh : temperature + fréquence, echantillon / 2 s
sudo apt install -y linux-cpupower stress-ng
list { for z in /sys/class/thermal/thermal_zone*/temp; do
printf '%s %d °C\n' "$(dirname $z | xargs basename)" \
$(( $(cat $z) / 1000 )); done; }
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# -> 1000000 1200000 1404000 1500000 1608000 1704000 1800000 1908000
sudo cpupower frequency-set -g performance
stress-ng --cpu 4 --timeout 120s &
for i in $(seq 1 30); do
list | tr '\n' ' '
echo "| $(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq) Hz"
sleep 2
done
wait
cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state # temps par palier
Vérification attendue
Pendant le stress de 120 s, la fréquence courante grimpe vers le palier supérieur disponible (1,908 GHz sur image mainline complète, 1,5 GHz si l'image est bridée — le fichier time_in_state le prouve). La température monte puis se stabilise avec le dissipateur ; aucun arrêt ni reset. Au repos, scaling_cur_freq retombe vers 1,0 GHz avec le governor powersave, en cohérence avec la mesure d'enveloppe à ≈ 1,8 W.
Erreurs fréquentes
- Ajouter un OPP « 2,0 GHz » copié d'Internet : les OPP mainline s'arrêtent à 1,908 GHz @ 950 mV ; au-delà sans lever la tension du régulateur, resets immédiats.
- Laisser le governor
performanceen été dans un boîtier fermé : pour un box silencieux,powersave(ouschedutil) suffit au quotidien. - Confondre les zones thermiques (SoC vs régulateur) : lister
thermal_zone*/typepour identifier chaque sonde. - Tester sans dissipateur : la carte chauffe vite en charge multi-cœurs ; le refroidissement passif est la conception d'origine.
- >
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash