¿Cómo hago que funcione el control del ventilador?

34

Sé que hay algo llamado fancontrol, que le permite controlar la velocidad de ventilación de su sistema. Me gustaría dejar que mis ventiladores giren un poco más rápido ya que mi computadora portátil se está calentando muy fácilmente. Todos los tutoriales y cosas que he encontrado son para versiones antiguas de Ubuntu y ya no parecen funcionar.

¿Alguien puede explicarme o darme un buen enlace sobre cómo puedo hacer que funcione en Ubuntu? Algo diferente con el mismo efecto también está bien.

RobinJ
fuente
Un poco más de información sobre el hardware probablemente ayudaría, como la marca de la computadora portátil, el nombre / número de modelo y el tipo / versión de BIOS.
filescraps
@filescraps Dell Latitude D620: paste.ubuntu.com/699801
RobinJ
55
@RobinJ: ¿ha realizado las comprobaciones habituales para detectar problemas de sobrecalentamiento? Actualice su BIOS a la última disponible. ¿Has intentado agregar "acpi_osi = Linux" a tu grub? ¿Estás utilizando alguna opción de arranque adicional? Básicamente, mi punto es: los problemas de sobrecalentamiento son de tipo polvo / acpi: nunca debería necesitar controlar manualmente su ventilador.
fossfreedom
Bueno, el ventilador solo comienza a funcionar más rápido cuando está a unos 65 ° C, y parece que es demasiado tarde porque una vez que comienza a elevarse, ya no baja de 75 ° C demasiado rápido. Es una computadora portátil y no estoy lo suficientemente seguro con el hardware como para desarmarlo. ¿Qué acpi_osi=Linuxhacer? No hay opciones de arranque adicionales, solo el GRUB predeterminado.
RobinJ
1
@RobinJ: no olvide que el estilo del sitio web es agregar información relevante a su pregunta en lugar de enterrarla en los comentarios.
fossfreedom

Respuestas:

8

i8kutils funciona para controlar el ventilador de mi computadora portátil Dell Vostro 3350.

# Solo para laptop Dell:
$ sudo apt-get install i8kutils 
$ i8kfan 1 2 # Ajuste el ventilador izquierdo a baja velocidad (1); el correcto a alta velocidad (2).
user1902715
fuente
Solo parece que algo en el BIOS siempre lo restablece a su valor anterior después de unos segundos: P De todos modos, aunque es un poco tarde, sigue siendo la respuesta más útil.
RobinJ
Funciona en mi Alienware m14x. Pero todavía no puede configurar el enfriador a su velocidad máxima y eso sigue causando que la computadora portátil funcione a temperaturas más altas. Eso es significativamente más caliente que en Windows ...
iLemming
El BIOS lo restablece, así que agregué un cronjob que se ejecuta cada 2 minutos: crontab -ey */2 * * * * /usr/bin/i8kfan 1 1. funciona perfectamente por ahora
goksel
14

Lo más probable es que pueda resolver su problema con otra cosa que anule sus comandos de ventilador i8kctl mediante el método que se proporciona en esta respuesta. Para completar, incluiré algunas notas generales sobre el control del ventilador en las computadoras portátiles Dell e instrucciones completas para i8kutils.

Lo que probablemente no va a funcionar

Dos común y medios recta de avance de controlar el ventilador en los ordenadores portátiles son a través de ACPI y por medio de pines PWM, sin embargo, por desgracia:

  • Ordenadores portátiles de Dell carece de ACPI capacidad de control del ventilador (* 1)

    • como consecuencia, tratar con los parámetros de arranque de ACPI y similares fallará
  • portátiles Dell Latitude, por lo que yo sé, carecen de ventiladores controlables PWM (* 2)

    • como consecuencia, la fancontrol/ pwmconfigel programa no funcionará

Use i8kutils

Sin embargo, hay un paquete llamado i8kutilsque está escrito para controlar el ventilador en los portátiles Dell Inspiron través SMM BIOS . Varios usuarios reportan éxito en sus Dell Laitude ordenadores portátiles, así (yo soy uno de ellos, en una Dell Latitude E7440) - sin embargo, a menudo se necesita un truco para deshacerse de interferir de control del ventilador del BIOS. Sufres de eso también según un comentario anterior.

Instalar i8kutils:

$ sudo apt-get install i8kutils

Intentalo:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

... y escucha para ver si funciona.

Deshabilitar el control del ventilador del BIOS

Si funciona, pero somewthing otra cosa es la lucha contra la espalda a la velocidad Setted (reportado por muchos usuarios de los ordenadores portátiles Dell Latitude), esto se debe a las sesiones programadas SMM ajuste la parte de atrás de velocidad del ventilador. Afortunadamente, hay una manera de desactivar el control del ventilador del BIOS por escrito a los registros de SMM .

Advertencia: vea la advertencia en la parte superior de smm.c. Este método escribirá en registros SMM. Sin embargo, no he visto informes de usuarios sobre esto que causa problemas. Además, todos los informes sobre cómo probar esto han indicado éxito al deshabilitar el control del ventilador del BIOS.

i8kutilsincluye la fuente de un programa smmpero el i8kutilspaquete no incluye el binario compilado. Lo que haremos es descargar el código fuente i8kutils, compilar el programa smmy ejecutarlo con un argumento apropiado para deshabilitar el control del ventilador del BIOS escribiendo en registros SMM.

Descargue los paquetes necesarios para construir:

$ sudo apt-get build-dep i8kutils

Descargue el i8kutilscódigo fuente, extraiga e ingrese el directorio (los nombres exactos dependen de la versión de i8k):

$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/

Compilar smm:

  • Si está en un sistema de 32 bits :

    $ make
    

    (Arriba se ejecutará gcc -g -O2 -Wall -I. -o smm smm.c).

  • Si está en un sistema de 64 bits :

    $ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
    

Ejecutar smmcon argumento 30a3para deshabilitar el control de ventilador SMM:

$ sudo ./smm 30a3

Ahora, el control del ventilador del BIOS debería estar deshabilitado. Pruebe estableciendo velocidades con i8kctl, escuche el ventilador y asegúrese de que la velocidad persista.

Nota: Esta es una configuración que persistirá en los reinicios y el apagado. El control del ventilador del BIOS se puede habilitar nuevamente con $ sudo ./smm 31a3.


* 1: He visto una fuente oficial sobre esto, no puedo encontrarla en este momento. Si desea verificar que su hardware carece, siga las instrucciones aquí: https://wiki.ubuntu.com/DebuggingACPI

* 2: para verificar esto, pwmconfig ejecutar: sudo apt-get install fancontrol, sudo pwm-configdirá si un ventilador PWM capaz o no está presente

Carl
fuente
De hecho, utilicé el parámetro ACPI acpi_osi='!Windows 2012'para controlar los ventiladores de mi Dell Inspiron 15R 5520, ya que siempre giraban a la velocidad máxima independientemente de la temperatura.
user311982
Esta debería ser la respuesta correcta. ¡Está bien informado y es muy relevante!
ppr
Gran respuesta. También encontrado aquí
malat
1
Muchas gracias, esto funcionó para mí después de intentar todo lo demás en vano. Cuando intenté compilar smm, me faltaba sys / cdefs.h pero lo sudo apt-get install g++-multilibtraje (como se hace referencia en askubuntu.com/questions/470796/… )
Philip Daniels
Puede que llegue un poco tarde pero, ¿hay alguna desventaja de ponerlo a la velocidad máxima?
Zerquix18
14

El paquete lm-sensores Instalar sensores lm puede ser lo que estás buscando.

Y como sugeriste fancontrol Instalar control de ventilador .

Asegúrese de que todos los ventiladores que está intentando controlar a través del software tengan el conector de 4 pines.

"Un ventilador con capacidad PWM está normalmente conectado a un conector de 4 pines (salida de pines: tierra, + 12V, detección, control)". fuente

Cuando corro, pwmconfigque es parte de fancontrol, obtengo

/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed Te guiará si tienes hardware compatible.

Aquí hay algunos scripts para usar junto con el archivo de configuración generado. Supongo que podría establecer un valor más alto aquí.

label fan1 "Side Fan"
set fan1_min 1000
label fan2 "PSU Fan"
set fan2_min 1000
label fan5 "CPU Fan"
set fan5_min 1000

Pero como dije, no puedo probar esto yo mismo, ya que mi hardware no lo admite, puedo controlar a mis fanáticos desde la BIOS, pero es un grado de 3. Lo uso para mantener mi ventilador lento y silencioso.

archivos de recortes
fuente
1
/ usr / sbin / pwmconfig: no hay instalados módulos de sensores con capacidad pwm ¿Hay alguna otra forma?
RobinJ
Por lo general sensors-detect, primero debe ejecutar y cargar un módulo que dice para obtener la lectura de temperatura y velocidad del ventilador, y luego pwmconfig puede manipularlo.
psusi
@RobinJ, parece que no tiene un chip reconocido / compatible.
psusi
Voy a otorgarle la recompensa, ya que esta fue la respuesta más informativa que podría ayudar a la mayoría de las personas.
RobinJ
5

Ok, esta podría no ser la respuesta que está buscando, pero mis problemas de sobrecalentamiento se resolvieron cuando eliminé el polvo colocando una aspiradora en las entradas de ventilación. Si experimenta sobrecalentamiento a bajas frecuencias de CPU, vale la pena intentarlo. Tenga en cuenta que quizás las piezas pequeñas pueden ser absorbidas. Si tiene suerte, este método podría resolver los problemas de sobrecalentamiento.

Ewald
fuente
Le di la recompensa a la respuesta anterior porque era la más informativa, pero mi problema parece estar relacionado con el hardware, por lo que su respuesta se acercó más a la solución. Pero como no tengo la confianza suficiente como para jugar con el hardware de mi computadora portátil, lo traje a la tienda ya que todavía estaba bajo garantía.
RobinJ
Acabo de probar esto y funcionó. ¡Gracias! Mi ventilador comenzó a sonar más fuerte y tuve uno o dos apagados debido al sobrecalentamiento. Esperemos que esto lo haya solucionado. El ventilador ahora se enciende y apaga con la utilización normal de la CPU, que es excelente (antes de que permaneciera encendido todo el tiempo).
Cymen
@Cymen Solo asegúrese de que la aspiradora sea una aspiradora antiestática, para estar seguro. Utilizo una lata de aire comprimido para limpiar las rejillas de ventilación, que también puede hacer como alternativa.
user311982
3

Tengo un Dell Latitude e4200 y lo siguiente funcionó para mí porque el BIOS estaba anulando la configuración de i8kfan. La temperatura inicial de mi computadora fue de 105 ° F y aproximadamente 10 minutos después de seguir estos pasos (configuración del ventilador = 2) las temperaturas de CPU / Core cayeron a 96 ° F. Este procedimiento ya había sido publicado por alguien:

Paso 1. Descargue e instale i8ktutils:

# sudo apt-get install i8kutils

Paso 2. Anule el BIOS para evitar que interrumpa la configuración personalizada del ventilador. Descargue el código fuente y compile un programa (SMM) para hacer esto:

# sudo apt-get build-dep i8kutils

luego:

# apt-get source i8kutils

Paso 3. Extraiga el código fuente y el CD en el directorio:

# tar xvf i8kutils_1.33.tar.gz

luego:

# cd i8kutils-1.33/

Paso 4. Compilar SMM

For 32-bit systems:

# make SMM

(Output: # gcc -g -O2 -Wall -I. -o smm smm.c.)

For 64-bit systems

# make SMM:

(Output: # gcc -g -O2 -Wall -I. -o smm -m32 smm.c)

Paso 5. Ejecute SMM con parámetros:

# sudo ./smm 30a3

Paso 6. Configure las velocidades del ventilador:

# i8kfan 2 2 (Listen as this will set fans to maximum speed)

# i8kfan 1 1 (This will set fans to slow speed)

Ahora el control del ventilador del BIOS no debe anular la configuración del ventilador. Esta configuración se mantendrá incluso si se reinicia el sistema. Para devolver el control al BIOS por alguna razón, realice el siguiente procedimiento:

# sudo ./smm 31a3.

También hay una manera de verificar la temperatura usando lm_sensors:

http://www.cyberciti.biz/faq/howto-linux-get-sensors-information/
usuario245946
fuente
1
Probé esto para la versión más reciente de i8kutils-1.41 en Ubuntu 14.04 y obtuve "En el archivo incluido de /usr/include/stdio.h:27:0, de smm.c: 27: /usr/include/features.h: 374: 25: error fatal: sys / cdefs.h: No existe tal archivo o directorio "Sin embargo, esto soluciona ese problema askubuntu.com/questions/470796/…
k-den