This post is about a happy conclusion of the thread:
Unfortunately the thread was closed before I managed to respond.
So here it is, late but wort to share.
The issue was two issues in fact.
Fan didn’t stop while laptop was suspended to RAM. It turned out, my laptop simply didn’t fully suspend. I was obvious from dmesg
messages. Suspend sometimes worked under 6.12 kernel, but not reliably.
It didn’t suspend because of bug/deficiency in kernel code, in amdgpu
module. This bug has been already reported and tracked and solution worked on since February. See: [STX] The system does not reach the hardware sleep state (#3940) · Issues · drm / amd · GitLab
It got fixed on 20/3/2025, reliably this time, and apparently got to 6.14-rc7
release.
drm/amd/display: Disable unneeded hpd interrupts during dm_init · torvalds/linux@40b8c14
I helped to test early version of that patch, learning hoe to build kernel from src.rpm packages
Luckily, openSUSE already provides kernels with this patch for everyone. I tested it with experimental kernel 6.14.0-2.gb6b752b-default
build from Kernel openSUSE HEAD repository:
https://download.opensuse.org/repositories/Kernel:/HEAD/standard/
For this kernel I had to install matching Nvidia from another opensSUSE’s experimental repository:
https://download.opensuse.org/repositories/X11:/Drivers:/Video:/Redesign/Kernel_HEAD/x86_64/
And you do need Nvidia drivers, at least for the power management, otherwise the battery drains much faster.
After installing all that suspend worked as expected, with fans completely silent when on suspend.
But the fans were still on when the laptop was running, even when it was completely idle and reported hardware temperatures deep below anything requiring fans. Something was still wrong.
On my laptop, thermal management is handled by ACPI rather than the OS, as sensors-detect
reported.
The usual tools cannot be used to get fan speeds or to control them.
One needs a specialized application/service - asusctl
.
It turned out, that my laptop had power profile set as “Balanced”. That meant that fans were always on, though barely audible. With 6.14 the default power profile switched to “Power” and the fans were fully on, very audibly on, even when laptop was idle.
Unfortunately, asusctl
is not available from official openSUSE repositories.
I found three experimental Factory repositories, two of them working:
- https://download.opensuse.org/repositories/home:/luke_nukem:/asus/ - not working
- lukenukem/asus-linux Copr - mostly working, managed by the package author
- https://download.opensuse.org/repositories/home:/RN:/asusctl/openSUSE_Slowroll/ - seems to be working too, not tested much, not sure who made those.
The core of asusctl
package is asusd
SystemD service. Once started, one can start controlling power profiles.
It can be cone trough CLI or, if also installed, a GUI app. There I selected “Quiet” power profile and my laptop went finally completely silent.
The issue with amdgpu drm REG_WAIT timeout turned out not to be related to fans or suspend issues. It was mostly harmless. It was also fixed shortly before the suspend bugfix.
https://bugzilla.opensuse.org/show_bug.cgi?id=1238204
Pheww…