Dell laptop fan very noisy in Ubuntu 16.04

I have installed Ubuntu 16.04 on my Dell Inspiron N5110 and I like it a lot. But the problem is that the fan started to behave crazy. It is working almost always making it impossible to focus on anything I am doing. Many times when it is idle, it starts to go on and off in very short period of time (few seconds). I saw that many other users of Dell had similar problems with previous editions of Ubuntu and I tried to follow the solutions, but until now, none has worked to some significant extent. I check the temperature of the CPU and is usually 45-55 degrees Celsius, which is not too much.

So, I am asking is there any workaround to this?


There are few variations of N5110.

If you have one with Intel Graphic + Nvidia card, then Nvidia is heating up your laptop. Solution is to install Nvidia drivers which are offered in "Additional Drivers". I am using "version 367.57 from nvidia-367". Once installed open up "NVIDIA X server settings" application; go to "PRIME profiles" and select "Intel (Power saving mode)". Click "Quit", then Logout and Login again or just reboot. Laptop should run silently after that.

If you have one with radeon graphic card, then instructions above does not apply.


Have you tried the i8kutils solution?

1) Install i8ktuils:

sudo apt-get install i8kutils

2) Add i8k line into /etc/modules:

sudo nano /etc/modules

and add a new line containing just:

i8k

3) Make sure the module is loaded at startup.

sudo nano /etc/modprobe.d/options.conf

and add a new line containing:

options i8k force=1

4) Reboot and run the following command:

sudo modprobe i8k force=1

5) Create a configuration file (There is none in a clean system. Please, mind that prior to 12.04 the file had no .conf extension and this «feature» may get changed back in any later release):

sudo nano /etc/i8kmon.conf

Enter the following lines:

# Run as daemon, override with --daemon option
set config(daemon) 0

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

# Report status on stdout, override with --verbose option
set config(verbose) 1

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

# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
set config(0) {{-1 0} -1 55 -1 55}
set config(1) {{-1 1} 55 70 55 70}
set config(3) {{-1 2} 70 128 70 128}

# For computer with 2 fans, use a variant of this instead:
# Temperature thresholds: {fan_speeds low_ac high_ac low_batt high_batt}
# set config(0) {{-1 0} -1 52 -1 65}
# set config(1) {{-1 1} 41 66 55 75}
# set config(2) {{-1 1} 55 80 65 85}
# set config(3) {{-1 2} 70 128 75 128}

6) Make sure there is /etc/default/i8kmon file and that it contains a line reading ENABLED=1

7) Make sure there is /etc/default/i8buttons file and that it contains a line reading ENABLED=1

8) If all the previous steps did not help, the versions of the «tk8.X» and «tcl8.X» libraries installed may be too old. The following commands worked for me, but I remember the 8.5 versions were installed manually by me instead of 8.4 some time ago. Hence, there may be 8.4, not the 8.5 versions in your system still:

sudo apt-get remove tk8.5 tcl8.5
sudo apt-get install tk8.6 tcl8.6
sudo apt-get install i8kutils

9) You may have to repeat editing /etc/default/i8buttons (please, see clause 7).

10) Reboot