Control del ventilador en la computadora portátil MSI: ¿no hay sensores con capacidad pwm?

8

Estoy tratando de controlar la velocidad del ventilador de mi computadora portátil MSI GS60-2PC en Ubuntu 16.04.

Pero pwmconfiginforma que

There are no pwm-capable sensors modules installed

Estoy bastante seguro de que estos ventiladores pueden controlarse, porque algunas utilidades en Windows pueden controlarlos.

Qué he hecho

  1. He corrido sensors-detect(como root) así:

    yes | sensors-detect
    

Parece que solo detecta "coretemp". Aquí está el resultado completo .

  1. Entonces pwmconfig(como root):

    pwmconfig
    

Y recibo el famoso mensaje There are no pwm-capable sensors modules installed .

  1. He intentado lo siguiente, que no funcionó:
    • Agregar a grub (y luego reiniciar): acpi_osi=Linux
    • Agregar a grub (y luego reiniciar): acpi_osi=!Windows 2012
    • Agregar a grub (y luego reiniciar): acpi_enforce_resources=lax

Lo que obtengo cuando ejecuto el sensorscomando

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +105.0°C)
temp2:        +29.8°C  (crit = +105.0°C)
temp3:        +50.0°C  (crit = +100.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +48.0°C  (high = +84.0°C, crit = +100.0°C)
Core 0:         +48.0°C  (high = +84.0°C, crit = +100.0°C)
Core 1:         +44.0°C  (high = +84.0°C, crit = +100.0°C)
Core 2:         +46.0°C  (high = +84.0°C, crit = +100.0°C)
Core 3:         +44.0°C  (high = +84.0°C, crit = +100.0°C)

EDITAR: Aquí está el resultado de lspci.

ElectronWill
fuente

Respuestas:

5

Logré tener algo de control del ventilador en Windows con las "Herramientas de control del ventilador" de Pherein, usando el perfil GS660 incluido para mi laptop MSI GS60 6QC. Así que hice un pequeño script de Python que es el equivalente de Linux del "Fan Profile Applier.exe" de Pherein:

#!/usr/bin/env python

import os
import sys

EC_IO_FILE="/sys/kernel/debug/ec/ec0/io"

if not os.path.exists(EC_IO_FILE):
        os.system("modprobe ec_sys write_support=1")

def ec_write(addr,value):
    with open(EC_IO_FILE,"rb") as f:
        f.seek(addr)
        old_value=ord(f.read(1))
    if (value != old_value):
        print("                %3d => %3d" % (old_value, value))
        with open(EC_IO_FILE,"wb") as f:
            f.seek(addr)
            f.write(bytearray([value]))
    else:
        print("                     = %3d" % value)

for line in open(sys.argv[1]).readlines():
    print(line.strip())
    if line.startswith(">WEC "):
        addr,value=line.split()[1:3]
        ec_write(int(addr,0), int(value,0))

Aquí está el archivo de entrada que uso actualmente como argumento, es el archivo Quiet.rw generado con la herramienta de Pherein:

-Profile Name: Quiet
[Temperatures_1]
>WEC 0x6A 0x2f
>WEC 0x6B 0x35
>WEC 0x6C 0x43
>WEC 0x6D 0x50
>WEC 0x6E 0x5A
>WEC 0x6F 0x5F
>WEC 0x70 0x64
----
[FanSpeeds_1]
>WEC 0x72 0x00
>WEC 0x73 0x10
>WEC 0x74 0x3E
>WEC 0x75 0x45
>WEC 0x76 0x4C
>WEC 0x77 0x54
>WEC 0x78 0x5B
----
[Temperatures_2]
>WEC 0x82 0x37
>WEC 0x83 0x41
>WEC 0x84 0x4B
>WEC 0x85 0x55
>WEC 0x86 0x5A
>WEC 0x87 0x5D
>WEC 0x88 0x66
----
[FanSpeeds_2]
>WEC 0x8A 0x0
>WEC 0x8B 0x3B
>WEC 0x8C 0x46
>WEC 0x8D 0x54
>WEC 0x8E 0x5B
>WEC 0x8F 0x5B
>WEC 0x90 0x5B
----
>RwExit

Con el último firmware EC, en realidad no hay entre 0 RPM y 3000 RPM para la velocidad del ventilador.

EkoLi
fuente
Guauu ! Lo acabo de probar y la velocidad del ventilador cambió, aunque no es tan silenciosa como antes. Estoy muy interesado :-) Algunas preguntas: los cambios se reinician cuando la PC se reinicia, ¿no? ¿Tiene en cuenta todos los sensores o solo la CPU?
ElectronWill
¡Acabo de encontrar aquí un perfil para el GS60 que parece funcionar mejor que el perfil del GX660 que proporcionó! En mi máquina al menos. ¿Quizás tenga una versión de firmware diferente que haga que el perfil del GX660 funcione mejor? Según tengo entendido, las diferencias son las compensaciones: el perfil que encontré comienza en 0x69, no en 0x6A.
ElectronWill
0

Esta computadora portátil utiliza el chipset Intel HM87. La versión móvil de este chipset no incluye hardware PWM, por lo que el sistema operativo no puede controlar los ventiladores. Si es posible algún control del ventilador, será a través del BIOS.

El manual del propietario del MSI G60 establece que algunos modelos de esta computadora portátil tienen un botón de "refuerzo más frío" que controla la velocidad del ventilador. También muestra que al presionar Fn + F5, la computadora portátil pasa por diferentes modos de administración de energía.

Steve Roome
fuente
Extraño: MSI afirma que este software es capaz de "controlar" a los fanáticos. ¿Cómo lo hace si es imposible? ... Tal vez parpadea el firmware de la CE?
ElectronWill
@Electronwill Este no es un software de aplicación, es una característica del BIOS. He actualizado mi respuesta.
Steve Roome
Por "botón de refuerzo más frío", ¿te refieres a este botón ? Parece que no tengo un botón más genial en mi GS60. Este botón está disponible en GE60 y GE70.
ElectronWill
Eso es una lástima. El manual de su computadora portátil dice que está disponible en algunos modelos.
Steve Roome
Me pregunto dónde encontraste el manual. El oficial, en el sitio web de MSI , no menciona ningún botón más genial. Tampoco la guía rápida . De todos modos, tienes razón sobre el chipset, así que aceptaré tu respuesta.
ElectronWill