I don't think you need to control fan speed, actually fan should not make much sound even at high speeds.
If you look at the output of sensors
command for my dual-core computer and compare it with yours, you'll find that the fan speed your computer is using is keeping your processors cool, which is important.In my case the processor temp are high but fan speed is low.
Adapter: ISA adapter
Core 0: +74.0°C (high = +76.0°C, crit = +100.0°C)
Core 1: +67.0°C (high = +76.0°C, crit = +100.0°C)
w83627dhg-isa-0a10
Adapter: ISA adapter
Vcore: +1.10 V (min = +0.00 V, max = +1.74 V)
in1: +1.26 V (min = +0.05 V, max = +0.23 V) ALARM
AVCC: +3.36 V (min = +2.98 V, max = +3.63 V)
+3.3V: +3.38 V (min = +2.98 V, max = +3.63 V)
in4: +1.26 V (min = +0.02 V, max = +0.36 V) ALARM
in5: +0.78 V (min = +1.16 V, max = +1.86 V) ALARM
in6: +0.88 V (min = +0.28 V, max = +0.02 V) ALARM
3VSB: +3.39 V (min = +2.98 V, max = +3.63 V)
Vbat: +3.31 V (min = +2.70 V, max = +3.30 V) ALARM
fan1: 0 RPM (min = 405 RPM, div = 128) ALARM
fan2: 1110 RPM (min = 6490 RPM, div = 8) ALARM
fan3: 0 RPM (min = 1054 RPM, div = 128) ALARM
fan4: 0 RPM (min = 10546 RPM, div = 128) ALARM
fan5: 0 RPM (min = 10546 RPM, div = 128) ALARM
temp1: +38.0°C (high = +64.0°C, hyst = -43.0°C) sensor = thermistor
temp2: +58.0°C (high = +80.0°C, hyst = +75.0°C) sensor = diode
temp3: +42.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
cpu0_vid: +0.000 V
intrusion0: ALARM
aditya@aditya-desktop:~$
I'll suggest you to check if the hardware installation of fans is correct(either yourself or from some expert). The sound should vanish by little bit tweaking.If it doesn't work then you may consider decreasing the fan speed by using fancontrol
WARNING
Please be careful when using the fan control features of your mainboard, in addition to the risk of burning your CPU, at higher temperatures there will be a higher wearout of your other hardware components, too. So if you plan to use these components in 50 years, maybe you shouldn't use fancontrol at all. Also please keep in mind most fans aren't designed to be powered by a PWMed voltage.
In practice it doesn't seem to be a major issue, the fans will get slightly warmer, just be sure to have a temperature alarm and/or shutdown call, in case some fan fails, because you probably won't hear it anymore ;)
How to use Fancontrol
First install fancontrol
sudo apt-get install fancontrol
Use pwmconfig, an script to manage fancontrol
pwmconfig
Now follow the instructions to configure your fan speed.
Start out by man fancontrol
to get a feel for what variables can be used in /etc/fancontrol
. You will need the following when building the config: INTERVAL, FCTEMPS, FCFANS, MINTEMP, MAXTEMP, MINSTART, MINSTOP.
# Checks the temperature every 10 seconds.
INTERVAL=10
# Maps a fan to a temp sensor, each separated by a space
FCTEMPS=fanpath=temppath fanpath2=temppath2
# Maps a fan to the fan speed sensor
FCFANS=fanpath=fanspeedpath fanpath2=fanspeedpath2
# The temperature below which the fan gets switched to minimum speed.
MINTEMP=fanpath=degreesC fanpath2=degreesC2
# The temperature over which the fan gets switched to maximum speed.
MAXTEMP=fanpath=degreesC fanpath2=degreesC2
# Sets the minimum speed at which the fan begins spinning.
MINSTART=fanpath=minspeed fanpath2=minspeed2
#The minimum speed at which the fan still spins.
MINSTOP=fanpath=minspeed fanpath2=minspeed2
Actual Sample:
INTERVAL=10
FCTEMPS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=/sys/devices/platform/coretemp.0/hwmon/hwmon[[:print:]]*/temp3_input
FCFANS=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan5_input /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/fan4_input /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=
MINTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=55 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=50 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=55
MAXTEMP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=60 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=60 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=60
MINSTART=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=70 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=70 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=70
MINSTOP=/sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm5=90 /sys/devices/platform/nct6775.656/hwmon/hwmon[[:print:]]*/pwm4=90 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon[[:print:]]*/pwm1=90
The [[:print:]] represent the hwmon number. You can use the actual number or the [[:print:]], sometimes the number changes between boots and the [[:print:]] allows it to find the correct hwmon number.
The issue will be FCFANS, whether fan1_input has valid data, and if not, whether fancontrol will continue to work without that.
Alternatively, you could attempt to write your own script that would set the value of hwmon2/pwm1, it ranges between 0 and 255.
Best Answer
I partially solved the problem using i8kutils. Here's a guide about it:
Keenformatics - How to solve Dell laptops fan issues in Ubuntu
and a discussion here on askubuntu:
Dell Inspiron 5521 i7-3317U Fan CPU too Noisy
Here are the main steps as written on Keenformatics site (my blog).
How To solve Dell laptops fan issues in Ubuntu
First of all, let's download and install i8kutils. Open your terminal and write:
sudo apt-get install i8kutils
Now you've got to add i8k to your modules. Open the modules file:
sudo gedit /etc/modules
and add the string "i8k" (without quotes) to the file. Save and exit.
Create an
i8k.conf
filesudo vim /etc/modprobe.d/i8k.conf
and fill it with this code:
options i8k force=1
Note: Some older guides will tell you to create a /modprobe.d/options file. The "options" file isn't used anymore on Ubuntu. What does matter is that you create a file with a .conf extension (the filename isn't important, but I decided to name it i8k.conf for clarity). So beware of older i8kmon configuration guides.
Now restart your computer, or run this code to make i8k run:
sudo modprobe i8k force=1
We will now create a i8kmon.conf file which will tell the i8kmon utility how to behave.
sudo gedit /etc/i8kmon.conf
Paste the following code in it:
This has been edited to match my Dell Inspiron 15r 5521 fan configuration (and I hope I did it well). If you want more informations take a look at the documentation on Ubuntu Manuals: http://manpages.ubuntu.com/manpages/gutsy/man1/i8kmon.1.html
Now you should be able to run i8kmon from your terminal and see if (and how) it's working. Simply run:
i8kmon
Finished!