The minimum viable fan control script

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • - Learn 300+ open source libraries for free using AI.
  • WorkOS - The modern API for authentication & user identity.
  • fan2go

    A simple daemon providing dynamic fan speed control based on temperature sensors.

    How silent are you talking? Silent under load is hard, but quiet under load and silent on idle is possible without a passively cooled build. A good cooler for the processor + slow running case fans + a silent psu (like BitFenix Formula, Corsair RM, ...) + a noise isolating case against coil whine would be the be the foundation for that. I use an old Corsair H90 to cool my i5-5675C, AIO is on the front, my case has one good case fan at the back. Note that the H90 is only quiet when pump speed gets also reduced. With that setup, the noise under load is completely defined by the gpu (a soon to be exchanged RX 570) and the noise of the system on idle vanishes with the ambient noise.

    However, the setup I describe above was loud until I got around to control the fan speeds properly. Turned out the MSI BIOS fanspeed control did not work properly. On top of high minimal speed settings (like 50% for the case fan) it ignored my settings and ran the fans higher than I wanted. That made the system rather load on idle. The solution was to control fanspeed with fan2go: (plus radeon-profile controls the speed of the gpu, making it silent on idle as well.)

    Fan2go is not only nice to use, it also solves the issue the article's author will run into in the future: Those hwmon paths are not stable anymore. It's possible they will work on his hardware if there is only one (or none, as in the thinkpad example using a different system), but otherwise the script will stop working with new kernels after reboots.

  • thinkfan

    The minimalist fan control program

    The second solution on this page probably isn't reliable, because hwmon paths like `hwmon3` depend on module load order.

    That's likely the same reason for the `card*` workaround mentioned above.

    I am using thinkfan for this and it works really well:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts