🛠 Surveiller la thermique big.LITTLE et piloter les fréquences CPU

Orange Pi 5 Plus (Rockchip RK3588) · avance · Schéma : IMG-orangepi-5-plus-avance-2-opi5p-surveillance-thermique.svg — Orange Pi 5 Plus avec jauge de température, cœurs Cortex-A76 et Cortex-A55 séparés, courbe de fréquence sous stress et ventilateur PWM 5 V

Objectifs

Surveiller la température et la fréquence des 8 cœurs big.LITTLE du RK3588 (4 Cortex-A76 jusqu'à 2,4 GHz + 4 Cortex-A55 jusqu'à 1,8 GHz), comprendre la politique thermique du device-tree mainline (ventilateur déclenché à 55 °C, plein régime à 65 °C, seuil package_thermal) et choisir un gouverneur de fréquence. La carte n'a pas de plage de température officielle publiée : le refroidissement actif (connecteur ventilateur 5 V PWM ou dissipateur) est attendu en charge soutenue.

Matériel

Code complet

# 1. Températures en continu (une ligne par zone thermique)
watch -n1 'paste <(cat /sys/class/thermal/thermal_zone*/type 2>/dev/null) \
                <(cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null)'

# 2. Fréquences par policy cpufreq (une policy par cluster big.LITTLE)
for p in /sys/devices/system/cpu/cpufreq/policy*; do
  echo "$(basename $p) : $(cat $p/scaling_cur_freq) Hz  (max $(cat $p/cpuinfo_max_freq))"
done

# 3. Gouverneurs : performance en bench, powersched/ondemand au quotidien
sudo apt install -y linux-cpupower
sudo cpupower frequency-set -g performance
cat /sys/devices/system/cpu/cpufreq/policy*/scaling_governor

# 4. Stress 8 cœurs pendant 60 s et observation du throttling
sudo apt install -y stress-ng
stress-ng --cpu 8 --timeout 60s &
for i in $(seq 1 12); do
  paste <(cat /sys/class/thermal/thermal_zone*/temp) \
        <(cat /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq)
  sleep 5
done

# 5. Seuils thermiques déclarés par le device-tree
sudo apt install -y lm-sensors && sensors
paste <(cat /sys/class/thermal/thermal_zone*/type) \
      <(cat /sys/class/thermal/thermal_zone*/trip_type 2>/dev/null)

Vérification attendue

Au repos : 30–50 °C. Sous stress-ng, les fréquences montent (jusqu'à 2 400 000 kHz sur le cluster A76, 1 800 000 kHz sur le cluster A55) puis la température grimpe vers les paliers 55/65 °C où le ventilateur embarqué accélère ; en cas de saturation, scaling_cur_freq retombe sous le maximum (throttling visible dans la boucle).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels