i8kfan settings only last a few seconds

Bug #410596 reported by Marcel S
78
This bug affects 15 people
Affects Status Importance Assigned to Milestone
Linux Mint
New
Undecided
Unassigned
i8kutils
Won't Fix
Undecided
Unassigned

Bug Description

Binary package hint: i8kutils

I am using Ubuntu 9.04 on a Dell Latititude D830 laptop and the fan is permanently spinning. I can turn it off using i8kfan but after one or two seconds it starts spinning again.

See also: http://ubuntuforums.org/showthread.php?t=1208554

Revision history for this message
Cableless (james-cable) wrote :

I would like to confirm this bug on a Dell Inspiron XPS M1310 running jaunty.

Revision history for this message
David Turner (dwt) wrote :

This affects me as well.

I am running Jaunty on an XPS M1710.

Revision history for this message
Krzysztof Janowicz (janowicz) wrote :

same here using a dell e6400

Revision history for this message
BradVW (bdv111) wrote :

in 10.04 I also have a problem with persistance - the fan comes on for a couple of seconds, shuts off, then back on again.

Revision history for this message
Sam Washburn (sam-samwashburn) wrote :

I have a work around which I can confirm works on my Latitude E5500.

1. Download the i8kutils *source* package with: cd ; sudo source i8kutils
2. In the created directory build the smm tool with: make smm
3. To turn off bios taking control of fans run: sudo ./smm 30a3
4. You'll need to do this every time you restart, so put it in a startup script somewhere.

That's it, but if you want to re-enable bios control of the fans, run: sudo ./smm 31a3

I'll copy this notice about the smm tool from smm.c:

 * WARNING!!! READ CAREFULLY BEFORE USING THIS PROGRAM!!!
 *
 * THIS PROGRAM IS VERY DANGEROUS. IT CAN CRASH YOUR COMPUTER, DESTROY DATA
 * ON THE HARDISK, CORRUPT THE BIOS, PHYSICALLY DAMAGE YOUR HARDWARE AND
 * MAKE YOUR COMPUTER TOTALLY UNUSABLE.
 *
 * DON'T USE THIS PROGRAM UNLESS YOU REALLY KNOW WHAT YOU ARE DOING. I WILL
 * NOT BE RESPONSIBLE FOR ANY DIRECT OR INDIRECT DAMAGE CAUSED BY USING THIS
 * PROGRAM.

Revision history for this message
david.barbion (david-barbion) wrote :

Hi,

Sam's trick is working for me (Dell Latitude E5420)
I'm running Natty on x86_64 and I did specify some options to compile smm: gcc -g -O2 -Wall -I. -o smm -m32 -march=i386 smm.c

sudo ./smm 30a3 # turns off BIOS fan control

i8kmon now can control the fan. BTW here my /etc/i8kmon.conf:
set config(0) {{0 0} -1 60 -1 65}
set config(1) {{1 1} 55 70 58 75}
set config(2) {{1 2} 60 80 65 85}
set config(3) {{2 3} 70 128 75 128}

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in i8kutils (Ubuntu):
status: New → Confirmed
vitorafsr (vitorafsr)
affects: i8kutils (Ubuntu) → i8kutils
Revision history for this message
mr_pyer (john-diny) wrote :

Hi, 2 years later...

So can you explain how run sudo ./smm 30a3 ?
I'm realy not an expert !!

I installed libsmbios2 but I don't know what to do now ?
What is the command I have to run in my shell ?

Thanks you !

Revision history for this message
LeetMiniWheat (white-phoenix) wrote :

@mr_pyer:
you need to download the i8kutils source package, then compile smm with "make smm" or if you're on 64bit "gcc -m32 -o smm smm.c" then you can run the ./smm command after it's compiled to turn off BIOS control of the fan.

Also I noticed on my Dell Vostro 1400, the first fan number is null, always returns -1 and the second number is the actual fan so I had to modify the config like this:
set config(0) {{-1 0} -1 60 -1 65}
set config(1) {{-1 1} 55 70 58 75}
set config(2) {{-1 2} 60 80 65 85}

your mileage may vary depending on laptop model.

Revision history for this message
LeetMiniWheat (white-phoenix) wrote :

Also in case this helps anyone, for the daemon to function and read /etc/i8kmon.conf and control the fan automatically with your specified values you need to add --auto to the arguments in /etc/init.d/i8kmon
I8KMON_ARGS="--daemon --nouserconfig --auto"

Revision history for this message
vitorafsr (vitorafsr) wrote :

For sure, for daemon to function automatically, one option is add "--auto" to I8KMON_ARGS. But another option is to put "set config(auto) 1" on "/etc/i8kmon.conf" or "~/.i8kmon".

Revision history for this message
Carl (n6rl) wrote :

I had the exact same behaviour on a Dell Latitude E7440.

I managed to get the workaround working (compiling smm from the i8k source, calling it to disable BIOS fan control which was fighting with the fan speed set by i8k).

Here's what I did:

Downloaded the i8k source:
$ apt-get source i8kutils

Installed some packages I needed for the compilation:
$ sudo apt-get build-dep i8kutils

Compiled with the -m32 option since I'm on a 64-bit system:
$ gcc -g -O2 -Wall -I. -o smm -m32 smm.c

Ran smm with the suggested command to disable BIOS fan control:
$ sudo ./smm 30a3

After that, nothing is fighting the fan speed I'm setting with i8k. Works perfectly.

(Just too bad that you can only set off and two fixed fan speeds. I believe however Dell is to blame for that.)

Revision history for this message
BryanFRitt (bryanfritt) wrote :

compiling smm didn't work for me at first, had to install 'gcc-4.6-multilib'.

without 'gcc-4.6-multilib'
gcc -g -O2 -Wall -I. -o smm -m32 smm.c
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

the command `gcc -g -O2 -Wall -I. -o smm -m32 smm.c` followed by a `sudo ./smm 30a3` worked(or at least seams to work LOL) after a `sudo apt-get install gcc-4.6-multilib`
---
# http://www.ubuntuask.com/q/answers-cpu-fan-kicks-in-to-full-gear-when-i-try-to-install-ubuntu-12-10-or-lts-265696.html
# in your i8kutils source directory
# To disable BIOS control:
# `sudo ./smm 30a3`
# To reenable BIOS control:
# `sudo ./smm 31a3`
---
To set a specific speed from the command line run
`sudo invoke-rc.d i8kmon stop`
then
`i8kctl fan 2 2`
or what ever fan speeds you want (don't overheat anything)
to go back to auto
`sudo invoke-rc.d i8kmon start`
start or restart is probably ok

Note: These directions assume you have a good setup of /etc/i8kmon.conf, ~/.i8kmon, /etc/default/i8kmon, etc... to go with this.

P.S. don't let anything get overheated...

Revision history for this message
BryanFRitt (bryanfritt) wrote :

Make sure you have at most one `i8kmon` running at a time.
shows up as something running like:
tclsh /usr/bin/i8kmon -- --daemon --nouserconfig

Alan Pater (alan-pater)
Changed in i8kutils:
status: Confirmed → Incomplete
Revision history for this message
Benedict (bela83) wrote :

Thank you BryanFRitt for comment #13, I also had to install gcc-4.6-multilib to compile smm properly.

Revision history for this message
Benedict (bela83) wrote :

What is the best option for a startup script with this commands :
sudo ./smm 30a3
sudo service i8kmon stop
sudo service i8kmon start
?

As I don't want to store my password in plain text in the script...

Thanks for any tip.

Revision history for this message
sillyxone (sillyxone) wrote :

Got the same problem on E7440. While "smm 30a3" does disable SMM from controlling the fan, it also causes a few side-effects:
- power button stops working (instead of bringing up the options to suspend, restart, ...)
- the brightness buttons (Fn-Up and Fn-Down) stop working
- the wireless switch, when turned back on, doesn't re-enable wireless
- suspend works, but resume is not stable. Sometimes the laptop would resume to being very slow (perhaps SMM thinks that the fan died thus scaling the CPU down to minimum), or it would resume OK then become slow a while later.

As for automating this, I copied "smm" to /usr/sbin, then modified /etc/init.d/i8kmon by adding "/usr/sbin/smm 30a3" to right below the "start)" line. Later on, I put "smm 31a3" right below the "stop)" line (just experimenting), and found that after resuming, the power button, brightness buttons, and wireless switch work normally while the fan is still being controlled by i8kmon. However, the CPU down-scaling still happens once in a while.

I also have an E6440 but it doesn't have this problem, the fan is controlled correctly by SMM, runs pretty slow even while in BIOS. Dell should do something about the E7440 I think.

Revision history for this message
Benedict (bela83) wrote :

@sillyxone: Very useful feedback, and thanks for the automation tips.

Revision history for this message
TenLeftFingers (tenleftfingers) wrote :

The fix described above does no change the outcome for me on a Dell Inspiron 1535 with Ubuntu 14.04.

Changing to "Confirmed" as no-one has expressed what, if any, information this report needs in order to move forward.

Changed in i8kutils:
status: Incomplete → Confirmed
Revision history for this message
Andrey (coderusinbox) wrote :

Fix also not working on Dell N5110. smm not disabling bios fan control.

Revision history for this message
vitorafsr (vitorafsr) wrote :

"sudo ./smm 30a3" is the command to try to disable BIOS from controlling fan. If it does not work, there is no other command to try.

Remembering Dell did not contribute to this project so there is no clear documentation about how to disable BIOS fan control over all Dell notebook models.

Changed in i8kutils:
status: Confirmed → Won't Fix
Revision history for this message
nicklaus (nicklaus) wrote :

The solution (for me, inspiron 9400) is on https://github.com/vitorafsr/i8kutils

Add "dell-smm-hwmon" to /etc/modules
and verify you have "options dell-smm-hwmon restricted=0" in /etc/modprobe.d/dell-smm-hwmon.conf

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.