You are not logged in.

#1 2014-09-09 23:24:05

raimar
Member
From: Braunschweig
Registered: 2014-01-04
Posts: 7

Fan trip point temp not changable on Intel N2830

On my new Lenovo S20-30 with Intel N2830 processor the kernel module intel_soc_dts_thermal starts automatically. Then it is possible to read the current temperature of CPU0 by

# cat /sys/devices/virtual/thermal/thermal_zone0/temp
33000

As far as I understand, there is also a trip point 1 of type passive, which defines the starting temperature for the fan, i.e.

# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_type
passive
# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
0
# echo '40000' > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
# cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
40000

should change the starting temperature to 40°C. The default behavior, which starts the fan at 36°C and stops it at 31°C does not change.

Does anyone know how to change the starting temperature for the fan?

Last edited by raimar (2014-09-11 19:15:28)

Offline

#2 2014-09-09 23:55:21

emeres
Member
Registered: 2013-10-08
Posts: 1,570

Re: Fan trip point temp not changable on Intel N2830

 Use [⁣code][⁣/code] tags to mark output of a command or scripts. Please correct your post.

$ cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_type
passive
$ cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_type
0
$ echo '40000' > /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_temp
$ cat /sys/devices/virtual/thermal/thermal_zone0/trip_point_1_type
40000

 That seems incorrect, you probably mean *_1_temp not *_1_type a second  and third time. Or does the type value change like suggested in the 4th line? Also mark commands run as root with an # instead of a $.

 As for the issue at hand provide 'tree /sys/devices/virtual/thermal/thermal_zone0/'. The trip_point_1_temp is read-only according to this* part of the documentation:

sysfs-api.txt documentation wrote:

trip_point_[0-*]_temp
    The temperature above which trip point will be fired.
    Unit: millidegree Celsius
    RO, Optional

trip_point_[0-*]_type
    Strings which indicate the type of the trip point.
    E.g. it can be one of critical, hot, passive, active[0-*] for ACPI
    thermal zone.
    RO, Optional

trip_point_[0-*]_hyst
    The hysteresis value for a trip point, represented as an integer
    Unit: Celsius
    RW, Optional

https://www.kernel.org/doc/Documentatio … re_thermal
https://www.kernel.org/doc/Documentatio … fs-api.txt

Edit: *Which is somewhat contradictory to the first documentation.

Last edited by emeres (2014-09-10 00:00:57)

Offline

#3 2014-09-10 20:20:12

raimar
Member
From: Braunschweig
Registered: 2014-01-04
Posts: 7

Re: Fan trip point temp not changable on Intel N2830

Thanks emeres. I have added code tags for shell commands and corrected my mixture of type and temp.

With your hint, I can confirm, that there is a directory link from /sys/class/thermal/thermal_zone0 to /sys/devices/virtual/thermal/thermal_zone0 - also the same for directory ending with 1.

Here is the result from the tree command:

$ tree /sys/class/thermal/thermal_zone0
/sys/class/thermal/thermal_zone0
├── policy
├── power
│   ├── async
│   ├── autosuspend_delay_ms
│   ├── control
│   ├── runtime_active_kids
│   ├── runtime_active_time
│   ├── runtime_enabled
│   ├── runtime_status
│   ├── runtime_suspended_time
│   └── runtime_usage
├── subsystem -> ../../../../class/thermal
├── temp
├── trip_point_0_temp
├── trip_point_0_type
├── trip_point_1_temp
├── trip_point_1_type
├── type
└── uevent

and also directory listing:

$ ls -al /devices/virtual/thermal/thermal_zone0/
-rw-r--r-- 1 root root 4096 10. Sep 20:35 policy
drwxr-xr-x 2 root root    0 10. Sep 20:35 power/
lrwxrwxrwx 1 root root    0 10. Sep 20:35 subsystem -> ../../../../class/thermal/
-r--r--r-- 1 root root 4096 10. Sep 20:35 temp
-r--r--r-- 1 root root 4096 10. Sep 20:35 trip_point_0_temp
-r--r--r-- 1 root root 4096 10. Sep 20:35 trip_point_0_type
-rw-r--r-- 1 root root 4096 10. Sep 20:36 trip_point_1_temp
-r--r--r-- 1 root root 4096 10. Sep 20:35 trip_point_1_type
-r--r--r-- 1 root root 4096 10. Sep 20:35 type
-rw-r--r-- 1 root root 4096 10. Sep 20:35 ueven

This shows, that trip_point_1_temp is writable with root rights, but changing the value does not change the temperature for starting the fan in my case. Also by reading both linked documentation about this, I don't really know how it works from the user perspective.

Can anyone try to write a different temperature in millidegree to trip_point_1_temp and verify, that the fan starts earlier or later?

Offline

#4 2014-09-10 21:51:23

emeres
Member
Registered: 2013-10-08
Posts: 1,570

Re: Fan trip point temp not changable on Intel N2830

 This is an Intel cpu, right? You may want to add that term to the threads name, so that it gets people attention. I do not have those files/cpu brand, so I cannot test this. Also, even if the file is writable, I would argue it does not mean, that it will respect any changes. You also could look into [AURs] packages on thermal/fan control functionality.

Offline

#5 2014-09-11 19:26:04

raimar
Member
From: Braunschweig
Registered: 2014-01-04
Posts: 7

Re: Fan trip point temp not changable on Intel N2830

The name of the CPU is now in the thread name. Thanks for suggestion. Yes, it would be a good idea to look into some fan utilities, which are able to change the starting temperature of the fan.

Here are also some details about the kernel module intel_soc_dts_thermal, which only shows, that there is a parameter for changing the critical temperature, but not the starting temperature:

$ modinfo  intel_soc_dts_thermal
filename:       /lib/modules/3.16.2-1-ARCH/kernel/drivers/thermal/intel_soc_dts_thermal.ko.gz
license:        GPL v2
author:         Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
description:    Intel SoC DTS Thermal Driver
alias:          cpu:type:x86,ven0000fam*mod0037:feature:*
depends:        iosf_mbi
intree:         Y
vermagic:       3.16.2-1-ARCH SMP preempt mod_unload modversions 
parm:           crit_offset:Critical Temperature offset from tj max in millidegree Celsius. (int)

Until now I have no answer for my question, how to change the starting temperature of the fan.

Offline

Board footer

Powered by FluxBB