Управління вентиляторами на ноутбуці MSI: відсутні сенсорні датчики?


8

Я намагаюся контролювати швидкість вентилятора мого ноутбука MSI GS60-2PC на Ubuntu 16.04.

Але це pwmconfigповідомляє

There are no pwm-capable sensors modules installed

Я впевнений, що цими вентиляторами можна керувати, оскільки деякі програми в Windows можуть контролювати їх.

Що я накоїв

  1. Я запустив sensors-detect(як root) так:

    yes | sensors-detect
    

Здається, виявляє лише "стрижневий крок". Ось повний результат .

  1. Потім pwmconfig(як корінь):

    pwmconfig
    

І я отримую відоме повідомлення There are no pwm-capable sensors modules installed .

  1. Я спробував такі речі, які не спрацювали:
    • Додавання до grub (а потім перезавантаження): acpi_osi=Linux
    • Додавання до grub (а потім перезавантаження): acpi_osi=!Windows 2012
    • Додавання до grub (а потім перезавантаження): acpi_enforce_resources=lax

Що я отримую, коли запускаю sensorsкоманду

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: Ось результат lspci.

Відповіді:


5

Мені вдалося трохи контролювати вентилятор у Windows за допомогою "Інструментів контролю вентиляторів" від Pherein, використовуючи включений профіль GS660 для мого ноутбука MSI GS60 6QC. Тому я створив невеликий сценарій python, який є еквівалентом Linux Pherein "Fan Profile Applier.exe":

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

Ось вхідний файл, який я зараз використовую як аргумент, це файл Quiet.rw, згенерований інструментом 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

З останньою прошивкою EC насправді немає між 0 об / хв і 3000 об / хв для швидкості вентилятора.


Оце Так ! Я щойно спробував це, і швидкість вентилятора змінилася, хоча це не так тихіше, ніж раніше. Мене дуже цікавить :-) Кілька питань: зміни скидаються під час перезавантаження ПК, чи не так? Чи враховується кожен датчик або лише процесор?
ElectronWill

Я щойно знайшов тут профіль для GS60, який, здається, працює краще, ніж профіль GX660, який ви надали! На моїй машині принаймні. Можливо, у вас інша версія прошивки, яка покращує роботу профілю GX660? Наскільки я розумію, відмінності - це компенсації: профіль, який я знайшов, починається з 0x69, а не 0x6A.
ElectronWill

0

Цей ноутбук використовує чіпсет Intel HM87. Мобільна версія цього чіпсета не включає апаратне забезпечення ШІМ, тому вентилятори не можуть контролюватися операційною системою. Якщо можливо будь-яке управління вентилятором, це буде через BIOS.

Посібник користувача для MSI G60 зазначає, що деякі моделі цього ноутбука мають кнопку "прискорення кулера", яка контролює швидкість вентилятора. Це також показує, що натискання клавіш Fn + F5 циклично переносить ноутбук через різні режими управління потужністю.


Дивно: MSI стверджує, що це програмне забезпечення здатне "контролювати" вентилятори. Як це зробити, якщо це неможливо? ... Може, миготить прошивка EC?
ElectronWill

@Electronwill Це неприкладне програмне забезпечення, це особливість BIOS. Я оновив свою відповідь.
Стів Рум

Під "кнопкою підвищення кулера" ви маєте на увазі цю кнопку ? Здається, у мене на GS60 немає такої кнопки охолодження. Ця кнопка доступна на GE60 та GE70.
ElectronWill

Шкода. Посібник для вашого ноутбука говорить, що він доступний для деяких моделей.
Стів Рум,

Цікаво, де ви знайшли посібник. В офіційному на веб-сайті MSI не згадується жодна кнопка охолодження. Також не є швидким посібником . У будь-якому випадку ви маєте рацію щодо чіпсету, тому я прийму вашу відповідь.
ElectronWill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.