dellfand: Dell laptop fan regulator for Linux/Solaris
Author: Lee Wilmot
Latest Version: 0.9, 20071111
Contents
Intro
dellfand is a daemon for regulating the fan on certain
Dell laptops. It requires Linux kernel 2.6.X. It is standalone,
no special kernel module is required. The primary
advantage is being able to browse in total silence (assuming
your laptop's CPU is being throttled correctly).
Since version 0.8 dellfand is also patched for OpenSolaris,
and possibly other Solaris versionz, thanks to Matthias Andreas
Benkard. The Solaris code is totally untested by myself, however.
The software is derived from a utility written for FreeBSD
by
< bofn@irq.org >: see here.
dellfand is GPL software. Share and prosper. The parts
derived from the FreeBSD fan utility (see fan.cc) are
under the author's personal licence (see bofn.licence.txt).
Do not use this software until you have read the
disclaimer.
I recommend you always restart your laptop if you terminate dellfand
because otherwise the BIOS may not take over fan regulation
again and the laptop may then overheat.
Download/Build
dellfand is only available as a source tarball, since the static
build would quickly overwhelm my bandwidth quota.
dellfand-0.9.tar.bz2
Extract with
tar xvf dellfand-0.9.tar.bz2
Build with
cd dellfand-0.9; make
CommandLine Usage
Without arguments, the daemon will print the fan status once
and exit.
Normal usage is:
dellfand mode sleep-seconds off low high
You must run as root. All arguments are mandatory.
- mode
0 - run in the foreground, print stats periodically
1 - run in the background as daemon, no output
- sleep-seconds
dellfand will check the CPU temperature with this
interval and adjust the fan speed according to the last
3 arguments
- off
when the fan is on, turn it off when the temperature
has dropped to this level
- low
turn the fan to low speed when it reaches this temperature
- high
turn the fan to high speed when it reaches this temperature
Info Line
dellfand displays output like this:
Fan 0 Status 1->0 Speed 77640 CPU Temp 29C
Meaning fan 0 is running at 77640rpm, the temperature is 29 degrees celcius
and the fan status has just been changed from 1 to 0 (i.e. the fan is moving
from low speed to off, so the speed will shortly be 0).
Daemon Usage
If your system is compatible, I recommend using the included init
script (etc.init.d.dellfand) for running in daemon mode (which
is the mode you'll probably want after testing the
parameters). Otherwise, you can just start it by setting the mode
argument to 1.
You must run as root.
The init script has a status argument which will
print the process and fan status, and return a value dependent
on whether dellfand is running or not. Of course, you
must amend the script to point at the daemon.
Tested Platforms
I have only tested this software on a Dell Inspiron 6000
with BIOS A09 running Debian on Linux kernel 2.6.18.
I suspect it will work with a large number of other
Dell laptops. The list at the
i8kfan site
is perhaps a good guide.
I have seen reports or been told that dellfand
works with the following laptops:
Inspiron 510m, 1150, 1300, 1520, 4000, 5100, 5150, 6000, 6400, 8600, 9300, 9400/Royal; CS400, C610, D410, D520, D610, D820, e1505, XPS m1210, XPS m1330, Precision M50, Vostro 1500
I have been told that it does not work on:
Vostro 1310, 1510
Please let me know if you have it running succesfully
(or not) elsewhere.
The BIOS in some laptops, with some BIOS versions, is more active than in others. You
may get interference. It could be that reducing the polling delay (e.g. to 0.5 seconds) will
reduce the annoyance caused by this. Currently I know of no other solution.
Disclaimer
This software is provided purely as is.
It's very possible it could ruin your laptop
permanently. I accept no responsibility for
any damage. Even if detecting the CPU temperature
of your laptop correctly, there could be other
components which will deteriorate if the fan is
not left on permanently.
You run this software entirely at your own risk.
Not clear yet ? By runnning this software you are
implicitly exempting me from any responsibility
for any problems it may cause for any party, ever,
anywhere.
Notes
- for safety the daemon will set the fan to low on
interrupt or normal exit if it is not already on.
The fan will remain high if it is high when the daemon
exits.
- I don't recommend terminating the daemon with any signal
other than INT.
- dellfand will only control fan 0, even
if more fans are present, as is the case with some
Dell laptops. I have no value to work off to decide when the
second fan should be running. If you have any ideas
let me know...
- I recommend restarting your laptop if you terminate dellfand
because otherwise the BIOS may not take over fan regulation
again and the laptop may overheat.
Contact The Author
You'll find an email address in the README file of the distribution.
I'm not a Dell laptop BIOS guru, please don't send me
questions about that.