
Outfile = os.path.expanduser("/etc/smoothtemp.txt") Sensors = ["/sys/class/hwmon/hwmon2/temp3_input", Points = 10 # smoothing decay time in points Realistically speaking we probably all have more important things to do.ĭt = 0.3 # time interval between measurement points And anything that's more than a simple bash script should probably be its own thing instead of bloating lm-sensors.īut since I wont start a new project over this and wouldnt expect any one else to do it, It'll probably just have to stay like that for the foreseeable future. I believe this would exceed of what should be done in a bash script. While something like I'm proposing could most likely be build into that, one has to ask if lm-sensors would be the right place to do it. I took a quick look at the fan control script and to my surprise its actually pretty simple. Why this probably isn't the right place to solve this It might also be a good idea to set up all case fans to spin at max speed if any component in the system reaches a critical threshold. Other scenarios might include a water cooled CPU where the the VRMs might be at risk of overheating since there is no incidental airflow from the CPU cooler. In my example this would allow the exhaust fan to spin up if either CPU or GPU are under load while the front fans still primarily serve the components closest to them. Ideally fans would have a curve for each sensor in the system, choosing the highest RPM any curve currently demands.

Still, I would prefer being able to actively cool those components if they needed it. Load on those tends to coincide with at least a moderate CPU load so its not that big of a concern in practice. There are also a few other components like Voltage regulators or NVME SSDs in the system that could potentially need cooling. My only option right now to improve the situation for the GPU would be to control the exhaust fan over the case temperature as well, negatively impacting the airflow under heavy CPU loads. This leads to rather suboptimal airflow where the intake fan has to build up pressure to force hot air out of the case, ultimately hurting performance. The exhaust fan however is not spinning, since its coupled to the CPU. Triggered by the rise in ambient temperature, the bottom case fan starts blowing cool air at the Graphics card. When the GPU heats up, its fans start dumping hot air into the case. Air gets pulled in from the front, passes the CPU cooler and gets exhausted in the back. This works well in a scenario with high load on the CPU. The bottom front case fan is set to be controlled by a temperature sensor on the main board. The top front and back fans are set to ramp up with rising CPU temperatures since they are closest to the socket. The top front case fan is set to idle at low RPM, all other fans are stopped in idle. my current setup is that the CPU and GPU fans are controlled by their respective on-die sensors. 2 Intake fans in the front, 1 exhaust at the back. CPU and Graphics card in their normal places.

#Lm fancontrol no processor fan how to
Let me add my two cents to this, describe why this isn't some niche problem, my Ideas on how to solve it and why, despite all of this, I'm not sure adding this feature to fancontrol would even be desirable, even if somebody was willing to spend the time building it: If you want it, implement it, submit a patch. Which does not seem to include mine (AMD Ryzen 7 3700X). Oh, this also leaves systems with per-core temps available. This leaves two cases where clearly there would be benefit: 1) water cooling systems where one loop cools both CPU and GPU, without a temperature sensor for the water, and 2) motherboards with multiple CPU sockets that don't have a separately controllable fan header for each? And they're just not relevant enough to my life for me to do that work. And I think it has no actual benefit over basing case fan speed on motherboard temperature (for me, the value of SYSTIN from /usr/bin/sensors, and temp1_input in the directory where /sys/class/hwmon/hwmon1/name contains "nct6798"). But when my case fan speeds are based directly on my CPU temperature, they audibly fluctuate more annoyingly. Initially I thought it would be great to change the speed of my case fans based on the temperatures of both my CPU and GPU. And maybe this helps explain why nobody else has done it. I was thinking about working on this problem, and I think I have decided not to, due to a shortage of use cases. (I am not involved in this project, this is not an official response.)
