DocHub
Fan profiles, thermal services, dynamic control thresholds, and how to keep the laptop quiet

Thermal Management

ASUS Thermal Profiles

The laptop has three fan profiles controlled via two sysfs interfaces:

Profile platform_profile ASUS throttle_thermal_policy Fan behavior
Quiet quiet 2 Fans minimal, CPU may throttle
Balanced balanced 0 Fans scale with temperature
Performance performance 1 Fans at maximum speed always

Both interfaces must be set together for the change to take effect:

# Set balanced mode
echo balanced > /sys/firmware/acpi/platform_profile
echo 0 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy

Normal Temperature Ranges

Component Idle Light load Heavy load Critical
CPU Package 40-50°C 50-65°C 65-85°C 95°C+
GPU 35-45°C 45-60°C 60-80°C 90°C+
NVMe 30-40°C 35-45°C 84°C
WiFi (iwlwifi) 45-55°C

The CPU is rated to 110°C. Temperatures below 80°C are completely normal and do not need performance mode (max fans).

Services and Scripts

There are multiple thermal management systems. They must be kept in sync or they fight each other.

1. Boot Service — asus-performance-mode.service

Location: /etc/systemd/system/asus-performance-mode.service

Sets the profile at boot. As of 2026-03-15, configured to set balanced mode:

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo balanced > /sys/firmware/acpi/platform_profile && echo 0 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy'
RemainAfterExit=yes

2. Dynamic Thermal Control — dynamic-thermal-control.timer

Script: /home/chas-watkins/dynamic-thermal-control.sh Timer: Runs every 30 seconds via systemd timer Log: /home/chas-watkins/thermal-control.log

Switches between balanced and performance based on CPU temperature:

Threshold Temperature Action
TEMP_HIGH 80°C Switch to performance (max fans)
TEMP_LOW 65°C Switch back to balanced
TEMP_CRITICAL 95°C Emergency — force performance

History: Thresholds were originally 45/40/60°C which caused the fans to run at max permanently since the CPU idles at 47°C. Fixed 2026-03-15.

3. Startup Cooling — ~/.config/autostart/startup-cooling.sh

Disables CPU turbo boost 60 seconds after login to reduce heat:

echo 0 | sudo tee /sys/devices/system/cpu/cpufreq/boost

4. Temperature Logger — crontab

Script: /home/chas-watkins/temp-monitor.sh Schedule: Every 3 minutes Log: /home/chas-watkins/temperature-log.csv

Logs CPU, NVMe, ACPI, and WiFi temperatures. Read-only — does not change any settings.

5. Other Thermal Services

Service Status Role
thermald Active Intel thermal daemon — manages CPU throttling
tlp Active Power management — battery/AC profiles
asusd Failed ASUS daemon — not functional, can be ignored
fancontrol Inactive Not configured

Troubleshooting

Fans running at max despite cool temps

Check which profile is active:

cat /sys/firmware/acpi/platform_profile
cat /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy

If it says performance / 1, something is overriding balanced mode. Check the thermal control log:

tail -20 /home/chas-watkins/thermal-control.log

Resetting to balanced manually

echo balanced | sudo tee /sys/firmware/acpi/platform_profile
echo 0 | sudo tee /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy

Checking all temperatures

sensors