# How to enable active cooling mechanism on Dell 700m ?

## bookstack

Hello, everyone.

I've been taking almost 4 hours to find a way to figure out how to control the fan speed of my Dell 700m.

I have made the following methord:

1. Update the BIOS to A04.

2. Modify DSDT to get rid of the error/warning with iasl.

3. Build the i8k module, and modprobe it to the kernel.

So far, I still does not has anything under the /proc/acpi/fan/.

i8k could not provide information on fan speed:

```

$ cat /proc/i8k

1.0 A04 J2KQL51 58 -22 0 -22 0 -1 -22

```

The output the misc acpi:

```

# cat /proc/acpi/thermal_zone/THRC/cooling_mode 

<setting not supported>

cooling mode:   passive

 # cat /proc/acpi/thermal_zone/THRS/cooling_mode 

<setting not supported>

cooling mode:   passive

# echo -n "95:90:45:40:45" > /proc/acpi/thermal_zone/THRS/trip_points

# cat /proc/acpi/thermal_zone/THRS/trip_points 

critical (S5):           95 C

passive:                 45 C: tc1=2 tc2=5 tsp=300 devices=0xdffe3f20

```

I have to work on the keyboard for almost 10 hours a day. I would like to low down the temperature of this machine.

Otherwise, I might buy a keyborad for it, -- looks quite dumb,  :Crying or Very sad: 

Any ideas ?

----------

## adsmith

modprobe fan?

----------

## bookstack

fan is compiled into the kernel already.

----------

## plac3bo

I'm curious if there has been any advances in fan control for the 700m?

I don't have anything in my /proc/acpi/fan either.

----------

## btlee

I have the same notebook.

I use i8kutils which you can find in portage.

This utility supports a temporature monitoring and fan control.

With the utility and torsmo, I could control the fan.

Here is my code which can be called by torsmo.

```

#!/bin/bash

temp=`i8kctl temp`

sulim=60

ulim=58

dlim=50

if [ $temp -ge $sulim ]; then

    i8kctl fan - 2 > /dev/null 2>&1

elif [ $temp -ge $ulim ]; then  fanstatus=`i8kctl fan | tail -c 3`

    i8kctl fan - 1 > /dev/null 2>&1 

else

    if [ ! $fanstatus -eq 0 ]; then

        i8kctl fan - 0 > /dev/null 2>&1

    fi

fi

```

Helps!

----------

## scylding

btlee, could you maybe give a little more detail on how you configured torsmo to call that script you wrote? I've got a 700m that I'm trying to get the cooling to work a little better on, and I'm afraid I'm still not real strong on the programming side of Linux. I've got torsmo and i8kutils emerged and working, but the fan doesn't come up in torsmo and the CPU temp shows up as 0 degrees celsius.

----------

## btlee

 *scylding wrote:*   

> btlee, could you maybe give a little more detail on how you configured torsmo to call that script you wrote? I've got a 700m that I'm trying to get the cooling to work a little better on, and I'm afraid I'm still not real strong on the programming side of Linux. I've got torsmo and i8kutils emerged and working, but the fan doesn't come up in torsmo and the CPU temp shows up as 0 degrees celsius.

 

You must modify torsmorc file to run the above script.

Under the 'TEXT' line, append the following line.

```
${exec fan.sh}
```

or

```
${execi 12 fan.sh}
```

The former code makes the script run with a period of torsmo, and the latter code makes the script run every 12 seconds.

And you should modify my code.

Basically, I set it up to suppress the working of fan, because I like the quiet environment.

For the aggressive policy for the fan, you shoud change the number of ulim and sulim, which are the thresholds for the starting of the fan.

Specifically, sulim is the threshold for strong fan, ulim the thrshold for weak fan, and dlim the threshold for the stop of the fan.

By the way, how do you confirm the temporature of your 700m?

I guess now that you are using i2c temp, right?

In my case, I know the temperature from refering the ${acpitemp}, and it works fine.

----------

## scylding

 *Quote:*   

> By the way, how do you confirm the temporature of your 700m?
> 
> In my case, I know the temperature from refering the ${acpitemp}, and it works fine.

 

I have been using two apps to monitor the temp so far, gkrellm2 and wmacpiload-ac. They're both showing similar numbers. (51 and 50 right now, respectively.) I hadn't known about ${acpitemp}. I'll have to try that. Is that something I have to emerge, or a system file?

 *Quote:*   

> I guess now that you are using i2c temp, right?

 

Yes, I just compiled a kernel with i2c support, and I think that's what gkrellm is using 'cuz it didn't see my temps before. I want to use lm_sensors with i2c to get more control, but I can't figure out what my sensor chip is and when I run sensor-detect I get "no sensors found" .

Also, I compiled the fan module into my kernel (instead of as a module) and it doesn't load.  I get an error message during bootup telling me "fan"  didn't install.  I have never gotten any program ( and I've tried 4 or 5 of them) to find any data on my fans.

BTW, thanks for your help with the script, btlee. I'm going to try this tonight. I guess I'm trying to do the  opposite of what you were doing--I want my fans to run more, because my cpu runs hotter under gentoo than under WINXP. But with no data on the fans, I'm not sure I can get it done.

----------

## btlee

 *scylding wrote:*   

>  *Quote:*   By the way, how do you confirm the temporature of your 700m?
> 
> In my case, I know the temperature from refering the ${acpitemp}, and it works fine. 
> 
> I have been using two apps to monitor the temp so far, gkrellm2 and wmacpiload-ac. They're both showing similar numbers. (51 and 50 right now, respectively.) I hadn't known about ${acpitemp}. I'll have to try that. Is that something I have to emerge, or a system file?
> ...

 

I think that if you compiled the acpi in the kernel, you have no more package to install.

Well.. I assumed that you have installed acpid.

Actually, I tried as you wanted. I changed dlim, ulim and sulim to 40, 45, and 50, respectively, and it was great.

The temperature of my laptop dropped to 40 celcius degree since the fan had worked.

Good Luck

----------

## scylding

 *Quote:*   

> 
> 
> I think that if you compiled the acpi in the kernel, you have no more package to install.
> 
> Well.. I assumed that you have installed acpid.
> ...

 

Yes, acpi is compiled in my kernel. but there's nothing in my /proc/acpi/fan directory. But I don't have acpid installed. I wasn't aware that I needed it. All this is pretty new to me.

I didn't get to play with the script last night as I had hoped. But this morning I found a gkrellm plugin which seems to do the same thing. It's called i8krellm, and it shows left and right  fans as animations. You can set high, low, and off trigger temps in the configuration, or you can click on the plugin to switch to manual mode, in which fan states are changed by clicking on their animations. It works off of i8kfan. I supposed it probably does the same thing as your script. I've been playing with it and it seems to control my fans effectively. My temps are in the mid to high 40's now, which is much better. :Very Happy: 

----------

## bookstack

I could not remember what I have got from i8kctl, exactly.

But I am sure, the temperature is OK, while the fan status is not correct.

btlee, could you run 

```
$ cat /proc/i8k
```

and put the result here ?

----------

## btlee

 *bookstack wrote:*   

> I could not remember what I have got from i8kctl, exactly.
> 
> But I am sure, the temperature is OK, while the fan status is not correct.
> 
> btlee, could you run 
> ...

 

Now, my laptop is unavailable because I am in office.  :Smile: 

As i remember, i8k status has infomations about two fans.

Because 700m has only one fan, 

one of them is not appropriate for dell 700m, but the other shows the fan status correctly.

Refer my simple script for your fan control.

Best,

----------

