🛠 Surveillance thermique big.LITTLE et ventilateur
Objectifs
Surveiller et piloter la thermique de l'Exynos5422 : sous mainline, le ventilateur PWM (niveaux 0/130/170/230) monte par paliers à 50/60/70 °C, le cluster A15 est écrêté passivement à 70 °C (−2 crans DVFS, ≈1,8/1,2 GHz) puis à 85 °C (≈600 MHz), critique à 120 °C, avec une zone thermique séparée pour le Mali-T628. À 2,0 GHz le refroidissement actif est indispensable.
Matériel
- ODROID-XU4 avec son dissipateur + ventilateur d'origine (le XU4Q passif perd ~16 % de perf sous sysbench à 2,0 GHz)
sudo apt install stress-ngpour la montée en charge
Code complet
#!/usr/bin/env bash
# xu4-thermique.sh — surveillance big.LITTLE + test de chauffe
set -euo pipefail
# 1) Temperatures : un thermal_zone par capteur TMU (cpu0..cpu3 + gpu)
paste <(cat /sys/class/thermal/thermal_zone*/type) \
<(awk '{printf "%.1f C\n", $1/1000}' /sys/class/thermal/thermal_zone*/temp)
# 2) Fréquences courantes par cluster (A15 <= 2.0 GHz, A7 <= 1.4 GHz)
grep . /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq
# 3) Politique du ventilateur : pwm-fan, cooling-levels 0/130/170/230
cat /sys/class/thermal/thermal_zone0/trip_point_*_temp 2>/dev/null || true
# 4) Test de chauffe 60 s puis observation du decrochage A15
stress-ng --cpu 8 --timeout 60s &
for i in $(seq 1 12); do sleep 5
echo "--- T+$((i*5))s"; awk '{printf "%.1f C ", $1/1000}' \
/sys/class/thermal/thermal_zone*/temp; echo
grep . /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq
done
Vérification attendue
Au bout de 20-40 s de charge, les fréquences du cluster A15 chutent sous 2,0 GHz (paliers 1,8 → 1,2 GHz) pendant que le ventilateur monte en régime ; au relâchement, tout remonte à 2000000 kHz. Sans ventilateur propre, l'écrêtage permanent confirme la surchauffe.
Erreurs fréquentes
- Faire tourner la carte sans ventilateur fonctionnel à 2,0 GHz : throttling permanent, le silence total exige de brider à 1,2 GHz.
- Écrire dans /sys/class/pwm/pwm0 : le canal est revendiqué par pwm-fan, passer par le governor thermique.
- Confondre les zones cpu et gpu : le Mali a sa propre zone thermique avec le même barème.
- Alimentation 5 V faible qui fait chuter la fréquence indépendamment de la température.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash