You apparently have problem with overheating, about which some of the answers give some hints. Once the heat problem is solved, you might well find your fan still spinning too fast and causing noise.
As already suggested, use
i8kutils. Many Dell users however will require a trick to disable the BIOS fan control. If you can set the fan speed with
ì8kctl, but find that the new speed is fought back by something else, you need to apply this trick to disable the BIOS fan control.
Disable BIOS fan control
Something fighting back on the setted speed (reported by many users on Dell Latitude laptops) is caused by scheduled SMM sessions setting the fan speed back. Luckily there is a way to disable BIOS fan control by writing to SMM registers.
Warning: see the warning in top of smm.c. This method will write to SMM registers. However, I've seen no user reports on this causing trouble. Also, all reports on trying this have indicated success in disabling the BIOS fan control.
i8kutils includes the source of a program
smm but the
i8kutils package does not include the compiled binary. What we'll do is to download the source code of
i8kutils, compile the program
smm, and run it with an apropriate argument to disable BIOS fan control by writing to SMM registers.
Download packages needed for building:
$ sudo apt-get build-dep i8kutils
i8kutils source code, extract and enter directory (exact names depending on i8k version):
$ apt-get source i8kutils
$ tar xvf i8kutils_1.33.tar.gz
$ cd i8kutils-1.33/
smm if on a 32-bit system:
(Above will execute
gcc -g -O2 -Wall -I. -o smm smm.c.)
smm if on a 64-bit system:
$ gcc -g -O2 -Wall -I. -o smm -m32 smm.c
smm with argument
30a3 to disable SMM fan control:
$ sudo ./smm 30a3
Now, BIOS fan control should be disabled. Try by setting speeds with
i8kctl, listen for the fan and make sure the speed persists.
Note: This is a setting that will persist reboots and power-off's. BIOS fan control can be enabled again with
$ sudo ./smm 31a3.