Gracias al usuario @M_Dozo que nos ha escrito y facilitado la guía y a @Dango00 que nos ha indicado el fichero para forzar la velocidad de ventilador de los Unifi cloud Gateway, indico a continuación cómo configurar el equipo para que, en caso de reinicio, se reconfigure el ventilador, ya que, en caso de reinicio, este regresa a su valor por defecto (0) y por tanto se desactiva.
Para esto vamos a usar la carpeta “data” que a priori es persistente, no obstante, es recomendable que en caso de actualización de firmware se compruebe que dicho script y crontab no se han perdido.
El Script verifica si el valor que tiene el fichero tiene el valor deseado, y si no lo tiene, lo modifica. Mientras el valor sea el correcto, no hará modificaciones.
1 – Crear carpeta /data/fan_controller/
mkdir /data/fan_controller
El Script verifica si el valor que tiene el fichero tiene el valor deseado, y si no lo tiene, lo modifica. Mientras el valor sea el correcto, no hará modificaciones.
2 – Copiar el script a dicha carpeta (se puede meter por SFTP o crearlo con “vi”)
3 – Añadir 2 entradas en el crontab. Una para ejecutarse justo tras reiniciar, y otra que comprueba el valor cada 15 minutos y si este ha cambiado, lo modifica:
Crontab -e
Añadimos:
@reboot /data/fan_controller/check_fan.sh */15 * * * * /data/fan_controller/check_fan.sh
Se tiene que quedar así
El script está configurado con una velocidad del ventilador de 164 (0-255), por lo que está configurado alrededor del 65% de su velocidad máxima. Este valor se puede cambiar en el script a gusto de cada uno. No obstante, estando configurado a la mitad (128) ya mantiene la temperatura de CPU en valores aceptables.
El script genera un log de salida donde se pueden ver los cambios que realiza:
Este es el contenido del script:
#!/bin/bash # Configuración LOGFILE="/data/fan_controller/hwmon_check.log" # Log en /data/fan_controller EXPECTED_VALUE=164 PWM_FILE="/sys/class/hwmon/hwmon0/pwm1" # Obtener el valor actual CURRENT_VALUE=$(cat $PWM_FILE 2>/dev/null) # Registrar en el log (necesario sudo para escribir en /data/fan_controller) echo "$(date) - Valor actual: $CURRENT_VALUE" | sudo tee -a $LOGFILE > /dev/null # Comparar el valor y corregir si es necesario if [[ "$CURRENT_VALUE" != "$EXPECTED_VALUE" ]]; then echo $EXPECTED_VALUE | sudo tee $PWM_FILE > /dev/null echo "$(date) - Valor corregido a $EXPECTED_VALUE" | sudo tee -a $LOGFILE > /dev/null fi