6

I'm using Linux Mint 14 Cinnamon 64-bit. I have a problem with the laptop fan always staying on. Details of the laptop and readings taken:

Linux core-Inspiron-N7010 3.5.0-17-generic #28-Ubuntu SMP
    Tue Oct 9 19:31:23 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

Sensors 
    acpitz-virtual-0 Adapter: Virtual device
    temp1:        +26.8°C  (crit = +100.0°C)
    temp2:         +0.0°C  (crit = +100.0°C)

radeon-pci-0200
Adapter: PCI adapter
temp1:        +75.5°C 

coretemp-isa-0000
Adapter: ISA adapter
Core 0:       +54.0°C  (high = +95.0°C, crit = +105.0°C)
Core 2:       +52.0°C  (high = +95.0°C, crit = +105.0°C)

inxi -Fc 0

System:    Host: core-Inspiron-N7010 
Kernel: 3.5.0-17-generic x86_64 (64 bit)
Desktop: Gnome Distro: Linux Mint 14 Nadia
Machine:
    Mobo: Dell model: 0PJTXT version: A11 serial: .24XCSN1.CN486430B30123.
    Bios: Dell version: A11 date: 03/31/2011
CPU:
    Dual core Intel Core i5 CPU M 460 (-HT-MCP-)
    cache: 3072 KB
    flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx)
       Clock Speeds: 
           1: 1199.00 MHz 2: 1199.00 MHz 
           3: 1199.00 MHz 4: 1199.00 MHz
       Graphics:
           Card: Advanced Micro Devices [AMD] nee ATI Manhattan 
               [Mobility Radeon HD 5400 Series]
           X.org: 1.13.0 drivers: ati,radeon (unloaded: fbdev,vesa)
                tty size: 197x48 Advanced Data: N/A for root
       Audio:     
           Card-1: Intel 5 Series/3400 Series Chipset
                 High Definition Audio driver: snd_hda_intel 
                 Sound: ALSA ver: 1.0.25
           Card-2: Advanced Micro Devices [AMD] nee ATI Cedar HDMI Audio 
                [Radeon HD 5400/6300 Series] driver: snd_hda_intel
       Network:
           Card-1: Atheros AR8152 v1.1 Fast Ethernet 
               driver: atl1c
               IF: eth0 state: down mac: f0:4d:a2:57:71:f4
           Card-2: Broadcom BCM4313 802.11b/g/n Wireless LAN Controller
               driver: bcma-pci-bridge
               IF: wlan0 state: up mac: 1c:65:9d:7c:e8:5e
       Drives:    HDD Total Size: 128.0GB (3.2% used) 1: 
           id: /dev/sda model: SAMSUNG_SSD_830 size: 128.0GB
               Partition: 
                   ID: / size: 110G used: 3.8G (4%) fs: ext4 
                   ID: swap-1 size: 8.44GB used: 0.00GB (0%) fs: swap
       RAID:      No RAID devices detected - 
           /proc/mdstat and md_mod kernel raid module present
       Sensors:   System Temperatures: cpu: 26.8C mobo: 0.0C gpu: 76.0
       Fan Speeds (in rpm): cpu: N/A
       Info:      Processes: 162 Uptime: 17 min 
           Memory: 915.1/7847.5MB Client: Shell inxi: 1.8.4
1
  • Is that a problem? The fan should always be ON, unless you want your CPU toasted(?) (I am open to corrections) Perhaps you mean, the fan runs faster when Linux Mint 14.
    – WikiWitz
    Jan 12, 2013 at 14:57

8 Answers 8

4

I see you're on a Dell Inspiron laptop.

You'll most likely be able to solve your problem with running i8kutils (as already suggested by at least one answerer) along with a trick to disable BIOS fan control. For completeness, I'll include some general notes on fan control on Dell laptops, and full instructions for i8kutils.

(dellfand is older than i8kutils, which is still maintained and well-documented, hence ì8kutils is my suggestion.)

What probably won't work on Dell laptops

Two common and straight-forward means of controlling the fan on laptops are through ACPI and through PWM pins, however, unfortunately:

  • Dell laptops lacks ACPI fan control capability (*1)

    • as a consequence, trying with ACPI boot parameters and the like will fail
  • Dell Latitude laptops, and possibly also the Inspiron, as far as I know lack pwm controllable fans (*2)

    • as a consequence, the fancontrol/pwmconfig program won't work

Use i8kutils

The package called i8kutils that is written to control the fan on Dell Inspiron laptops through SMM BIOS. Several users report success on their Dell Laitude laptops as well (I'm one of them, on a Dell Latitude E7440) - however, a trick is often needed to get rid of interfering BIOS fan control.

Install i8kutils:

$ sudo apt-get install i8kutils

Try it:

$ i8kfan 2 2     # set to max speed
$ i8kfan 0 0     # set to 0 speed

...and listen to see if it works.

Disable BIOS fan control

If it works, but somewthing else is fighting back on the setted speed (reported by many users on Dell Latitude laptops), this is due to 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

Download 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/

Compile smm if on a 32-bit system:

$ make

(Above will execute gcc -g -O2 -Wall -I. -o smm smm.c.)

Compile smm if on a 64-bit system:

$ gcc -g -O2 -Wall -I. -o smm -m32 smm.c

Run 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.


*1: I've seen an official source on this, can't find it right now. If you want to verify that your hardware lacks it, follow instructions 'DebuggingACPI' on Ubuntu Wiki (I'm not allowed to provide the link).

*2: for verifying this, run pwmconfig: sudo apt-get install fancontrol, sudo pwm-config will tell if a pwm-capable fan is present or not

3

Since it is a i5 processor and you have Mobility Radeon HD 5400 Series graphics card. Which means, you have dual graphics card. Radeon graphic driver is not good in Linux. Either you have to install AMD catalyst driver or completely shutdown the AMD card.

Both have their own benefits e.g AMD obviously good for gaming, I am not sure how good is Radeon HD 5400 compared to at least intel hd 3000 (sandy bridge) or intel hd 4000 (ivy bridge). And Intel cards give longer battery life and run cooler, while being able to play some games (even TF2 on steam).

The fan I am guessing is the graphics card (AMD's) fan running. Check if it is so with following command.

$ sudo su -
# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

First login as root in terminal and then turn off secondary card. If after some time fan turns off.

You can either copy this command to /etc/rc.local (before exit 0) and turn off AMD before boot. Or if you plan to install AMD driver instead of intel then follow these two links.

https://wiki.ubuntu.com/Valve

http://ubuntuforums.org/showthread.php?t=1930450

Note: In case of dual graphics situation just by installing catalyst driver from first link above it might not work. For that you might want to have xorg.conf at /etc/X11 directory. If aticonfig does not create such file you might copy it from second link.

However you might want to set the appropriate port number for AMD card in xorg.conf using following command

$ lspci | grep VGA

Note: If you plan to use both, currently they don't work as expected. E.g Catalyst driver does not support the latest xserver drivers.

You might be able to switch using catalyst driver between integrated intel card and discrete AMD cards, but you will lose intel card's 3D performance because of bug in catalyst driver. With AMD cards however you might get better performance in gaming and Fan will run comparatively cooler than it currently does. Though you will not have as longer battery life in laptop as having intel cards.

0

Two major steps:

  1. Figure out if the drivers for the obvious components support power management under linux. Can cpu and fans be sped up or down based on temperature; can hardware be switched off to save power?
    Power management requires dedicated driver support for every component. It's not a single thing.

  2. Find out which services/processes keep your laptop busy, so you can decide if you want to disable them. Try Intel's Powertop for linux to see which device keeps your laptop busy.

0

Do you have the proprietary drivers for your graphics card installed? I don't think the default ones do much in the way of power and fan management.

1
  • Why is that relevant? The graphics drivers should have nothing to do with the CPU fan.
    – terdon
    Jan 12, 2013 at 15:39
0

There is a specific module that controls Dell fans, i8k. Make sure that it is installed and loaded:

sudo apt-get install i8kutils 
sudo modprobe i8k

If it is not already there, add i8k to /etc/modules:

sudo echo "i8k" >> /etc/modules

There is also a nifty little program to control Dell fans called dellfand. It's site (http://dellfand.dinglisch.net/) seems to be down so I have uploaded the copy I have here. It might be worth a try.


Another thing that may be causing your fan to be always on is CPU scaling. Most modern systems scale the CPU frequency according to the current need. On Linux systems, this is controlled by the "cpu governor". If that is set to "ondemand", then the CPU frequency will be scaled up/down in response to the current load of the server. If it is set to "performance" the CPU will always run at the highest possible frequency, causing more heat and making it necessary for the fan to be constantly on to control the temperature.

You can check which governor is set with this command:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Available options are:

  • Performance
  • Powersave
  • Userspace
  • Ondemand
  • Conservative

You can find more information about each of them here.

To set the "ondemand" governor, do this:

sudo echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
0

I have a core i5 + AMD graphics and have this issue. Tried installing AMD proprietary drivers without success as well as some solutions on the net.

At this moment without the proprietary drivers, I found a (messy) workaround: Turn on the Laptop and let it boot (Fan stays full ON) Hibernate (to disk) and then wake the PC.

Fan behaves correctly: Scales up/down depending on cpu/graphics use.

0

In regards to the fan always being on: I have a sony vaio with MINT 14 installed. My solution was to go into the bios setup and turn off discrete graphics card. leading me to believe that the drivers for the graphics card are the culprit.

0

On my Dell Inspiron 5548 I have had to add "acpi_osi=Linux" to the Grub configuration so SpeedStep could kick in and the CPU frequency adjusted. This way the fans are not at maximum speed anymore.

You must log in to answer this question.