I am running EndevourOs (i3wm) on an MSI Modern 14 B4MW laptop (R5 4500u).
In windows, when doing basic stuff (browsing etc) the CPU fan completely stops spinning but the same refuse to happen on Linux i.e. it does ramp up and down just fine, but the zero rpm mode doesn’t engage ever. I am a complete noob to Linux this is my first time here.
I have tried lm_sensors but it doesn’t detect anything, nbfc does not have any configs for me either. I would’ve tried other solutions (this) but I really don’t want to fry my machine so I came here.
Also, I noticed the bottom bar on my i3 displays a temperature reading next to the battery and wifi so I guess it is not entirely unreasonable to hope for something.
On Windows the fan kicks in at 45°C on CPU or 38°C on the skin (whichever comes first).
The reading on i3 is always in the low 30s and the body is cold to touch, moreover the exhaust air is cool (basically room temp).
While fans speed are initially controlled by BIOS and not OS, there can be problems with ACPI for this particular laptop or power settings that have a minimal fan speed. Which will prevent laptop fans to stop even on idle. For the latter probably the best bet is the link u placed in the first post. If nothing than at least to install lm sensor package to see if everything is detected properly. Fan speed control - ArchWiki (archlinux.org)
What Linux kernel are you running?
And it didn’t do anything.
But I learned something new, The laptop ships with a UWP application called MSI Creator Centre
I have the option to choose b/w 4 ‘user scenarios’ - Performance, Balanced, Silent, and Battery saver.
And the default balanced profile doesn’t idle at zero RPM, that happens only in the last 2 profiles.
I am very sure my Endeavor install is perpetually stuck in balanced mode.
I have scoured the BIOS but there’s no option to change the performance profile.
Is there a way to install the app or send a command somehow to change the performance profiles?
Ok so here’s the current state of things
I performed an EC dump with the help of ISW and it returns a matrix of base16 numbers. This tells me what exactly each of them is supposed to mean.
I also looked at my EC on windows in battery saver mode (fan off) using this utility.
I was planning to copy the Windows values over to the ISW config file and that should’ve been it.
But I realized that the CPU_temp, CPU_fan, GPU_temp, and GPU_fan values were identical on both.
Even the performance profile was the same (0D) on both.
Also, now I know for sure the CPU temperature is not the reason, the temperature on Linux is 2C lower than on Windows.
The performance profile is the same on Windows and Linux,
The fan curve is also identical
CPU temperature is lower on Linux
But the fan just won’t stop on Linux.
I have no explanation for this behaviour and I don’t really know where to look for one.