🛠 Surveiller température et fréquence CPU

Orange Pi PC (Allwinner H3) · avance · Schéma : IMG-orangepi-pc-avance-2-opipc-surveillance-thermique.svg — Sonde thermique sunxi THS et régulateur SY8106A reliés au quad Cortex-A7 du H3, courbe température/fréquence sous stress avec palier de throttling, dissipateur dessiné sur la puce.

Objetivos

El H3 es conocido por calentarse: sin refrigeración, una carga sostenida en los cuatro Cortex-A7 provoca throttling. Este tutorial implementa una supervisión completa bajo Armbian/mainline: lectura del sensor térmico sunxi THS, observación del DVFS (frecuencias y tensiones controladas mediante el regulador SY8106A), y prueba de carga controlada para encontrar el punto de estrangulamiento de su placa — con o sin disipador.

Material

Código completo

  1. Script de control sanitario (health.sh):
#!/usr/bin/env bash
# health.sh — température, governor, fréquence max (Orange Pi PC / H3)
echo "CPU temp: $(($(cat /sys/class/thermal/thermal_zone0/temp) / 1000)) °C"   # sunxi THS
echo "Governor: $(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor)"
echo "Fréq act: $(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq) kHz"
echo "Fréq max: $(cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq) kHz"
# Le quad A7 est nominal à 1.2 GHz sur les images Armbian :
sudo ethtool end0 2>/dev/null | grep Speed || true   # lien réseau à 100 Mbit/s attendu
  1. Prueba de carga con muestreo a 1 Hz durante 2 minutos:
sudo apt install -y stress-ng
stress-ng --cpu 4 --timeout 120 &
while sleep 1; do
  printf '%s  temp=%s°C  freq=%sMHz\n' "$(date +%T)" \
    "$(($(cat /sys/class/thermal/thermal_zone0/temp)/1000))" \
    "$(($(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq)/1000))"
done
wait
# Vue temps réel fournie par Armbian :
armbianmonitor -m
  1. Comparar sin disipador vs con disipador: relanzar la prueba, guardar las salidas en un archivo, trazar la curva.

Verificación esperada

En reposo: aproximadamente 35-50 °C. Bajo estrés: la frecuencia sube a ~1200 MHz, luego la curva de temperatura se estabiliza y la frecuencia cae por escalones — esto es el throttling. Con disipador, el escalón aparece más tarde o desaparece. Los umbrales exactos de throttling no están documentados por una fuente fiable.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales