Cpu

筆記型電腦風扇總是說它以 8 RPM 執行

  • June 14, 2019

我有一台具有以下規格的聯想 Legion Y520:

zjeffer@ArchLinux 
----------------- 
OS: Arch Linux x86_64 
Host: 80WK Lenovo Y520-15IKBN 
Kernel: 5.1.7-arch1-1-ARCH 
Uptime: 42 mins 
Packages: 1659 (pacman) 
Shell: zsh 5.7.1 
Resolution: 1920x1080, 1920x1080 
WM: bspwm 
Theme: OSX-Arc-Plus [GTK2/3] 
Icons: Papirus-Light [GTK2/3] 
Terminal: gnome-terminal 
CPU: Intel i7-7700HQ (8) @ 3.800GHz 
GPU: NVIDIA GeForce GTX 1050 Mobile 
GPU: Intel HD Graphics 630 
Memory: 1369MiB / 7866MiB 

我正在使用thinkfan來嘗試控制我的 cpu 風扇。可悲的是,我看不到真正的風扇速度是多少,因為它總是說 8 RPM。

這是我的 thinkfan.conf,如果重要的話:

######################################################################
# thinkfan 0.7 example config file
# ================================
#
# ATTENTION: There is only very basic sanity checking on the configuration.
# That means you can set your temperature limits as insane as you like. You
# can do anything stupid, e.g. turn off your fan when your CPU reaches 70°C.
#
# That's why this program is called THINKfan: You gotta think for yourself.
#
######################################################################
#
# IBM/Lenovo Thinkpads (thinkpad_acpi, /proc/acpi/ibm)
# ====================================================
#
# IMPORTANT:
#
# To keep your HD from overheating, you have to specify a correction value for
# the sensor that has the HD's temperature. You need to do this because
# thinkfan uses only the highest temperature it can find in the system, and
# that'll most likely never be your HD, as most HDs are already out of spec
# when they reach 55 °C.
# Correction values are applied from left to right in the same order as the
# temperatures are read from the file.
#
# For example:
# tp_thermal /proc/acpi/ibm/thermal (0, 0, 10)
# will add a fixed value of 10 °C the 3rd value read from that file. Check out
# http://www.thinkwiki.org/wiki/Thermal_Sensors to find out how much you may
# want to add to certain temperatures.

#  Syntax:
#  (LEVEL, LOW, HIGH)
#  LEVEL is the fan level to use (0-7 with thinkpad_acpi)
#  LOW is the temperature at which to step down to the previous level
#  HIGH is the temperature at which to step up to the next level
#  All numbers are integers.
#

# I use this on my T61p:
# tp_fan /proc/acpi/ibm/fan
# tp_thermal /proc/acpi/ibm/thermal (0, 10, 15, 2, 10, 5, 0, 3, 0, 3)

hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input
hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp2_input
hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp3_input
hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp4_input
hwmon /sys/devices/platform/coretemp.0/hwmon/hwmon0/temp5_input
hwmon /sys/devices/virtual/thermal/thermal_zone1/temp


(0, 0, 51)
(1, 50, 52)
(2, 51, 55)
(3, 54, 58)
(4, 56, 63)
(5, 60, 70)
(6, 66, 79)
(7, 74, 92)
(127, 85, 32767) 

這是輸出dmesg | grep -i thinkpad

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=661a855a-c479-4291-bcb2-95b148ce2020 rw quiet nowatchdog nvidia-drm.modeset=1 thinkpad_acpi fan_control=1
[    0.155975] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=661a855a-c479-4291-bcb2-95b148ce2020 rw quiet nowatchdog nvidia-drm.modeset=1 thinkpad_acpi fan_control=1
[    4.231093] thinkpad_acpi: ThinkPad ACPI Extras v0.26
[    4.231094] thinkpad_acpi: http://ibm-acpi.sf.net/
[    4.231094] thinkpad_acpi: ThinkPad BIOS 4KCN40WW, EC unknown
[    4.231094] thinkpad_acpi: Lenovo Lenovo Y520-15IKBN, model 80WK
[    4.231554] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one
[    4.231620] thinkpad_acpi: Console audio control enabled, mode: monitor (read only)
[    4.232877] thinkpad_acpi: battery 1 registered (start 0, stop 0)
[    4.232879] battery: new extension: ThinkPad Battery Extension
[    4.232896] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input8

在這裡它說EC unknown,所以我不知道我有哪個 EC,並且在網際網路上找不到任何關於我的模型的資訊。

s-tui我在, in/proc/acpi/ibm/fan和 in 中檢查了這個速度sensors:它總是在 8 RPM,如果我在玩遊戲時能聽到它全速爆炸,這當然是不可能的。

在 Windows 10 中,我發現speedfan找不到任何粉絲。我還將 BIOS 版本從 4KCN40WW 更新為 4KCN45WW。沒有變化。


如何查看我的真實風扇速度?

部分答案:

從您的dmesg,thinkpad_acpi被載入。我快速瀏覽了核心原始碼,它似乎沒有輸出任何與粉絲相關的消息。

但是,程式碼中的一些註釋說:

ThinkPad EC 寄存器 0x​​84 (LSB)、0x85 (MSB):主風扇轉速計讀數(以 RPM 為單位)

該寄存器存在於所有具有新型 EC 的 ThinkPad 上,並且已知在 A21m/e 和 T22 上不存在,因為根據 ACPI DSDT 在偏移量 0x84 中還有其他內容。同一時期(或更早)的其他 ThinkPad 可能也缺少轉速計。

不幸的是,許多具有新型 EC 但其韌體從未被 IBM 修復以報告 EC 韌體版本字元串的 ThinkPad 可能支持轉速計(如早期的 X 型號),因此檢測它非常困難。我們需要更多數據才能確定。

FIRMWARE BUG:總是先讀取 0x84,否則可能會導致錯誤的讀數。

韌體錯誤:EC 切換到全速模式時可能會過時。

有關韌體錯誤,請參閱: http ://thinkwiki.org/wiki/Embedded_Controller_Firmware#Firmware_Issues

EC 是筆記型電腦的嵌入式控制器

因此存在三個潛在問題:在某些 thinkpad 上,轉速計根本不可用,在某些 thinkpad 上,此位置有其他東西,在某些 thinkpad 上,韌體有誤。

這意味著您必須將Lenovo Legion Y520 與您使用的任何版本名稱相匹配,並查找韌體錯誤。

有疑問,我會通過核心 bugtracker 聯繫該模組的維護人員,看看他們是否對您的特定模型有任何想法。

引用自:https://unix.stackexchange.com/questions/523899