0

I have a Lenovo Legion Y520 with these specs:

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 

I'm using thinkfan to try to control my cpu fan. Sadly, I can't see what my true fan speed is, as it always says 8 RPM.

This is my thinkfan.conf, if it matters:

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

Here's the output of 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

Here it says EC unknown, so I have no idea which EC I have and can't find anything on the internet about my model.

I checked this speed in s-tui, in /proc/acpi/ibm/fan and in sensors: it's always at 8 RPM, which is of course impossible if I can hear it blasting at full speed while playing games.

In windows 10 I found that speedfan doesn't find any fans. I also updated my BIOS version from 4KCN40WW to 4KCN45WW. No changes.


How can I see my true fan speed?

  • This means either (1) thinkpad_acpi is not working as expected, so check in dmesg etc. if it gets loaded correctly, or (2) your hardware is different, and the fan shows up in a different place. You can try lm-sensors, but if that doesn't show anything out of the box, you'll need to get your hands dirty and figure out how your hardware works (or find someone with the same hardware who already figured it out). – dirkt Jun 10 at 5:34
  • @dirkt I added dmesg logs. Does it look like thinkpad_acpi is working? – zjeffer Jun 10 at 9:13
4

Partial answer:

From your dmesg, thinkpad_acpi gets loaded. I had a quick look at the kernel source code, and there don't seem to be any fan related messages it outputs.

However, some comments in the code say:

ThinkPad EC register 0x84 (LSB), 0x85 (MSB): Main fan tachometer reading (in RPM)

This register is present on all ThinkPads with a new-style EC, and it is known not to be present on the A21m/e, and T22, as there is something else in offset 0x84 according to the ACPI DSDT. Other ThinkPads from this same time period (and earlier) probably lack the tachometer as well.

Unfortunately a lot of ThinkPads with new-style ECs but whose firmware was never fixed by IBM to report the EC firmware version string probably support the tachometer (like the early X models), so detecting it is quite hard. We need more data to know for sure.

FIRMWARE BUG: always read 0x84 first, otherwise incorrect readings might result.

FIRMWARE BUG: may go stale while the EC is switching to full speed mode.

For firmware bugs, refer to: http://thinkwiki.org/wiki/Embedded_Controller_Firmware#Firmware_Issues

EC is the embedded controller of your laptop.

So there are three potential issues: On some thinkpads the tachometer isn't available at all, and on some thinkpads something else is in this location, and on some thinkpads the firmware is wrong.

Which means you have to match up your Lenovo Legion Y520 with whatever version nomeclature you are using, and look for firmware bugs.

In doubt I'd contact the maintainers of this module either via the kernel bugtracker and see if they have any ideas about your particular model.

  • Can you clarify what you mean with you have to match up your Lenovo Legion Y520 with whatever version nomeclature you are using, and look for firmware bugs. ? – zjeffer Jun 10 at 12:59
  • 1
    I meant: I am not familiar with the Thinkpad versions, and I have no idea if A21m/e and T22 are in any way related to Y520, or if one is internal and the other is marketing, etc. – dirkt Jun 10 at 14:34
  • thinkwiki.org/wiki/Category:A21m and thinkwiki.org/wiki/Category:T22 provide that information. – K7AAY Jun 10 at 15:59
1

I contacted Lenovo support and they said the current (and latest) version of my laptop's BIOS doesn't support fan control.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.