mechakotik / rog-daemon

Lightweight and modular ASUS ROG control daemon for Linux
GNU General Public License v3.0
19 stars 1 forks source link

rog-fan-curve works not as expected #3

Closed kersh1337228 closed 7 months ago

kersh1337228 commented 7 months ago

Config:

Issue description:

Executing rog-fan-curve --fan=cpu --set=0c:0%,65c:0%,67c:0%,70c:10%,75c:10%,80c:15%,85c:15%,90c:20% gives

New custom fan curve was set successfully

But rog-fan-curve --fan=cpu --get gives

Enabled
0c:0%,65c:0%,67c:0%,70c:9%,75c:9%,80c:14%,85c:14%,90c:20%

As you can definitely see those do not match and there is even more. When temperature is around 80c fans start speening on much higher velocities than 14% or even 20% using the config shown above. Of course, I use exactly the same fan-curve for my gpu.

mechakotik commented 7 months ago

These small mismatches happen because of rounding issues. BIOS stores fan percentage in range [0; 100], while Linux driver stores it in range [0; 255] for some reason. So when changing fan curves percentage gets converted to [0; 255] on the daemon side and then converted back to [0; 100] when driver does WMI call. I've fixed rounding, so percentage should be accurate now: fb8f12d.

Custom fan curves not working properly at around 80c is likely a BIOS thing to prevent overheating. Even if you set all zero fan curve, fans will start spinning at 80c anyway.

kersh1337228 commented 7 months ago

Ok, I can confirm that this commit has fixed rounding issues , at least in my case.

But what about BIOS. According to the fact you have created this indeed great tool, I can assume you have an ASUS ROG laptop too. In my case I don't care whether my CPU is 90c degrees or even 100c degrees (it is definitely a CPU overheating, my dGPU stays around under 80c degrees even under heavy loads, according to benchmarks I made) I don't want to hear this noise. Have you tried to patch BIOS somehow? I also know people say that undervolting helps to solve this issue too, have you tried it? I am sorry, if it is offtop, but I've mentioned it in issue description above so I think it is ok.

mechakotik commented 7 months ago

This never was a problem for me. Overheating leads to throttling in best case and permanent damage to hardware in worst case, so I'd better hear noise than let the CPU temp be >80c during everyday usage.

My current setup is 65c:0%,67c:40%, and it remains silent almost all of the time. For heavy tasks such as games or multithreaded compiling I have another curve where fans are always 100%, so temps are around 70c even under full load.

kersh1337228 commented 7 months ago

Ok, if the problem is in BIOS, then that is it. Thank you again.