# Tip: setting fan temp thresholds on Dell laptops with i8kmon

## Strips

Hi.

I always thougt my Dell Inspiron 8600 was a bit hot in linux compared to windows. I didn't like this very much. I was running i8kmon in default settings.

So I found you can set the temprature thresholds for the fans with i8kmon. 

```
man i8kmon
```

 says you can add a config file: /etc/i8kmon

I adjusted the default values to what I found reasonable. So my laptop stays much cooler now. I do not recomend setting any thresholds higher than default values.

Here is my modified config file:

```

# Sample i8kmon configuration file (/etc/i8kmon, ~/.i8kmon).

# Kernel I8K status file

set config(proc_i8k)   /proc/i8k

# Kernel APM status file

set config(proc_apm)   /proc/apm

# Kernel ACPI status file

set config(proc_acpi)   /proc/acpi/ac_adapter/0/status

# External program to control the fans

set config(i8kfan)   /usr/bin/i8kfan

# Applet geometry, override with --geometry option

set config(geometry)   {}

# Run as daemon, override with --daemon option

set config(daemon)   0

# Automatic fan control, override with --noauto option

set config(auto)   1

# Report status on stdout, override with --verbose option

set config(verbose)   0

# Status check timeout (seconds), override with --timeout option

set config(timeout)   5

# Temperature display unit (C/F), override with --unit option

set config(unit)   C

# Temperature threshold at which the temperature is displayed in red

set config(t_high)   80

# Minimum expected fan speed

set config(min_speed)   2000

# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}

set config(0)   {{0 0}  -1  60  -1  60}

set config(1)   {{0 1}  55  65  55  65}

set config(2)   {{1 1}  60  70  60  70}

set config(3)   {{2 2}  65 128  65 128}

# <-  40  45  50  55  60  65  70  75  ->

# 0--------------------0

#                 1--------1

#                      2-------2

#                         3------------3

# end of file

```

The numbers in the {} brackets are the speed levels of the two fans. the first number is for the GPU fan and the second is the CPU fan. I don't know if this is different on other dells.

There is one thing I'm a bit uncertain about. I think the temp reading is for the CPU, so when should the GPU fan kick in? Is it OK to start the GPU fan after the CPU fan or am I taking a risk and runnning it to hot?

Someone?

Regards

Stian H. Larssen

----------

## teedog

I, too, have noticed that my Dell 8600 CPU runs a lot hotter in Linux than in Windows.  Using i8kfanGUI and SpeedswitchXP in Windows, I keep my CPU temp between 35-45.

Thanks for the tip.  I'll try this later.  Hope it works with my Dothon CPU.

----------

## Sargon

 *teedog wrote:*   

> I, too, have noticed that my Dell 8600 CPU runs a lot hotter in Linux than in Windows.  Using i8kfanGUI and SpeedswitchXP in Windows, I keep my CPU temp between 35-45.
> 
> Thanks for the tip.  I'll try this later.  Hope it works with my Dothon CPU.

 

I have a Dell 8600c laptop with a Centrino 1.7GHz and have the very same problem... under Windows it's between 35-45 degree when doing nothing. (no fans running) Under Linux, the temperature is at least 55 degree, also when idling. And it definitely feels hotter than under WIndows too.

Under Windows, the CPU is running at about 200 MHz while idling, under Linux it's about 600. Sure, that's a difference, but it can't really explain a difference of 20 degree... (and yes, I'm talking about Celsius here  :Wink: 

I had to replace the CPU fan of my system after only 3 weeks of using the system and I fear that it's possible that the heat was the problem. (hardly dare to boot Linux anymore  :Wink: 

Could it be that the i8k stuff on 8600 systems is just not working correctly at the moment? Afterall the module has to be loaded by force since the laptop is not officially supported.. maybe there's a reason for it?  :Wink: 

Sargon

----------

## seppe

Nice, but I can't load the i8k module. 

```

Helios linux # modprobe i8k        

FATAL: Module i8k not found.

Helios linux # modprobe i8k force=1

FATAL: Module i8k not found

```

I looked for i8k.o, and it seems that it's present in my /usr/src/linux/drivers/char/ directory, so I tried this:

```

Helios char # insmod i8k.o force=1

insmod: error inserting 'i8k.o': -1 Invalid module format

```

Hmm, what should I do now?  :Sad: 

Obviously, I have emerged i8kutils and I have Dell support enabled in my kernel.

----------

## seppe

*bump*

no one ?

----------

## dtor

Fully linked module would be called i8k.ko, since you only see i8k.o it must be built-in.

----------

## Strips

 *seppe wrote:*   

> Nice, but I can't load the i8k module. 
> 
> ```
> 
> Helios linux # modprobe i8k        
> ...

 

A late reply  :Smile: 

modprobe i8k force=1 should do it.

the dell support in kernel must be compiled as module, not built in. Else I haven't found a way to force it in. 

with the i8kmon config file you can set whatever temperature you wan't. So there is no need to run it hotter in linux than in windows.

Centrino har a lowest speed of 600MHz. With volt stepping you get the lowest powerratio. It might be you can save a minute or two by setting it below 600... BUT if you're able to do lower than 600 I don't know if the volt stepping is on..!?!

----------

## planet-admin

I've emerged i8kutils, but I cannot find the kernel module anywhere, nor does there seem to be an option in the kernel config, that I've yet to find, where/how can I compile the kernel module?

Michael

----------

## Taglia

Do someone knows how to place the module in /etc/modules.autoload/kernel2.6 but tell also to force it? (force=1)

----------

## Strips

 *Taglia wrote:*   

> Do someone knows how to place the module in /etc/modules.autoload/kernel2.6 but tell also to force it? (force=1)

 

just write "i8k force=1"

Just where in the kernel it is placed I don't remember. But its been there in all the kernels I've compiled since I got a dell. That means 2.4.(something) and 2.6.0 to 2.6.10.

----------

## Mustang-Speed

Hi,

I have dell support in kernel compiled as module, not built in. Modprobe i8k seem to load ok.

But now I have the following error. 

Mustang linux # /etc/init.d/i8k start

 * The i8k driver is not installed

What do I do now.

----------

## mel_82

same problem:

```

gentoo_dell linux # find /lib/modules/2.6.10-gentoo-r6/build/ -iname "*.ko" -or -iname "*.o" | grep i8k

/lib/modules/2.6.10-gentoo-r6/build/drivers/char/i8k.o

```

So  I have  it installed as module, and that's my actual kernel, so it should work..

```
gentoo_dell linux # modprobe i8k force=1

FATAL: Module i8k not found.

gentoo_dell linux # insmod i8k force=1

insmod: can't read 'i8k': No such file or directory

gentoo_dell linux # insmod /lib/modules/2.6.10-gentoo-r6/build/drivers/char/i8k.o -force=1

insmod: error inserting '/lib/modules/2.6.10-gentoo-r6/build/drivers/char/i8k.o': -1 Invalid module format

```

As you can see.. There's no way..

Why?

----------

## Parabola

 *mel_82 wrote:*   

> same problem:
> 
> ```
> 
> gentoo_dell linux # find /lib/modules/2.6.10-gentoo-r6/build/ -iname "*.ko" -or -iname "*.o" | grep i8k
> ...

 

Sorry for the late response; I just saw this.

Having i8k.o is not sufficient and it shouldn't be in the build directory.

It should be here:  /lib/modules/*kernel_version*/kernel/drivers/char/i8k.ko

----------

