Hi!
Oh boy oh boy, I finally understood something about the alienware_wmi driver on my Dell G3 laptop, and figuring it out resolved a very cranky old issue that was really bothering me:
My laptop is a Dell G3 3500 (with an Intel i5-10300H) from ~2020.
My laptop is pretty cool overall, it is decently performant, it is really stable… but my laptop's firmware also usually takes a stupidly… long… time… to poll the temperatures and adjust/activate the fans accordingly because of… "reasons".
Also, each fan (my laptop has two) only have three states:
* 0 => Turned off
* 1 => Normal speed (~2600 RPM)
* 2 => Speedy speed (~4900 RPM, or ~5600 RPM in G-Mode)
It's extremely annoying because if I start compiling software or playing a heavy game, the temperatures will rise very quickly and the fans basically never have time to wake up before the temps hit ~85-90°C.
But do you know what the fan*_boost HWMON SysFS interface exposed by alienware_wmi (e.g., /sys/class/hwmon/hwmon4/fan1_boost) is actually about?
I didn't.
I knew its existence, but thought it was about the offset between the max fan speed declared by dell_smm (4900 RPM) and the one declared by alienware_wmi (5600 RPM). For me, that was the logical answer.
No.
fan*_boost actually controls the minimum speed of a fan independently of what the Dell firmware wants it to be… by percentage, not by state. It actually bypasses the fan's standard 3 states!
In my case, setting fan1_boost above 17 turns on the CPU fan at a little below 1000 RPM, 35 sets it to ~2000 RPM, and so on until 100 = ~5600 RPM (since 5600 RPM is the max exposed by alienware_wmi for the G3 3500's G-Mode stuff, except now I don't need G-Mode anymore to reach this speed).
Knowing this is gonna change absolutely everything about my laptop's thermal management. It makes me happy and I wanted to share it 😺 (especially since I do know that thermal management with Dell laptops is something that has pissed a lot of people off for a very long time, including myself).
A little warning though
When switching between thermal profiles (by e.g. switching the laptop's power profile between powersave <-> balanced <-> performance), fan*_boost will be reset to 0 whatsoever (or to 100 if you enable performance mode, which will also trigger G-Mode).
Keep also in mind that setting fan1_boost or fan2_boost will obviously not prevent Dell's firmware from doing its dark magic. If you set a specific boost level so the fans run at ~1200 RPM but suddenly the firmware wants to make them spin at ~2600 RPM, the firmware will have the last word. The contrary, on the other hand, does not happen as far as I can tell. As far as I know, the firmware will not make them spin slower than what you have already set.
Also:
I'm happy because it will make my life with the second-hand laptop I bought for myself ~2-3 years ago much easier, but Dell and their executives can still fuck themselves for sponsoring fascist's money-laundering-shaped projects (cf. the wall of shame).
That's all, happy 'putting!







