Lüftersteuerung am MSI-Laptop: Keine PWM-fähigen Sensoren?

8

Ich versuche, die Lüftergeschwindigkeit meines MSI GS60-2PC-Laptops unter Ubuntu 16.04 zu steuern.

Aber pwmconfigberichtet das

There are no pwm-capable sensors modules installed

Ich bin mir ziemlich sicher, dass diese Lüfter gesteuert werden können, da einige Dienstprogramme unter Windows sie steuern können.

Was ich getan habe

  1. Ich bin sensors-detect(als root) so gelaufen :

    yes | sensors-detect
    

Es scheint nur "coretemp" zu erkennen. Hier ist das vollständige Ergebnis .

  1. Dann pwmconfig(als Wurzel):

    pwmconfig
    

Und ich bekomme die berühmte Nachricht There are no pwm-capable sensors modules installed .

  1. Ich habe folgende Dinge ausprobiert, die nicht funktioniert haben:
    • Zum Grub hinzufügen (und dann neu starten): acpi_osi=Linux
    • Zum Grub hinzufügen (und dann neu starten): acpi_osi=!Windows 2012
    • Zum Grub hinzufügen (und dann neu starten): acpi_enforce_resources=lax

Was ich bekomme, wenn ich den sensorsBefehl ausführe

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: Hier ist das Ergebnis von lspci.

ElectronWill
quelle

Antworten:

5

Mit den "Fan Control Tools" von Pherein konnte ich den Lüfter unter Windows mithilfe des mitgelieferten GS660-Profils für meinen MSI GS60 6QC-Laptop steuern. Also habe ich ein kleines Python-Skript erstellt, das dem Linux-Äquivalent von Phereins "Fan Profile Applier.exe" entspricht:

#!/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))

Hier ist die Eingabedatei, die ich derzeit als Argument verwende. Es ist die Quiet.rw-Datei, die mit Phereins Tool generiert wurde:

-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

Mit der neuesten EC-Firmware gibt es tatsächlich keine Drehzahl zwischen 0 und 3000 U / min für die Lüftergeschwindigkeit.

EkoLi
quelle
Wow ! Ich habe es gerade versucht und die Lüftergeschwindigkeit hat sich geändert, obwohl es nicht so leiser als zuvor ist. Ich bin sehr interessiert :-) Ein paar Fragen: Die Änderungen werden beim Neustart des PCs zurückgesetzt, nicht wahr? Berücksichtigt man jeden Sensor oder nur die CPU?
ElectronWill
Ich habe gerade hier ein Profil für die GS60 , die besser ist als die GX660 Profil zu arbeiten scheint , dass Sie zur Verfügung gestellt! Zumindest auf meiner Maschine. Vielleicht haben Sie eine andere Firmware-Version, mit der das Profil des GX660 besser funktioniert? Soweit ich weiß, sind die Unterschiede die Offsets: Das gefundene Profil beginnt bei 0x69, nicht bei 0x6A.
ElectronWill
0

Dieser Laptop verwendet den Intel HM87-Chipsatz. Die mobile Version dieses Chipsatzes enthält keine PWM-Hardware, sodass die Lüfter nicht vom Betriebssystem gesteuert werden können. Wenn eine Lüftersteuerung möglich ist, erfolgt dies über das BIOS.

In der Bedienungsanleitung des MSI G60 heißt es, dass einige Modelle dieses Laptops über eine "Cooler Boost" -Taste verfügen, mit der die Lüftergeschwindigkeit gesteuert wird. Es zeigt auch, dass durch Drücken von Fn + F5 der Laptop verschiedene Energieverwaltungsmodi durchläuft.

Steve Roome
quelle
Seltsam: MSI behauptet, dass diese Software die Lüfter "steuern" kann. Wie geht es, wenn es unmöglich ist? ... Vielleicht blinkt die EC-Firmware?
ElectronWill
@Electronwill Diese Nicht-Anwendungssoftware ist eine Funktion des BIOS. Ich habe meine Antwort aktualisiert.
Steve Roome
Mit "Cooler Boost Button" meinen Sie diesen Button ? Es scheint, dass ich auf meinem GS60 keinen so cooleren Knopf habe. Diese Taste ist beim GE60 und GE70 verfügbar.
ElectronWill
Das ist schade. Das Handbuch für Ihren Laptop besagt, dass es bei einigen Modellen verfügbar ist.
Steve Roome
Ich frage mich, wo Sie das Handbuch gefunden haben. Der offizielle auf der MSI-Website erwähnt keinen cooleren Button. Auch die Kurzanleitung nicht . Wie auch immer, Sie haben Recht mit dem Chipsatz, also werde ich Ihre Antwort akzeptieren.
ElectronWill