El ODROID-XU4 soporta 3 niveles de refrigeración para el ajustar el control térmico: 0, 1, 2. El nivel 0 es el nivel más bajo para el control térmico y hace girar al ventilado a la velocidad más baja. El nivel 2 es el nivel más alto y hace girar el ventilador a la máxima velocidad, tal y como se muestra en la siguiente tabla:
Esta tabla muestra los valores por defecto de cómo se comporta el ventilador. Cuando la temperatura alcance los 60 °C, el valor de giro objetivo cambiará al nivel 1 y el ventilador comenzará a funcionar a un valor de 120 PWM (0 ~ 255). La misma condición se cumple cuando el valor de giro objetivo pasa al nivel 3, el ventilador funciona a 240 PWM cuando la temperatura alcanza los 80 ° C. Puedes ajustar los valores objetivos y la velocidad de tu ventilador para que sean los que quieras. Incluso puede configurar la velocidad del ventilador para que ésta sea constante.
Modificar los valores de giro
Puede verificar los valores de giro actuales del siguiente modo:
$ cat /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/trip_point_{0,1,2}_temp # results 60000 70000 80000 60000 70000 80000 60000 70000 80000 60000 70000 80000Sí, son otros valores de giro llamados 3, 4, 5. Pero puedes ignorarlos ya que no los usamos. Lo mismo con thermal_zone4. Como podemos ver, cada valor objetivo en cada zona térmica tiene el mismo valor 60000, 70000, 80000. Eso significa que en cada valor objetivo se activa a 60 ° C, 70 ° C, 80 ° C. Cada valor de giro es editable escribiendo un valor personalizado para cada archivo de valor objetivo. Por ejemplo, si desea configurar el valor objetivo 1 para que se active a los 30 ° C, puedes escribir un valor para éste.
$ echo 30000 | sudo tee /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/trip_point_0_temp $ cat /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/trip_point_0_temp # results 30000 30000 30000 30000A continuación, el ventilador empezará a girar a 30 °C. Si deseas hacerlo automáticamente, tendrás que escribir algo de código en el archivo /etc/rc.local. Copia y pega el siguiente código:
# Target temperature: 30°C, 50°C, 70°C TRIP_POINT_0=30000 TRIP_POINT_1=50000 TRIP_POINT_2=70000 echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_0_temp echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_0_temp echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_0_temp echo $TRIP_POINT_0 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_0_temp echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_1_temp echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_1_temp echo $TRIP_POINT_1 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_1_temp echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone0/trip_point_2_temp echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone1/trip_point_2_temp echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone2/trip_point_2_temp echo $TRIP_POINT_2 > /sys/devices/virtual/thermal/thermal_zone3/trip_point_2_tempReinicia y comprueba que los cambios se hayan aplicado.
Modificar la velocidad del ventilador
Puedes comprobar la escala de la velocidad actual del ventilador con el siguiente comando:
$ cat /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed # results 0 120 180 240Puedes ajustar estos valores escribiendo un valor fijo en el archivo. Si quieres que tu ventilador sea más agresivo, puede usar el siguiente comando:
$ echo "0 204 220 240" | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speed # results 0 204 220 240Esto hace que un ventilador gire al 80% (204 == 80 * 255 * 0.01) cuando la temperatura alcance el valor objetivo 0. Cuando la velocidad del ventilador se ajuste nuevamente, aparecerá un mensaje del kernel, puedes averiguarlo usando el comando dmesg:
$ dmesg # results ... [ 1998.019631] hwmon hwmon0: fan_speeds : set_fan_speed [0 204 220 240]Si deseas hacerlo automáticamente, copia y pega las siguientes líneas en el archivo /etc/rc.local:
# Target fan speed (PWM): 0, 204, 220, 240 echo "0 204 220 240" > /sys/devices/platform/pwm-fan/hwmon/hwmon0/fan_speedReinicie y comprueba si los cambios se han aplicado.
Emular la temperatura
No tienes por qué poner al límite tu ODROID para probar la nueva configuración. La configuración del ventilador se puede verificar con estos archivos.
$ ls -l /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/emul_temp # results --w------- 1 root root 4096 Apr 11 01:55 /sys/devices/virtual/thermal/thermal_zone0/emul_temp --w------- 1 root root 4096 Apr 11 02:05 /sys/devices/virtual/thermal/thermal_zone1/emul_temp --w------- 1 root root 4096 Apr 11 02:05 /sys/devices/virtual/thermal/thermal_zone2/emul_temp --w------- 1 root root 4096 Apr 11 02:05 /sys/devices/virtual/thermal/thermal_zone3/emul_tempEstos archivos modificables nos permiten simular cualquier valor de temperatura para fingir la temperatura real de la placa y finalmente hacer que el ventilador responda según la configuración. Si quiere configurarla a 85 °C, simplemente escríbelo.
$ echo 85000 | sudo tee /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/emul_temp # results 85000Verifica si los cambios han tenido efecto:
$ cat /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/temp # results 85000 85000 85000 85000Si quieres volver a la normalidad, escribe 0:
$ echo 0 | sudo tee /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/emul_temp # results 0 $ cat /sys/devices/virtual/thermal/thermal_zone{0,1,2,3}/temp # results 30000 30000 30000 29000Esto es muy útil para que compruebes la nueva velocidad del ventilador y la configuración del valor objetivo que acaba de fijar.
Modo totalmente manual de controlar la velocidad del ventilador
Este es el método más sistemático para ajustar la velocidad del ventilador de forma manual:
# Set fan to manual mode $ echo 0 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic # Set speed to 100% $ echo 255 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1El ventilador ignora los archivos con las escalas (valores objetivos y velocidad del ventilador) y se ejecuta constantemente a la misma velocidad, también puedes hacerlo automáticamente. Edita el archivo /etc/rc.local y reinicia para comprobar si se han aplicado los cambios. El siguiente ejemplo hace que el ventilador siempre se ejecute a máxima velocidad:
# Fix fan speed echo 0 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/automatic echo 255 | sudo tee /sys/devices/platform/pwm-fan/hwmon/hwmon0/pwm1Además, puedes escribir una aplicación usando el ventilador.
Ejemplos de scripts para controlar el ventilador
Hay algunos ejemplos de script muy buenos que deberías consultar. https://forum.odroid.com/viewtopic.php?f=77&t=30743 https://forum.odroid.com/viewtopic.php?f=146&t=30745
Referencias
https://forum.odroid.com/viewtopic.php?f=52&t=16308 https://forum.odroid.com/viewtopic.php?f=99&t=30675
El texto original lo puedes encontrar en la página wiki de ODROID y así poder controlar manualmente el ventilador del ODROID-XU4, https://wiki.odroid.com/odroid-xu4/application_note/manually_control_the_fan#fully_manual_way_to_control_the_fan_speed.
Be the first to comment