🛠 Surveillance thermique et fréquence du RK3568B2

NanoPi R5S (FriendlyElec) · avance · Schéma : IMG-nanopi-r5s-avance-2-nanopir5s-surveillance-thermique.svg — NanoPi R5S dans son boîtier métal passif avec sondes : température thermal_zone, cpufreq des quatre Cortex-A55, courbe température/fréquence et seuils de throttling

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

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

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels