breezed is a daemon to adjust the fan speed according to the computer temperature. It should be started through the adequate systemd configuration or script in /etc/rc?.d.
Every 5s, breezed gathers all integer values from the thermal files, and takes the max as the overall temperature T. It then computes the highest fan speed whose temperature threshold is lower than T. If that speed is above the current speed, the daemon changes the fan speed accordingly. Otherwise it computes the lowest fan speed whose temperature threshold is two degrees above T, and sets the fan speed one level below. This two degree gap avoids too many oscillations. Also, the daemon waits for at least 30s after any change of the fan speed before reducing it. The fan speed is set by writing "level <speed_name>" into the specified fan file. The speed name is the level itself if no alternative is provided with the temperature threshold.
Options can not be specified twice, neither on the command line nor in the configuration file.
The configuration file is a succession of lines, each starting with one of the three keywords thermal_files, fan_file or temperature_thresholds, followed by the same parameter values as for the command line arguments. The default configuration file is located at /etc/breezed.conf
If a configuration file exists, the standard way to start breezed is to run it without arguments.
Starting it with all the arguments on the commande line can be done for instance with
breezed --no-configuration-file \ --thermal-files /proc/acpi/thermal_zone/THM0/temperature,/proc/acpi/thermal_zone/THM1/temperature \ --fan-file /proc/acpi/ibm/fan \ --temperature-thresholds 52,54,56,58,60,62,64,68:full-speed which specifies that when the temperature raises above 52C, the fan level should be 1, when the temperature raises above 54C it should be 2, etc. The maximum speed level 8 should be chosen for temperatures above 68C, and its name is "full-speed" (since no other speed name is provided, the other ones are the default level names, hence their numerical value). Due to the two degrees gap between the thresholds to increase and the thresholds to decrease the temperature, it will for instance remains at speed 1 until the temperature goes down to 50C. Because it takes into account all the values found in the thermal files, you can use as well /proc/acpi/thermal_zone/THM?/temperature or /proc/acpi/ibm/thermal.
Written by Francois Fleuret <firstname.lastname@example.org>. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU GPL.