How to lower temperature trip points values for acpi thermal zone

How can i lower temperature trip point values / temperature values within thermal zone 0. Problem is not dependent on kernel version. I have tried 4.4, 4.9, 4.14, 4.15

I have thermal zone defined by acpi which is setup by kernel under
/sys/class/thermal/thermal_zone0

Here temperature trip points are set incorrect with hot and critical trip points itself is higher than actual cpu critical temperature.

Output of grep . trip_point_* under /sys/class/thermal/thermal_zone0

trip_point_0_temp:97000
trip_point_0_type:critical
trip_point_1_temp:95000
trip_point_1_type:hot
trip_point_2_temp:90000
trip_point_2_type:passive
trip_point_3_temp:62000
trip_point_3_type:active

Due to this Fan does not run until temperature hits more than 62 Degrees Celcius.
Even then CPU hits 75 Degrees Celcius if i am building a package with makepkg.

I have lmsensors package installed and sensors -u reports cpu temperatures as


coretemp-isa-0000
Adapter: ISA adapter
Core 0:
temp2_input: 67.000
temp2_max: 90.000
temp2_crit: 90.000
temp2_crit_alarm: 0.000
Core 1:
temp3_input: 68.000
temp3_max: 90.000
temp3_crit: 90.000
temp3_crit_alarm: 0.000

temp1_crit and temp2_crit are actual critical temperature values read from cpu.

Trip points with thermal zone are read only . Same is documented under kernel documentation. Pls read https://www.kernel.org/doc/Documentation/thermal/sysfs-api.txt

I have thermald installed and configured to ignore cpuid since i have core 2 duo T6400 which does not support p-state or rapl for thermal management and disabled these cooling device options within /etc/thermald/thermal-cpu-cdev-order.xml.
I have only intel_powerclamp, cpufreq and Processor cooling device types enabled.

Also modified thermald.service to run thermald as
ExecStart=/usr/bin/thermald --no-daemon --dbus-enable --ignore-cpuid-check

Looks like due to high trip point values thermal management does not happen.

I have read related thread from @FadeMind for power management and tried suggested kernel parameters but under heavy load temperatures are too high.

Since i have broken BIOS fancontrol or any other suggested software in arch wiki does not even detect fan.

Kernel Parameters i boot with

GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=cf8412e3-f557-47fa-a6a7-e1e215e0a83c loglevel=4 rd.systemd.show_status=auto rd.udev.log_priority=3 modprobe.blacklist=iTCO_wdt nowatchdog ipv6.disable_ipv6=1 ipv6.autoconf=0 net.ifnames=0 drm.vblankoffdelay=1 i915.modeset=1 zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=13 zswap.zpool=z3fold zswap.same_filled_pages_enabled=1 mem_sleep_default=deep acpi_os_name=Linux acpi_osi=Linux acpi=force acpi_enforce_resources=strict acpi_backlit=vendor acpi_sleep=s3_bios acpi_force_table_verification time mce

I made following progress till date.

Kernel boot parameter

thermal.act , thermal.psv , thermal.crt

must be set to desired temperature and add these to ur Linux kernel command line within /etc/default/grub

Run sudo update-grub and reboot .

Now under /sys/class/thermal/thermal_zone0 i can see new values updated for active, passive and critical trip points.

But there is not kernel parameter for trip point hot

Need to read more on

  1. Thermal kernel module
  2. Thermal Sysfs driver.
  3. Thermald
  4. Writing custom thermald conf to modify hot trip point.

Last solution cud be to extract acpi tables and load corrected data on kernel boot since after system boot these values are read only. Not sure if this can be done but it wud require compiling acpi code under linux.

Anybody with experience in compiling acpi code and modifying acpi tables on system boot.

Damn u HP :angry::angry::rage::rage::angry:

This topic was automatically closed after 180 days. New replies are no longer allowed.

Forum kindly sponsored by