¿Cómo controlar la velocidad del ventilador?

178

¿Cómo puedo controlar la velocidad del ventilador de la computadora?

En Windows hay un maravilloso programa llamado SpeedFan .

grizwako
fuente
1
Puse una solución cron simple para tarjetas ATI aquí askubuntu.com/a/875241/375427
Pavel Niedoba
1
En Linux, fancontrolse configura usando pwmconfig. Se usa watch sensorspara observar sensores bajo carga de CPU y GPU. Use esos valores en inactivo y a plena carga para establecer MINTEMPy MAXTEMP, respectivamente, con INTERVAL=1. Esto aumenta sus ventiladores en tiempo real a medida que aumenta la carga. Este es el enfriamiento más activo, proporcionando una línea de base para ajustes adicionales. Ejecute pwmconfiguna vez y luego edite /etc/fancontroldirectamente. Corre sudo service fancontrol restartdespués de cada ajuste.
Dominic Cerisano

Respuestas:

149

Nota antes de comenzar:

Esta funcionalidad depende tanto de su hardware como de su software. Si su hardware no admite controles de velocidad del ventilador o no los muestra al sistema operativo, es muy probable que no pueda usar esta solución. Si lo hace, pero el software (también conocido como kernel) no sabe cómo controlarlo, no tiene suerte.


  1. Instale los sensores lm y los paquetes de control de ventilador .
  2. Configurar sensores lm

    1. En terminal escriba sudo sensors-detecty responda SÍ a todas las preguntas SÍ / no.
      (Potencialmente, esto puede dañar su sistema o causar un bloqueo del sistema. Para muchos sistemas, es seguro. No hay garantía de que este proceso no dañará su sistema permanentemente, solo creo que la posibilidad de una falla crítica es realmente muy baja Siempre es una buena idea guardar todo su trabajo para eventuales bloqueos / congelamientos / reinicios antes de manejar la configuración del sistema. selectivo con sus YES-es todavía será suficiente)
    2. Al final de la detección de sensores, se mostrará una lista de módulos que deben cargarse. Escriba "yes" para que los sensores de detección inserten esos módulos en / etc / modules, o edite / etc / modules usted mismo.
    3. Ejecutar sudo service module-init-tools restart. Esto leerá los cambios que realizó /etc/modulesen el paso 3 e insertará los nuevos módulos en el núcleo.
      • Nota : Si está ejecutando Ubuntu 13.04 o superior, este comando del tercer paso debe reemplazarse por sudo service kmod start.
  3. Configurar fancontrol

    1. En tipo terminal sudo pwmconfig. Este script detendrá a cada ventilador durante 5 segundos para descubrir qué ventiladores pueden ser controlados por qué PWM maneja. Después de que el script recorra todos los ventiladores, puede configurar qué ventilador corresponde a qué temperatura.
    2. Deberá especificar qué sensores utilizar. Esto es un poco complicado. Si solo tiene un ventilador, asegúrese de usar un sensor de temperatura para su núcleo para basar la velocidad de control del ventilador.
    3. Ejecute las indicaciones y guarde los cambios en la ubicación predeterminada.
    4. Haga ajustes para ajustar /etc/fancontroly usar sudo service fancontrol restartpara aplicar sus cambios. (En mi caso, establezco el intervalo en 2 segundos).
  4. Configurar el servicio de control de ventilador

    1. Ejecutar sudo service fancontrol start. Esto también hará que el servicio de control de ventilador se ejecute automáticamente al iniciar el sistema.

En mi caso /etc/fancontrolpara CPU usé:

Configuraciones para hwmon0 / device / pwm2:
(Depende de hwmon0 / device / temp2_input) (Controla hwmon0 / device / fan2_input)

INTERVAL=2
MINTEMP=40  
MAXTEMP=60  
MINSTART=150  
MINSTOP=0  
MINPWM=0  
MAXPWM=255 

y en un sistema diferente es:

INTERVAL=10
DEVPATH=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608
DEVNAME=hwmon1=coretemp hwmon2=nct6779
FCTEMPS=hwmon2/pwm2=hwmon1/temp2_input
FCFANS=hwmon2/pwm2=hwmon2/fan2_input
MINTEMP=hwmon2/pwm2=49
MAXTEMP=hwmon2/pwm2=83
MINSTART=hwmon2/pwm2=150
MINSTOP=hwmon2/pwm2=15
MINPWM=hwmon2/pwm2=14
MAXPWM=hwmon2/pwm2=255

Aquí hay información útil sobre la configuración y lo que realmente hacen

GrizzLy
fuente
111
Traté de seguir su guía, pero me quedé atrapado en el paso tres con este error: / usr / sbin / pwmconfig: no hay instalados módulos de sensores con capacidad pwm
tamale
66
Tuve el mismo problema con pwmconfig hasta que ejecuté sudo sensores-detect
Gearoid Murphy el
55
¿Qué hacer si sudo sensores-detección no tiene ningún sensor? -> Lo sentimos, no se detectaron sensores. O su sistema no tiene sensores, o no son compatibles, o están conectados a un adaptador I2C o SMBus que no es compatible. Si descubre qué chips hay en su placa, consulte lm-sensors.org/wiki/Devices para conocer el estado del controlador.
H3R3T1K
55
Si tiene problemas, asegúrese de revisar su dmesg en busca de mensajes de error. En mi caso, los cambios recientes en el kernel me impidieron cargar el controlador necesario, y tuve que agregar acpi_enforce_resources=laxa las opciones de mi kernel para recuperar la funcionalidad anterior. Ver también: goo.gl/tUcr36
bukzor
19
He intentado esto y no puedo ir más allá de sudo pwmconfig, porque aparece: "No hay instalados módulos de sensores con capacidad pwm". Esto es después de que el comando de detección de sensores encuentra un 'sensor térmico digital Intel'. También probé ese parámetro del núcleo. ¿Puede alguien sugerir una solución?
Sman789
44

Si posee un ThinkPad , hay un software llamado thinkfanque hace exactamente esto. Como su nombre indica, obviamente, está hecho específicamente para ThinkPads ( thinkpad_acpi).

El thinkfansoftware está disponible en los repositorios de software estándar de ubuntu, pero requiere algunos pasos para configurarlo.

Aquí hay una guía paso a paso fácil:

http://staff.science.uva.nl/~kholshei/thinkfan_guide/

(que es básicamente una versión traducida de esta guía alemana: http://thinkwiki.de/Thinkfan )


Información relevante de la publicación:

Paso 1. Instale el software thinkfan y los sensores:

sudo apt-get install thinkfan lm-sensors

Paso 2. Asegúrate de que el demonio controle el ventilador editando el archivo thinkpad.conf:

sudo nano /etc/modprobe.d/thinkfan.conf

agregando la siguiente línea:

options thinkpad_acpi fan_control=1

Paso 3. Haz que el demonio se cargue automáticamente al inicio editando el archivo:

sudo nano /etc/default/thinkfan

asegurándose de que la tecla INICIO esté establecida en sí, es decir, debe haber una línea que diga:

START=yes

Paso 4. Detecta los sensores de tu computadora portátil:

sudo sensors-detect

y simplemente elija las respuestas predeterminadas cuando se le solicite presionando Enter.

Paso 5. Cargue los nuevos módulos. Desde ubuntu 13.10 esto hecho por:

sudo service kmod start

mientras que para versiones anteriores como 13.04 deberá hacer lo siguiente:

sudo service module-init-tools start

Paso 6. Averigua qué sensores están en uso:

sensors

(los que indican 0 grados no están en uso, no sé por qué también se "detectan"). Recuerda cuáles están en uso.

Paso 7. Descubra las rutas completas de estos sensores:

find /sys/devices -type f -name "temp*_input"

La salida debe ser una lista de rutas como / sys / devices / ...

Paso 8. Copie y pegue las rutas a los sensores en el archivo de configuración /etc/thinkpad.conf. Para hacer esto, primero abra el archivo:

sudo nano /etc/thinkfan.conf

Ya debería haber una línea como

#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3) 

(el símbolo # significa que esa línea está comentada). Agregue una línea que comience con el sensor (sin el símbolo #) y copie y pegue su primer sensor. Repita esto si tiene más de un sensor. Por ejemplo, en mi máquina, el resultado en el paso 7 produce

/sys/devices/virtual/hwmon/hwmon0/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp3_input
/sys/devices/platform/thinkpad_hwmon/temp4_input
/sys/devices/platform/thinkpad_hwmon/temp5_input
/sys/devices/platform/thinkpad_hwmon/temp6_input
/sys/devices/platform/thinkpad_hwmon/temp7_input
/sys/devices/platform/thinkpad_hwmon/temp1_input
/sys/devices/platform/thinkpad_hwmon/temp8_input
/sys/devices/platform/thinkpad_hwmon/temp2_input
/sys/devices/platform/coretemp.0/temp4_input
/sys/devices/platform/coretemp.0/temp2_input 

Los que están en uso en mi máquina son los de la primera y las últimas dos líneas, así que agregué las tres líneas:

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input 

Paso 9. Finalmente podemos establecer los niveles de velocidad del ventilador en el archivo de configuración. Abra el archivo /etc/thinkpad.conf si aún no estaba abierto.

sudo nano /etc/thinkfan.conf

Los niveles de ventilador que uso en mi ThinkPad x201 son:

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

La última línea garantiza la velocidad máxima del ventilador (127 = "desconectado", es decir, no regulado). Puede jugar con estos niveles para satisfacer sus necesidades / deseos, ¡pero TENGA CUIDADO!

Paso 10. Reiniciar. Todo debería funcionar ahora. Para verificar si thinkpad se está ejecutando correctamente, use

sudo thinkfan -n

que inicia thinkfan en modo detallado. Es posible que desee detener primero al daemon thinkfan:

sudo /etc/init.d/thinkfan stop

Si desea iniciar el daemon thinkfan nuevamente, escriba:

sudo /etc/init.d/thinkfan start

Para completar, mi archivo de configuración /etc/thinkfan.conf es:

# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# sensor /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

# Syntax:
# (LEVEL, LOW, HIGH)
# LEVEL is the fan level to use (0-7 with thinkpad_acpi)
# LOW is the temperature at which to step down to the previous level
# HIGH is the temperature at which to step up to the next level
# All numbers are integers.
#

# I use this on my T61p:
#sensor /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

#(0, 0, 55)
#(1, 48, 60)
#(2, 50, 61)
#(3, 52, 63)
#(4, 56, 65)
#(5, 59, 66)
#(7, 63, 32767)


# My settings for my ThinkPad X201: (kris)

sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input
sensor /sys/devices/platform/coretemp.0/temp4_input
sensor /sys/devices/platform/coretemp.0/temp2_input

(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767)
Kris
fuente
2
Un comentario: desea tener una mayor superposición de valores de temperatura como se comenta en la tabla. Especialmente en el rango 45-55. De lo contrario, la velocidad del ventilador sigue cambiando. Eso es muy perturbador. (El ruido constante del ventilador no molesta tanto como el ruido fluctuante).
HongboZhu,
1
Nosotros (la comunidad de Linux) realmente apestamos en UX. :( Establecer una velocidad del ventilador no debería ser un proceso de 10 pasos.
Alexander
2
@Alexander Si te gusta mucho esto, eres libre de escribir y mantener un pequeño programa para automatizar este proceso.
Kris
1
@Kris Estaría más inclinado a modificar el programa original para no tener un proceso de configuración tan absurdo. Por desgracia, no tengo un panel de ideas, estaba pasando por esta publicación buscando opciones de control de ventilador disponibles por ahí.
Alexander
/etc/modprobe.d/thinkfan.conf no existe en mi Ubuntu 14.04. ¿Ahora que?
Youda008
14

Para varias computadoras Dell, puede instalar el paquete i8kutils:

sudo apt install i8kutils

Si tiene un Dell no probado (como mi Dell XPS 14z), es posible que deba forzar la carga del módulo del kernel:

sudo modprobe i8k force=1
Morhook
fuente
2
Tengo Dell XPS 14 L421X. Los <code> sensores </code> no mostraron ventiladores. después de instalar el paquete i8kutils, obtengo sensores coretemp-isa-0000 Adaptador: adaptador ISA Id. físico 0: + 54.0 ° C (alto = + 87.0 ° C, crítico = + 105.0 ° C) Núcleo 0: + 50.0 ° C (alto = + 87.0 ° C, crítico = + 105.0 ° C) Núcleo 1: + 52.0 ° C (alto = + 87.0 ° C, crítico = + 105.0 ° C) Adaptador i8k-virtual-0: Dispositivo virtual Ventilador derecho: CPU de 0 RPM: + 55.0 ° C
philcolbourn
¿Esto funciona para HP?
Inmortal Player
1
@ jugador-inmortal, creo que no lo hará. El módulo del núcleo está diseñado específicamente para máquinas Dell.
morhook
Tal vez añadir, que para Apple existe macfanctldy mbpfany para ThinkPad, haythinkfan
rubo77
7

Instale y configure los paquetes lm-sensores y fancontrol :

sudo apt-get install lm-sensors fancontrol

La documentación para configurarlos está disponible en sus páginas de manual.

Esta es una función que se supone que debe proporcionar un BIOS compatible con ACPI, pero parece que la mayoría de los proveedores de placas base no se molestan en seguir el estándar.

psusi
fuente
12
¿Puede proporcionar instrucciones más detalladas sobre cómo instalarlas y usarlas?
Stefano Palazzo
Puede encontrarlo en la página del manual o en www.lm-sensors.org.
psusi
40
Lo sé, pensé que esta respuesta podría ser mejor :)
Stefano Palazzo
El enlace que dio @psusi no funciona, el nuevo enlace está aquí: github.com/groeck/lm-sensors
Svetlana Belkin
1
Creo que tienes un nombre de usuario mal escrito.
markroxor
3

Aquí hay una versión actualizada para la respuesta que recomienda thinkfan , trabajando con Ubuntu 19.04.

Preparar

Las instrucciones a continuación se aplican a cualquier ThinkPad que tenga los dispositivos /proc/acpi/ibm/fany /proc/acpi/ibm/thermal"heredados". Esto evita tener que instalar el lm-sensorspaquete.

Sin embargo, aún podría instalar lm-sensorspara ver más sensores de temperatura y obtener un control más preciso sobre sus ventiladores (es decir, en 256 pasos PWM en lugar de los pasos fijos "0-7 y 127" con los dispositivos heredados. Además, desde thinkfanahora puede funcionar con lm-sensorssensores, ya no es específico para las computadoras ThinkPad de IBM / Lenovo. Consulte el man thinkfanuso de estos dispositivos sensores "extendidos". Además, hay información actualizada en el Thinkwiki alemán .

  1. Instale el paquete requerido:

    sudo apt-get install thinkfan
    
  2. Agregue la siguiente línea a /etc/modprobe.d/thinkfan.conf:

    options thinkpad_acpi fan_control=1
    
  3. Configure el thinkfanservicio para que se inicie automáticamente al iniciar el sistema:

    1. Agregar una línea START=yesa/etc/default/thinkfan

    2. Ejecute el siguiente comando ( fuente ):

      sudo systemctl enable thinkfan.service
      
  4. Adaptarse /etc/thinkfan.confcon los punteros correctos a los dispositivos y los niveles de ventilador que desee. Los comentarios allí proporcionan documentación. En cualquier Thinkpad con el ventilador y los dispositivos térmicos heredados, lo siguiente debe proporcionar un buen punto de partida (también debe ser seguro para el disco duro, consulte los comentarios en el archivo para obtener más información). Tenga en cuenta que esto utiliza nuevas palabras clave: las de la otra respuesta anterior están en desuso.

    tp_fan /proc/acpi/ibm/fan
    tp_thermal /proc/acpi/ibm/thermal
    
    (0, 0, 47)
    (1, 43, 52)
    (2, 48, 55)
    (3, 51, 58)
    (4, 54, 63)
    (5, 59, 70)
    (6, 66, 79)
    (7, 74, 92)
    (127, 85, 32767) 
    

Prueba

Para probar su configuración (después de reiniciar), puede hacer lo siguiente:

  • En una ventana de terminal, ejecute thinkfanen modo no demonizado para que pueda ver sus mensajes:

    sudo service thinkfan stop && sudo thinkfan -n
    
  • En otra ventana de terminal, vigile los valores de temperatura actuales, suministrando su dispositivo de sonda de temperatura si es diferente:

    while true; do sleep 1; cat /proc/acpi/ibm/thermal; done
    
  • En otra ventana de terminal, calienta un poco la CPU (e interrumpe con Ctrl+ Cen caso de que algo en la gestión térmica no funcione como se esperaba):

    sudo apt install stress-ng
    stress-ng --cpu-1
    
Tanius
fuente
1
Increíble. Esto lo resolvió para mi T490 con Pop_OS 19.04. El ventilador todavía se enciende, pero no todo el tiempo.
Nitai
1
Los dispositivos ThinkPad más nuevos no tienen /proc/acpi/ibm/thermal, por lo que es necesario hacer un trabajo adicional para ese caso (convenientemente incluido en esa maravillosa página alemana ThinkWiki). Parece que me ha funcionado, así que puedo actualizar su respuesta o crear otra. ¡Gracias!
Acantilado
1

Intente buscar en la configuración UEFI (o configuración de BIOS) de su PC. Puede haber un ajuste para el control del ventilador donde se puede poner el ventilador en Silent Mode, Performance Mode, Full Speed, Customize, etc.

Cómo acceder a la configuración de UEFI : reinicie su PC y la clave para ingresarla probablemente aparecerá en una de las esquinas (por ejemplo Press F2 to enter UEFI setup)

Configuración ASRock UEFI para control de ventiladores

xjcl
fuente
Esto es AskUbuntu no AskUEFI :)
Maarten