🛠 Surveiller température et fréquence CPU, piloter le ventilateur PWM
Objetivos
Instrumentar la ROCK 3B (4× Cortex-A55 hasta 2,0 GHz, RK3568 en 22 nm): leer las temperaturas de las zonas térmicas, observar la frecuencia real bajo carga y comprender el conector de ventilador de 2 pines de 1,25 mm (PWM de 5 V). Referencias oficiales de temperatura: edición Community 0–60 °C, edición Industrial (RK3568J) −40–85 °C. > SIN VERIFICAR: Radxa no publica un consumo típico; mida el suyo en el enchufe.
Material
- Radxa ROCK 3B con Radxa OS, fuente de alimentación PD de 12 V / 2 A (una fuente de alimentación deficiente simula un estrangulamiento térmico)
- Disipador adhesivo y/o ventilador de 5 V en el conector de 2 pines de 1,25 mm
sudo apt install stress-ng bc
Código completo
# 1. Zones thermiques et températures (milli-°C)
paste <(for z in /sys/class/thermal/thermal_zone*/type; do cat $z; done) \
<(for z in /sys/class/thermal/thermal_zone*/temp; do echo "scale=1;$(cat $z)/1000"|bc; done)
# 2. Fréquence réelle des cœurs sous charge
(stress-ng --cpu 4 --timeout 60s &) ; sleep 5
while sleep 2; do grep -H . /sys/devices/system/cpu/cpufreq/policy*/scaling_cur_freq; done
# 3. Politiques et seuils thermiques
grep . /sys/class/thermal/thermal_zone*/policy 2>/dev/null
sudo dmesg | grep -i -e thermal -e throttle
# 4. Ventilateur 2 broches : sous Radxa OS, vérifier rsetup (fan/thermal) ou
# le contrôle PWM manuel du bus correspondant (pwmchip) — >
# l'exposition exacte du connecteur fan varie entre images constructeur.
ls /sys/class/pwm/
Verificación esperada
Bajo stress-ng --cpu 4, scaling_cur_freq sube hacia 2,0 GHz y luego se estabiliza; sin disipador, la frecuencia cae y dmesg puede mostrar mensajes de limitación. Con disipador/ventilador, la temperatura alcanza un techo más bajo y la frecuencia se mantiene durante más tiempo. Los valores brutos de temp están en miligrados (53000 = 53 °C).
Errores frecuentes
- Olvidar la división por 1000 en
/sys/class/thermal/thermal_zone*/tempy entrar en pánico ante «53000 °C». - Muestrear la frecuencia una sola vez: es un valor instantáneo, hay que hacer un bucle durante la carga.
- Culpar al sistema térmico cuando la fuente de alimentación es insuficiente: vuelva a probar con la fuente de alimentación PD recomendada de 12 V / 2 A.
- Invertir la polaridad del ventilador de 1,25 mm o extraer más corriente de la que puede suministrar el conector de 5 V.
- Superar el rango de la edición Community (máximo 60 °C ambientales) en un armario cerrado: este es el caso de uso de la edición Industrial de 85 °C.
Otros tutoriales para esta placa
- Faire clignoter une LED via le GPIO avec libgpiod
- Lire un bouton poussoir en Python avec python3-libgpiod
- Premier réseau : Ethernet double gigabit, Wi-Fi optionnel et SSH
- Installer et booter le système sur un SSD NVMe (M.2 M-Key)
- Interroger un capteur I2C sur le connecteur 40 broches
- Routeur / passerelle réseau double Gigabit avec OpenWrt et PoE
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash