Temperature Control on Dell Latitude E7440 under Ubuntu 14.04.2 LTS

I collect many informations how to control the fans under ubuntu now. Here is what works for me at the moment.

Problems:

1st Problem: Without additional fan-control tool my Dell Latitude E7440 runs quiet until a special temeperature and then speeds up the fan to full speed forever.

2nd Problem:With i8kmon installed and the service started, the fan-control lasts only a few seconds and is then controled again from BIOS.

3rd Problem: With fan-control tool i8kmon installed with default settings my Latitude runs very quiet the whole time. But because dell has a CPU-Throttling-Policy which you are not able to control, the Latitude runs until a special temperature and then the BIOS scales down the CPU to the minimum frequency. The result is a freezing Desktop until the temperature cools down to a ridiculously low point at about 45°C.

Solutions:

1st: Install i8kutils and lm-sensors
sudo apt-get install i8kutils lm-sensors

2nd: Disable BIOS-Fan-Control (Without Warranty)
sudo apt-get install gcc-4.6-multilib
(on 16.04 I need to change the above line to „sudo apt-get install gcc-multilib„)
cd ~
mkdir .bin
cd .bin
sudo apt-get source i8kutils
sudo apt-get build-dep i8kutils
tar xf i8kutils_1.41.tar.xz
cd i8kutils-1.41
gcc -g -O2 -Wall -I. -o smm -m32 smm.c
sudo ./smm 30a3
sudo cp smm /usr/sbin/

In the next step, we setup i8kmon to stop the bios-fan-control automatically
sudo nano /etc/init.d/i8kmon

Find the following:
case „$1″ in
    start)
            log_daemon_msg „Starting $DESC“ „$NAME“

And change it into:
case „$1″ in
    start)
        /usr/sbin/smm 30a3
            log_daemon_msg „Starting $DESC“ „$NAME“

In the same file find the following:
stop)
        log_daemon_msg „Stopping $DESC“ „$NAME“

And change it into:
stop)
        /usr/sbin/smm 31a3
        log_daemon_msg „Stopping $DESC“ „$NAME“

This will disable Bios-Fan-Control directly while starting i8kmon. And enable it while shutting down the service i8kmon.

3rd: To prevent scaling down the CPU edit the configuration of i8kmon
find the example-file i8kmon.conf
sudo find / -name ‚i8kmon.conf‘

In my case i find the file in my user-home: /home/rod/.bin/i8kutils-1.41/i8kmon.conf
Now copy the file to /etc/i8kmon.conf. Change your directoryname!
cp /home/rod/.bin/i8kutils-1.41/i8kmon.conf /etc/

Modify the file with nano:
sudo nano /etc/i8kmon.conf

Change to the following:

# Automatic fan control, override with –auto option
set config(auto)        1

# Automatic fan control, override with –auto option
set config(auto)        1

set config(0)  {{-1 0}  -1  30  -1  30}
set config(1)  {{-1 0}  30  50  30  50}
set config(2)  {{-1 1}  45  60  45  60}
set config(3)  {{-1 2}  55 128  55 128}

# end of file

The last block in this file controls the fan-speed based on temperatures. Here is how to read the block:
{{ -1 0} -1 30 -1 30}
{{ first_fan_speed second_fan_speed} low_temp_on_ac high_temp_on_ac low_temp_on_bat high_temp_on_bat}

Because the Dell Latitude has no first fan, we can setup the first fan always to „-1″

The temperatures are the first test now. I will Update this post after gathering some experience.

Ein Gedanke zu „Temperature Control on Dell Latitude E7440 under Ubuntu 14.04.2 LTS

  1. carlos

    Hi i am from brazilian and very bad english .

    I have 1 vostro 1510 , i install ubuntu 15.10 , after i install i8kutils (1.60) 1 have problens (freezes) , for my solution is :

    IN FILE : /etc/i8kmon.conf
    # Run as daemon, override with –daemon option
    set config(daemon) 1
    # Automatic fan control, override with –auto option
    set config(auto) 0
    # Status check timeout (seconds), override with –timeout option
    set config(timeout) 2
    # Report status on stdout, override with –verbose option
    set config(verbose) 1
    # Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
    set config(0) {{-1 0} -1 50 -1 50}
    set config(1) {{-1 1} 50 70 50 70}
    set config(3) {{-1 2} 70 128 70 128}
    # end of file

    AND IN FILE : /etc/init.d/i8kmon

    I change line for : I8KMON_ARGS to :
    I8KMON_ARGS=“–daemon –noauto –nouserconfig “

    after have a flag –auto , for my causes freezes (i understain , automode try detect , but a moment to change values for fan , try change into fan 2 , and i no have 2 fan , i have 1 )

    note : my notebook have 1 fan not 2 , i found others peoples inform same problem in autodiscovery for i8kmon
    note 2 : if possible , try inform for this project to try create a check is possible fix auto detection for others models if have 1 fan .

    thx

    Antworten

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

zwei × vier =

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>