🛠 Surveillance thermique et fréquence du RK3568B2
Objectifs
Mettre en place une surveillance continue de la température et de la fréquence du RK3568B2 : lire les zones thermiques et les politiques cpufreq, déclencher une alerte par script, et comprendre le comportement thermique de la carte (FriendlyElec n'a jamais vu le CPU dépasser 50 °C en boîtier métal passif ; plage de fonctionnement 0-70 °C). Vous écrirez un démon systemd qui journalise périodiquement et alerte au-delà d'un seuil, utile avant d'installer la carte dans un coffret réseau sans flux d'air.
Matériel
- NanoPi R5S sous Debian/Ubuntu/Armbian, boîtier métal de préférence (le dissipateur passif fait partie du boîtier)
- Optionnel : ventilateur 5 V sur le connecteur ZH1.5 dédié
- Paquets :
apt install lm-sensors(capteurs) ;stress-ngpour la charge de test
Code complet
#!/bin/bash
# surveille_r5s.sh — journalise température + fréquences, alerte > 65 °C
# (seuil bas car la spec max est 70 °C ambiants 0-70)
LOG=/var/log/r5s-thermal.csv
THRESH=65000 # milli-°C
[ -f "$LOG" ] || echo "date,temp_mC,cpu0_kHz,cpu3_kHz" > "$LOG"
while :; do
T=$(cat /sys/class/thermal/thermal_zone*/temp 2>/dev/null | head -1)
T=${T:-0}
F0=$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq)
F3=$(cat /sys/devices/system/cpu/cpufreq/policy4/scaling_cur_freq 2>/dev/null || echo 0)
echo "$(date -Is),$T,$F0,$F3" >> "$LOG"
if [ "$T" -gt "$THRESH" ]; then
logger -t r5s-thermal "ALERTE température ${T}m°C (seuil ${THRESH}m°C)"
fi
sleep 30
done
# Test de charge : stress-ng --cpu 4 --timeout 300
# Ordonnanceur/gouverneur : cat /sys/.../policy0/scaling_governor (schedutil)
# Installer en service :
# cp surveille_r5s.sh /usr/local/bin/ puis unit systemd Type=simple
Vérification attendue
Après stress-ng --cpu 4 --timeout 300, le CSV montre la montée en température (restant sous ~50-55 °C en boîtier métal) et les fréquences proches de 2000 MHz tant que le throttling n'intervient pas. cat /sys/class/thermal/thermal_zone*/type identifie la zone cpu. Le service systemd démarre au boot (systemctl status r5s-thermal). Si la température s'approche de 65 °C, vérifier le boîtier (le métal sert de dissipateur), l'emplacement confiné, ou ajouter le ventilo sur le connecteur ZH1.5.
Erreurs fréquentes
- Se tromper d'unité : temp est en milli-°C (42000 = 42 °C), scaling_cur_freq en kHz.
- Comparer des chaînes avec
-gtsans virer les sauts de ligne : utiliser$(cat ...)propre outr -d. - policy0/policy4 : sur RK3568 les quatre A55 sont en général sous une seule politique ; tester l'existence des chemins avant de les lire.
- Croire lm-sensors infaillible : sur Rockchip, la lecture directe /sys/class/thermal est plus fiable que
sensorsselon les kernels. - Surveiller sans jamais tester en charge : un boîtier mal ventilé ne se révèle qu'avec stress-ng pendant 5-10 minutes.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash