Управление вентилятором на ноутбуке MSI: нет датчиков с поддержкой ШИМ?

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

Но pwmconfig сообщает, что

There are no pwm-capable sensors modules installed

Я почти уверен, что этими вентиляторами можно управлять, потому что некоторые утилиты в Windows могут ими управлять.

Что я сделал

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

    yes | sensors-detect
    

It кажется, обнаруживает только "coretemp". Вот полный результат .

  1. Затем pwmconfig (от имени root):

    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)

РЕДАКТИРОВАТЬ: Вот результат lspci.

8
задан 19 March 2018 в 22:07

2 ответа

Мне удалось иметь некоторый контроль над вентилятором в Windows с "Инструментами Управления Вентилятора" от Pherein, с помощью включенного профиля GS660 для моего ноутбука MSI GS60 6QC. Таким образом, я сделал маленький сценарий Python, который является Linux, эквивалентным из "Профиля Вентилятора Pherein 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 об/мин и 3 000 об/мин для скорости вентилятора.

5
ответ дан 20 March 2018 в 08:07

Этот ноутбук использует чипсет Intel HM87. Мобильная версия этого чипсета не включает аппаратные средства PWM, таким образом, вентиляторами не может управлять операционная система. Если какое-либо управление вентилятора будет возможно, то это будет через BIOS.

руководство владельцев для MSI G60 указывает, что некоторые модели этого ноутбука имеют "более прохладное повышение" кнопка, которая управляет скоростью вентилятора. Это также показывает, что нажатие Fn+F5 циклически повторяет ноутбук через различные режимы управления питанием.

0
ответ дан 20 March 2018 в 08:07

Другие вопросы по тегам:

Похожие вопросы: