Skip to content

GA401QE: Custom fan curves are not reapplied after AC power events despite remaining enabled #162

Description

@CosmicKittu

GA401QE: Custom fan curves are not reapplied after AC power event despite remaining enabled

System

  • Laptop: ASUS ROG Zephyrus G14 (GA401QE)
  • BIOS: GA401QE.415
  • BIOS Release Date: 08/11/2023
  • OS: Omarchy Linux
  • Also reproduced on: CachyOS
  • Kernel: Linux 7.0.10.arch1-1
  • asusctl: 6.3.7-1
  • asusd: 6.3.7
  • supergfxctl: 5.2.7-2

Description

Custom fan curves work correctly after manually enabling them with:

sudo asusctl fan-curve --mod-profile Quiet --enable-fan-curves true

However, after unplugging or plugging in the AC adapter (or any platform profile refresh), the custom fan curve is no longer applied to the embedded controller (EC).

The configuration still reports that the fan curves are enabled, but the fans stop following them until the above command is executed again.

This behavior is reproducible every time.

Steps to reproduce

  1. Configure custom fan curves.
  2. Enable them:
sudo asusctl fan-curve --mod-profile Quiet --enable-fan-curves true
  1. Verify that the fans start spinning according to the custom fan curve.
  2. Plug or unplug the AC adapter.
  3. Observe that the custom fan curve is no longer applied.
  4. Run the same command again.
  5. The custom fan curve is immediately applied and the fans start spinning again.

Expected behavior

After an AC power event or platform profile refresh, the previously saved custom fan curves should automatically be reapplied.

Actual behavior

After the AC event:

asusctl fan-curve --get-enabled

still reports:

CPU: enabled: true
GPU: enabled: true

The saved configuration also still contains:

enabled: true

for both CPU and GPU.

However, the fan curve is no longer active until:

sudo asusctl fan-curve --mod-profile Quiet --enable-fan-curves true

is executed again.

Immediately after running that command, both fans begin spinning again.

Current profile

Active profile: Quiet

AC profile Quiet
Battery profile Quiet

Linux platform profile:

powerprofilesctl: power-saver
platform_profile: quiet

Sensor output after the issue occurs

asus-isa-000a
cpu_fan:        0 RPM
gpu_fan:        0 RPM

At the same time:

asusctl fan-curve --get-enabled

CPU: enabled: true, 35c:5%,41c:22%,54c:25%,58c:26%,58c:27%,60c:27%,66c:39%,99c:70%
GPU: enabled: true, 53c:7%,56c:11%,56c:11%,59c:17%,59c:17%,63c:26%,67c:30%,98c:38%

Relevant logs

After unplugging/replugging AC:

[DEBUG asusd::ctrl_platform] Setting Quiet before EPP
[INFO  asusd::ctrl_platform] ThrottlePolicy setting EPP
[DEBUG asusd::ctrl_fancurves] watch_platform_profile changed
[DEBUG asusd::ctrl_platform] Platform: watch_platform_profile changed

No corresponding:

write_profile_curve_to_platform

messages are logged.

After manually running:

sudo asusctl fan-curve --mod-profile Quiet --enable-fan-curves true

the daemon immediately logs:

[DEBUG rog_profiles] write_profile_curve_to_platform: writing profile:(quiet), CurveData { fan: CPU, ..., enabled: true }
[DEBUG rog_profiles] write_profile_curve_to_platform: writing profile:(quiet), CurveData { fan: GPU, ..., enabled: true }

and both fans immediately start spinning.

Configuration

/etc/asusd/fan_curves.ron correctly stores:

quiet: [
(
fan: CPU,
enabled: true,
...
),
(
fan: GPU,
enabled: true,
...
)
]

The configuration persists correctly across reboots.

Additional observations

  • asusctl fan-curve --get-enabled always reports the fan curves as enabled, even after the issue occurs.
  • /etc/asusd/fan_curves.ron still contains enabled: true for both fans.
  • The issue is reproducible every time.
  • The same behavior occurs on both Omarchy and CachyOS, so it does not appear to be distribution-specific.``

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions