I8kmon(1) Monitor the cpu temperature and fan status on Dell laptops


i8kmon [<options>]


The i8kmon daemon can be used to monitor the cpu temperature and fan status on Dell laptops. The program can be run in background as daemon or under X as an applet which can be swallowed in the gnome panel.

By default the program monitors the cpu temperature but doesn't do any automatic controls of the fan status accordingly to user-defined temperature thresholds because this may not be needed if your laptop does already a good job with fans control. The automatic control can be enabled manually with the --auto option.

The automatic fan control can also be turned on in the control popup menu which is invoked by clicking with the left mouse button on the temperature label. The control menu has three items: Auto, which controls the automatic fan control, Verbose, which prints status on stdout, and Suspend, which closes the /proc/i8kfan file and suspends the daemon to allow unloading the kernel module.

The user interface reports the current cpu temperature in the top box and in the two lower buttons the status of the fans. On systems wiht only one fan the interface shows only one fan button. If a button's background becomes red it means that the corresponding fan has a rotation speed lower than the minimum expected speed and is probably stuck. In this case proding it with a bent paper clip can often cause it to become unstuck.

The fan buttons can also be used to manually control the fan speeds. Clicking on a fan button with the left mouse button will cycle the selected fan between low speed, high speed and off. Clicking with the middle button will set the fan to high speed and clicking with the right button will switch the fan off. Note however that both the BIOS and the daemon have their own idea of what the fan speed should be and can sometimes try to override the manual settings.


The program accepts the following command-line options:

-a, --auto
Monitor cpu temperature and fan status and control automatically the fans.
-na, --noauto
Monitor cpu temperature and fan status but don't control automatically the fans. This is the default setting.
-d, --daemon
Run the program in daemon mode, i.e. without the user interface.
-nd, --nodaemon
Don't run the program in daemon mode, i.e. open the user interface. This is the default setting.
-nc, --nouserconfig
Don't attempt to source the ~/.i8kmon configfile, only /etc/i8kmon.conf.
-v, --verbose
Report hardware status and program actions on stdout.
-g, --geometry <geometry>
Specifies the geometry of the applet window. Geometry should be 24x24, 36x36 or 48x48 to fit the size of the gnome panel.
-t, --timeout <seconds>
Specifies the interval at which the daemon checks the hardware status. Useful values are in the range of 1-5 seconds. Default is 2 seconds.
-u, --unit C|F
Specifies the temperature display unit. Default is C (Celsius). This option affects only the value shown in the applet. All other temperature values are always in Celsius.


The program has builtin defaults and temperature thresholds but users can specify their own settings in configuration files /etc/default/i8kmon and ~/.i8kmon. The daemon defines 4 states with different fan speeds ({0 0}, {1 0}, {1 1}, {2 2}) and for each state are defined the temperature thresholds which cause the switching to a higher or lower state. Furthermore each state can have different thresholds for operation on ac power or battery. For example the following configuration:

set config(0) {{0 0} "-"1 60 "-"1 65}
set config(1) {{1 0} 50 70 55 75}
set config(2) {{1 1} 60 80 65 85}
set config(3) {{2 2} 70 128 75 128}

defines state 0 with both fans off, high threshold of 60 degrees (65 on battery) and low threshold "-"1, which is actually never reached since 0 is the lowest state. When the high threshold is reached the program switches to state 1 (left low, right off) which has a high threshold of 70 degrees and a low threshold of 50 degrees. If the temperature drops below 50 the program will switch back to state 0, if it rises above 70 it will enter state 2, and so on. For better operation the temperature ranges should be overlapping with an hysteresis of at least 10 degrees, i.e. 1={50 70},2={60 80} is better than 1={50 70},2={70 80}. It must be rembered that the low threshold of state 0 must be "-"1 and the high threshold of state 3 must be 128.

If your laptop has only one fan you should specify a '-' instead of the fan speed of the missing fan, for example:

set config(2) {{1 -} 60 80 65 85}

This program can be used by normal users as Gnome panel applet or started as daemon by an init script. Under Debian GNU/Linux it is possible to start the daemon automatically by creating an /etc/default/i8kmon configfile containing the line "set config(daemon) 1". Note the the /etc/default/i8kmon configfile is not installed by the i8kutils package because the program is designed to be run by normal users. If you want to use it as daemon you must create the config file yourself. In this case, the --nouserconfig option can sometimes also help by limiting it to sourcing /etc/i8kmon.conf (and not ~/.i8kmon).




Massimo Dal Zotto <[email protected]>


i8kmon and all the i8kutils programs , scripts and other files are distributed under the GNU General Public License (GPL). On Debian GNU/Linux systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'.


On some Linux distributions i8kmon exits with an error like this:

can't find package Tk

    while executing
"package require Tk"

This is not a bug of i8kmon. It means that Tcl/Tk files are not installed correctly on your system and the Tk library can't be dynamically loaded from Tcl as it should be. In this case you can run i8kmon with the command:

wish /usr/bin/i8kmon -- [options...]