Contrôle des ventilateurs sur un ordinateur portable MSI: pas de capteurs compatibles PWM?

8

J'essaie de contrôler la vitesse du ventilateur de mon ordinateur portable MSI GS60-2PC sur Ubuntu 16.04.

Mais pwmconfigrapporte que

There are no pwm-capable sensors modules installed

Je suis sûr que ces fans peuvent être contrôlés, car certaines utilisations sous Windows peuvent les contrôler.

Ce que j'ai fait

  1. J'ai couru sensors-detect(en tant que root) comme ceci:

    yes | sensors-detect
    

Il semble ne détecter que "coretemp". Voici le résultat complet .

  1. Puis pwmconfig(en tant que root):

    pwmconfig
    

Et je reçois le fameux message There are no pwm-capable sensors modules installed .

  1. J'ai essayé les choses suivantes, qui n'ont pas fonctionné:
    • Ajout à grub (puis redémarrage): acpi_osi=Linux
    • Ajout à grub (puis redémarrage): acpi_osi=!Windows 2012
    • Ajout à grub (puis redémarrage): acpi_enforce_resources=lax

Ce que j'obtiens lorsque j'exécute la sensorscommande

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: Voici le résultat de lspci.

ElectronWill
la source

Réponses:

5

J'ai réussi à contrôler le ventilateur dans Windows avec les "Outils de contrôle du ventilateur" de Pherein, en utilisant le profil GS660 inclus pour mon ordinateur portable MSI GS60 6QC. J'ai donc fait un petit script python qui est l'équivalent Linux du "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))

Voici le fichier d'entrée que j'utilise actuellement comme argument, c'est le fichier Quiet.rw généré avec l'outil 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

Avec le dernier micrologiciel EC, il n'y a en fait pas de 0 à 3 000 tr / min pour la vitesse du ventilateur.

EkoLi
la source
Hou la la ! Je viens de l'essayer et la vitesse du ventilateur a changé, même si ce n'est pas plus silencieux qu'auparavant. Je suis très intéressé :-) Quelques questions: les changements se réinitialisent au redémarrage du PC, n'est-ce pas? Est-ce que chaque capteur est pris en compte ou seulement le CPU?
ElectronWill
Je viens de trouver ici un profil pour le GS60 qui semble mieux fonctionner que le profil du GX660 que vous avez fourni! Sur ma machine au moins. Peut-être que vous avez une version de firmware différente qui améliore le fonctionnement du profil du GX660? Pour autant que je comprends, les différences sont les décalages: le profil que j'ai trouvé commence à 0x69, pas à 0x6A.
ElectronWill
0

Cet ordinateur portable utilise le chipset Intel HM87. La version mobile de ce chipset ne comprend pas de matériel PWM, les ventilateurs ne peuvent donc pas être contrôlés par le système d'exploitation. Si un contrôle du ventilateur est possible, ce sera via le BIOS.

Le manuel du propriétaire du MSI G60 indique que certains modèles de cet ordinateur portable ont un bouton "Cooler boost" qui contrôle la vitesse du ventilateur. Cela montre également qu'en appuyant sur Fn + F5, l'ordinateur portable passe par différents modes de gestion de l'alimentation.

Steve Roome
la source
Bizarre: MSI prétend que ce logiciel est capable de "contrôler" les fans. Comment fait-il si c'est impossible? ... Peut-être qu'il clignote le firmware EC?
ElectronWill
@Electronwill Ce n'est pas un logiciel d'application, c'est une fonctionnalité du BIOS. J'ai mis à jour ma réponse.
Steve Roome
Par "bouton boost cooler", voulez-vous dire ce bouton ? Il semble que je n'ai pas de bouton plus frais sur ma GS60. Ce bouton est disponible sur les GE60 et GE70.
ElectronWill
C'est dommage. Le manuel de votre ordinateur portable indique qu'il est disponible sur certains modèles.
Steve Roome
Je me demande où vous avez trouvé le manuel. L'officiel, sur le site MSI , ne mentionne aucun bouton de refroidissement. Le guide rapide non plus . Quoi qu'il en soit, vous avez raison sur le chipset, donc j'accepte votre réponse.
ElectronWill