Breezed is a small daemon to control the speed of the fan, depending on the current temperature of the computer. I have tested it only on a Thinkpad X61s. * INSTALLATION You can install it simply by running as root ./install.sh and de-install it with ./remove.sh You must have a configuration file in /etc/breezed.conf. Only one is currently provided in the archive, and it corresponds to the settings _I_ picked for _my_ Lenovo X61s. I have no idea if these settings are safe on this laptop (I guess so, since I have been using them for a few months now and it works perfectly), and I suspect they are not safe for another laptop. * ALGORITHM Breezed scans the temperatures every 5s and sets the fan speed according to a series of thresholds. Unfortunately, if the fan speed is set directly according to these temperature thresholds, it creates oscillations: The fan goes up, temperature goes down, hence fan goes down, temperature goes up, etc. To mitigate such phenomenons, the daemon waits at least 30s after the last change before reducing the fan speed, and the actual thresholds to decrease the fan speed are two degrees below the provided thresholds, which are used when increasing the fan speed. This creates a stability area of two degrees, which seems to be enough. Please let me know if you have problem with the resulting overall behavior. * ARGUMENTS The breezed executable can read a configuration file (which is /etc/breezed.conf by default, but that you can specify with --configuration-file ) or get the various parameters on the command line. The thermal files can be specified either with the --thermal-files options on the command line or the thermal_files keyword in the configuration file. The provided value should be a comma-separated list of filenames. When it want to pool the temperature, the daemon will read those files and compute the maximum integer value they contains. The fan file can be specified with either --fan-file or the fan_file keyword. The specified file will be used by the daemon to control the fan speed by writing "level n" into it. The temperature thresholds can be specified either with the --temperature-thresholds argument, or with the temperature_thresholds keyword in the configuration file. The provided value should be a comma separated list of integers. The first one is actually ignored and forced to -1. Each value states which temperature should trigger the given level. For instance, my X61s has 8 fan levels, from 0 to 7. The thresholds I picked are -1,52,54,56,58,60,62,64. Hence, when the temperature reaches 52C, the fan is set to level 1, when it reached 54C it is set to level 2, etc. The maximum speed level 7 is chosen for any temperature equal or greater than 64C. As said above, the temperature to decrease the speed has to be two degrees below the provided thresholds. Hence, the temperature of my X61s has to go down to 50C (52C - 2) for the fan to switch off. Also, the daemon waits at least 30s before reducing the speed of the fan. * NOTES I wrote this daemon for my personal usage on a X61s, and using it may damage your hardware. On Thinkpads you have to allow the module thinkpad_acpi to set the fan speed, which is not allowed by default in Debian. To do so, you have to have a file /etc/modprobe.d/thinkpad_acpi.modprobe containing ---------------------------- snip snip ------------------------------- options thinkpad_acpi fan_control=1 ---------------------------- snip snip ------------------------------- -- Francois Fleuret (francois@fleuret.org) December 2008