MSI 랩탑의 팬 제어 : PWM 지원 센서가 없습니까? : acpi_osi=!Windows 2012 grub에 추가 한 다음

Ubuntu 16.04에서 MSI GS60-2PC 랩톱의 팬 속도를 제어하려고합니다.

그러나 pwmconfig보고

There are no pwm-capable sensors modules installed

Windows의 일부 유틸리티는 팬을 제어 할 수 있기 때문에 이러한 팬을 제어 할 수 있다고 확신합니다.

내가 한 것

  1. 다음 sensors-detect과 같이 (루트로) 실행 했습니다.

    yes | sensors-detect
    

“coretemp”만 감지하는 것 같습니다. 전체 결과는 다음과 같습니다 .

  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)

편집 : 다음은 lspci의 결과입니다.



답변

MSI GS60 6QC 노트북에 포함 된 GS660 프로필을 사용하여 Pherein의 “팬 제어 도구”를 사용하여 Windows에서 팬을 제어 할 수있었습니다. 그래서 나는 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))

다음은 현재 인수로 사용하는 입력 파일입니다. Pherein의 도구로 생성 된 Quiet.rw 파일입니다.

-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 RPM에서 3000 RPM 사이에 없습니다.


답변

이 랩탑은 Intel HM87 칩셋을 사용합니다. 이 칩셋의 모바일 버전에는 PWM 하드웨어가 포함되어 있지 않으므로 운영 체제에서 팬을 제어 할 수 없습니다. 팬 제어가 가능한 경우 BIOS를 통합니다.

MSI G60의 사용 설명서에 따르면이 랩탑의 일부 모델에는 팬 속도를 제어하는 ​​”쿨러 부스트”버튼이 있습니다. 또한 Fn + F5를 누르면 랩톱이 다른 전원 관리 모드를 순환합니다.