I have installed Ubuntu server 22.04 on an old HP dekstop ~(10-15) years old computer. Before, it was running Windows 7 and the fans were not noisy. But now, the fans are making a lot of noise due to high RPM (~1300 RPM).
I tried to follow multiple answers from the different related topics on this forum with no success. So here what I have done:
- Installed lm_sensors and run
sudo sensors-detect
, and I get the following:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Generated by sensors-detect on Fri Sep 13 08:03:19 2024
# Chip drivers
coretemp
f71882fg
- Reboot
- Running
sensors
command:
sensors
f71858fg-isa-0200
Adapter: ISA adapter
+3.3V: 3.36 V
3VSB: 3.28 V
Vbat: 3.25 V
fan1: 1359 RPM
fan2: 945 RPM
fan3: 0 RPM ALARM
temp1: +33.9°C (high = +70.0°C, hyst = +60.0°C)
temp2: +33.4°C (high = +100.0°C, hyst = +85.0°C)
temp3: +31.9°C (high = +100.0°C, hyst = +85.0°C)
nouveau-pci-0100
Adapter: PCI adapter
GPU core: 900.00 mV (min = +0.88 V, max = +1.08 V)
temp1: +54.0°C (high = +95.0°C, hyst = +3.0°C)
(crit = +105.0°C, hyst = +5.0°C)
(emerg = +135.0°C, hyst = +5.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +34.0°C (high = +80.0°C, crit = +99.0°C)
Core 0: +25.0°C (high = +80.0°C, crit = +99.0°C)
Core 1: +28.0°C (high = +80.0°C, crit = +99.0°C)
Core 2: +19.0°C (high = +80.0°C, crit = +99.0°C)
Core 3: +32.0°C (high = +80.0°C, crit = +99.0°C)
- Run
sudo pwmconfig
# pwmconfig version 3.6.0
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.
We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.
Found the following devices:
hwmon0 is nouveau
hwmon1 is coretemp
hwmon2/device is f71858fg
hwmon3 is hidpp_battery_0
Found the following PWM controls:
hwmon0/pwm1 current value: 13
hwmon2/device/pwm1 current value: 77
hwmon2/device/pwm1 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) y
hwmon2/device/pwm1_enable stuck to 2
Manual control mode not supported, skipping hwmon2/device/pwm1.
hwmon2/device/pwm2 current value: 86
hwmon2/device/pwm2 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) y
hwmon2/device/pwm2_enable stuck to 2
Manual control mode not supported, skipping hwmon2/device/pwm2.
hwmon2/device/pwm3 current value: 102
hwmon2/device/pwm3 is currently setup for automatic speed control.
In general, automatic mode is preferred over manual mode, as
it is more efficient and it reacts faster. Are you sure that
you want to setup this output for manual control? (n) y
hwmon2/device/pwm3_enable stuck to 2
Manual control mode not supported, skipping hwmon2/device/pwm3.
Giving the fans some time to reach full speed...
Found the following fan sensors:
hwmon2/device/fan1_input current speed: 1362 RPM
hwmon2/device/fan2_input current speed: 953 RPM
hwmon2/device/fan3_input current speed: 0 ... skipping!
Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:
Testing pwm control hwmon0/pwm1 ...
hwmon2/device/fan1_input ... speed was 1362 now 1390
no correlation
hwmon2/device/fan2_input ... speed was 953 now 953
no correlation
No correlations were detected.
There is either no fan connected to the output of hwmon0/pwm1,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)
Did you see/hear a fan stopping during the above test (n)? n
Testing is complete.
Please verify that all fans have returned to their normal speed.
The fancontrol script can automatically respond to temperature changes
of your system by changing fanspeeds.
Since the hwmon2/device/pwm1 was set to 2, I tried edit it to 1 to take control over the pwm manually. I tried the following command:
cd /sys/class/hwmon/hwmon2/device/
echo 1 > pwm1_enable
However, I am getting the following error: bash: echo: write error: Invalid argument
Moreover, I have tried to update the driver, but with no success.
Finally, I tried to update the BIOS parameter controlling the fans RPM, but it seems to be read only and the BIOS is so old that I don't understand if I can change the value ...
Anyone help would be appreciated =)
Computer hardware extracted using sudo lshw
:
description: Motherboard
product: 2AB6
vendor: PEGATRON CORPORATION
physical id: 0
version: 1.04
----------------------------
description: BIOS
vendor: AMI
physical id: 0
version: 7.14
date: 05/17/2011
size: 64KiB
capacity: 8MiB
capabilities: pci upgrade shadowing cdboot bootselect socketedrom edd int13floppy1200 int13floppy720 int13floppy2880 int5printscreen int9keyboard int14serial int17printer acpi usb biosbootspecification
----------------------------
description: CPU
product: Intel(R) Core(TM) i5-2310 CPU @ 2.90GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: 6.42.7
slot: CPU 1
size: 1742MHz
capacity: 3800MHz
width: 64 bits
clock: 100MHz
capabilities: lm fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ht tm pbe syscall nx rdtscp x86-64 constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp xsaveopt dtherm ida arat pln pts md_clear flush_l1d cpufreq
configuration: cores=4 enabledcores=1 microcode=47
----------------------------
description: System Memory
physical id: e
slot: System board or motherboard
size: 4GiB
----------------------------
(Comment if you need to know anything else)
sudo dmidecode -t bios
SMBIOS 2.6 present.
Handle 0x0000, DMI type 0, 24 bytes
BIOS Information
Vendor: AMI
Version: 7.14
Release Date: 05/17/2011
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 8 MB
Characteristics:
PCI is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 kB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
ACPI is supported
USB legacy is supported
BIOS boot specification is supported
Targeted content distribution is supported
BIOS Revision: 7.14
Handle 0x0029, DMI type 13, 22 bytes
BIOS Language Information
Language Description Format: Abbreviated
Installable Languages: 12
eng
fra
spa
ger
ita
dan
fin
dut
nor
por
swe
jpn
Currently Installed Language: fra
I manage to come up with the following solution:
Since I can't manually control them, I just change the different control automatic control point to change each pwm, temperature couples.
To find which pwm was associated to which fan, I write 0 on them successively.