Controllo della ventola su laptop MSI: nessun sensore compatibile con pwm?


8

Sto cercando di controllare la velocità della ventola del mio laptop MSI GS60-2PC su Ubuntu 16.04.

Ma lo pwmconfigriferisce

There are no pwm-capable sensors modules installed

Sono abbastanza sicuro che questi fan possano essere controllati, perché alcuni programmi di utilità su Windows possono controllarli.

Quello che ho fatto

  1. Ho corso sensors-detect(come root) in questo modo:

    yes | sensors-detect
    

Sembra rilevare solo "coretemp". Ecco il risultato completo .

  1. Quindi pwmconfig(come root):

    pwmconfig
    

E ricevo il famoso messaggio There are no pwm-capable sensors modules installed .

  1. Ho provato le seguenti cose, che non ha funzionato:
    • Aggiunta a grub (e quindi riavvio): acpi_osi=Linux
    • Aggiunta a grub (e quindi riavvio): acpi_osi=!Windows 2012
    • Aggiunta a grub (e quindi riavvio): acpi_enforce_resources=lax

Quello che ottengo quando eseguo il 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)

EDIT: ecco il risultato di lspci.

Risposte:


5

Sono riuscito ad avere un certo controllo della ventola in Windows con gli "Strumenti di controllo della ventola" di Pherein, usando il profilo GS660 incluso per il mio laptop MSI GS60 6QC. Così ho realizzato un piccolo script Python che è l'equivalente Linux del "Fan Profile Applier.exe" di 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))

Ecco il file di input che attualmente uso come argomento, è il file Quiet.rw generato con lo strumento di 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 l'ultimo firmware CE non c'è effettivamente tra 0 RPM e 3000 RPM per la velocità della ventola.


Wow ! L'ho appena provato e la velocità della ventola è cambiata, anche se non è più silenziosa di prima. Sono molto interessato :-) Alcune domande: le modifiche si resettano al riavvio del PC, vero? Prende in considerazione tutti i sensori o solo la CPU?
Electron, l'

Ho appena trovato qui un profilo per il GS60 che sembra funzionare meglio del profilo del GX660 che hai fornito! Almeno sulla mia macchina. Forse hai una versione del firmware diversa che fa funzionare meglio il profilo del GX660? Per quanto ho capito, le differenze sono gli offset: il profilo che ho trovato inizia da 0x69, non da 0x6A.
Electron, l'

0

Questo laptop utilizza il chipset Intel HM87. La versione mobile di questo chipset non include l'hardware PWM, quindi le ventole non possono essere controllate dal sistema operativo. Se è possibile un controllo della ventola, sarà tramite il BIOS.

Il manuale del proprietario dell'MSI G60 afferma che alcuni modelli di questo laptop dispongono di un pulsante "cooler boost" che controlla la velocità della ventola. Mostra anche che premendo Fn + F5 si fa scorrere il laptop in diverse modalità di risparmio energia.


Strano: MSI afferma che questo software è in grado di "controllare" i fan. Come fa se è impossibile? ... Forse lampeggia il firmware EC?
Electron:

@Electronwill Questo non software applicativo è una funzionalità del BIOS. Ho aggiornato la mia risposta.
Steve Roome,

Per "pulsante boost più freddo", intendi questo pulsante ? Sembra che non ho un pulsante così cool sul mio GS60. Questo pulsante è disponibile su GE60 e GE70.
Electron:

È un peccato. Il manuale per il tuo laptop dice che è disponibile su alcuni modelli.
Steve Roome,

Mi chiedo dove hai trovato il manuale. Quello ufficiale, sul sito MSI , non menziona alcun pulsante di raffreddamento. Né la guida rapida . Ad ogni modo, hai ragione sul chipset, quindi accetterò la tua risposta.
Electron:
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.