Get your laptop fans working on a Dell Inspiron 1420

If you have run a Debian-based distro, such as Ubuntu, and then openSUSE on your Dell Inspiron 1420 (or 1420n, and this may also work on a 1520 and 1720 or others) you will have noticed much less fan activity than you see with those distros. In my case, the temperature when using openSUSE can build up enough for the laptop to overheat and cause SUSE to kill KDE.

I think that the reason for this is the incorporation of i8kutils in those distributions. This allows control of custom hardware on certain Inspiron models. It relies on the i8k kernel driver. If

cat /proc/i8k

returns information, then you should be fine to install i8kutils. If not, as root

modprobe i8k

And if you need to get this module to load on boot, open yast=>system=/etc/syconfig editor
go to System=>Kernel=>MODULES_LOADED_ON_BOOT

and add “i8k” (without the quotation marks).

To install i8kutils, go to:
Index of /~dz/i8k

Download the tarball and make sure you have tk, tcl, and wish installed. After unpacking, install is a simple

make

followed by (as root)

make install

There are many ways to use i8k, which are (unclearly) noted in the included documentation. Supposedly it is supposed to monitor temperature and automatically turn on the fans if you start i8kmon in a shell (as a normal user):

i8kmon

However, that hasn’t done anything for me that I’ve noticed. Fans didn’t come on anyway. So, I use the more direct method of using

i8kctl fan 2 2 &

The fan has three levels, off, 1, and 2 (2 being the highest speed). So this is saying turn on left and right fans to high. The and just places this process in the background. The included file i8kmon.1 includes some clues as to syntax and options for this utility. As for myself, I just placed the above command in a bash script, which I made executable, and put it in ~/.kde4/Autostart so that fans would come on automatically when I log in with my main user account.

There may be better ways to get this to work, or better ways of invoking i8kutils, which I would love to hear.

I found an easy way to get fan support on my Dell Inspiron 6400 laptop is to use the dellfan deamon, dellfand.

[From the page]
I have seen reports or been told that dellfand works with the following laptops: Inspiron 1300, 1520, 5100, 5150, 6000, 6400, 8600, 9300, 9400/Royal; CS400, D410, D520, D610, D820, e1505, XPS m1210, XPS m1330, Precision M50, Vostro 1500 I have been told that it does not work on:
*Vostro 1510
*
[/From the page]

After putting the supplied init.d script in /etc/init.d, and configuring my runtime services via YAST to include dellfand, I also put the following script in my /etc/default/ folder to keep the cpu at an acceptable temperature (to prolong life):
filename: dellfand, location: /etc/default


SLEEP_TIME="1"
FAN_OFF="35"
FAN_LOW="45"
FAN_HIGH="65"

One thing I noticed about dellfand in the documentation is that it can’t control both fans if the laptop has two, just one of them. It seems like tinkering with powersave is the best route overall, so when I get some time to do this, I’ll see if fan control can be set up more automatically that way.

Applying the latest BIOS update via FirmwareUpdateKit solved my fan issues such that I no longer need to use i8k.