CPU fan noise

Hi
My laptop running Tumbleweed is not quite 1 year old. It is a HP Pavilion 15 8th Generation Quad Core CPU. About 2 months ago the fan started to run quite fast and noisy. I attributed this to the hot summer (southern hemisphere) temperatures and I checked occasionally the CPU temperature with the sensors command. It reached between 40 and 50 degrees. But for the last few days the fan is getting quite fast and noisy. It is not so hot any more and the CPU temperature is around 31 or 32 degrees. I emailed the company where I received this laptop from and they told me since I installed Linux I should check the software which runs the fan. I thought that this is run by firmware or may be BIOS? Can anyone of you clever guys tell me what software normally is running the fan and possibly how I can check this?
Thank you in advance.

Malcolm is probably the best one to answer here, but meanwhile it may be worth installing sensors…
https://www.ostechnix.com/view-cpu-temperature-linux/

A useful guide…
https://wiki.archlinux.org/index.php/Fan_speed_control

Also, your graphics hardware/driver details may also be relevant

inxi -Gxx

or at least

/usr/sbin/hwinfo -gfxcard

Review this thread as well…
https://forums.opensuse.org/showthread.php/526487-High-CPU-load-and-High-Fan-Speed

You could check that there aren’t any runaway processes overcycling the CPU in the background that you aren’t aware of with top.
There could also be a physical cause.
It could be the case that the fan has become clogged with dust over time and is therefore not functioning efficiently.
You could also try blasting it with compressed air to see if that improves the situation.

Thank you, deano_ferrari for these links. I had sensors already installed (hence the temp reading of 31 to 32 degrees in my first post) and I have Intel Graphics (picked a laptop with Intel graphics because there are too many threats here about nvidia!)

sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +33.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +32.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +33.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +32.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +33.0°C  (high = +100.0°C, crit = +100.0°C)

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +29.5°C  

iwlwifi-virtual-0
Adapter: Virtual device
temp1:        +26.0°C  

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +34.0°C

Further I monitor with the top command the CPU load but it is normally under 20-30%.
I ran sensors detect (as root) and in the end it came up with

.....
Now follows a summary of the probes I have just done.
Just press ENTER to continue: 

Driver `coretemp':
  * Chip `Intel digital thermal sensor' (confidence: 9)

Do you want to overwrite /etc/sysconfig/lm_sensors? (YES/no): 
Unloading i2c-dev... OK
Unloading cpuid... OK

Just wait and see if that changed anything. In the meantime I read through this article on fan speed control from ArchLinux…

And thank you FrankyU2 I have checked that there is not much dust.

No problem, hope you get it sorted out.

Good. That article also explains how you you can control the fans via /etc/fancontrol configuration.
Fan speed control - ArchWiki
Let us know how you get on.

I am just monitoring the situation with 2 console windows - one shows the results of the “top” command (CPU load) and the other shows “watch sensors” the CPU temperature in real time (every 2 seconds). THis morning the fan sped up and started getting noisy when the CPU temperature was only 28 degrees, later it slowed down when the temperature was up at 35 degrees. I don’t understand how the fan is controlled.
The problem with the article from ArchLinux is that it relates to pwmconfig and I get the result:

pwmconfig
......
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

Further the is reference to /etc/fancontrol which does not exist here. The search for “fan*” didn’t bring any results.
Maybe someone here knows what software is controlling the fan and how the relevant files are called?

I just came across that fancontrol.service is disabled - nevertheless something seems to control the fan

linux-4skc:~ # updatedb
linux-4skc:~ # locate fan*
linux-4skc:~ # systemctl list-unit-files | grep fan
fancontrol.service                                               disabled       
linux-4skc:~ # systemctl status fancontrol.service 
● fancontrol.service - Start fan control, if configured
   Loaded: loaded (/usr/lib/systemd/system/fancontrol.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Apr 03 11:23:04 linux-4skc systemd[1]: /usr/lib/systemd/system/fancontrol.service:7: PIDFile= references pat>
Apr 03 11:24:51 linux-4skc systemd[1]: /usr/lib/systemd/system/fancontrol.service:7: PIDFile= references pat>
linux-4skc:~ # 

Is it safe to enable this fancontrol.service? Why didn’t locate find this file - I mad sure updatdb was run before?

Re. locate: don’t use wildcards, rather grep on the results.

Thank you, Knurpht, I should have known this - locate looks for the pattern anyway. However I am still hoping for someone to give me some answers on the other questions:
Is it safe to enable this fancontrol.service? What else can I do - the fan seems now to cut in often when the core temperature of the CPU is at 27 to 28 degrees, and at other times it is around or over 35 degrees and it is not cutting in.

pwmconfig
......
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed

and in case that is needed:

linux-4skc:~ # locate fan
lib/modules/5.0.2-1-default/kernel/drivers/acpi/fan.ko
/lib/modules/5.0.2-1-default/kernel/drivers/hwmon/mlxreg-fan.ko
/lib/modules/5.0.2-1-default/kernel/drivers/hwmon/npcm750-pwm-fan.ko
/lib/modules/5.0.2-1-default/kernel/drivers/platform/x86/gpd-pocket-fan.ko
/lib/modules/5.0.3-1-default/kernel/drivers/acpi/fan.ko
/lib/modules/5.0.3-1-default/kernel/drivers/hwmon/mlxreg-fan.ko
/lib/modules/5.0.3-1-default/kernel/drivers/hwmon/npcm750-pwm-fan.ko
/lib/modules/5.0.3-1-default/kernel/drivers/platform/x86/gpd-pocket-fan.ko
/usr/lib/perl5/vendor_perl/5.28.1/x86_64-linux-thread-multi/linux/fanotify.ph
/usr/lib/perl5/vendor_perl/5.28.1/x86_64-linux-thread-multi/sys/fanotify.ph
/usr/lib/systemd/system/fancontrol.service
/usr/sbin/fancontrol
/usr/sbin/rcfancontrol
/usr/share/doc/packages/netpbm/doc/pamtris_fan.png
/usr/share/doc/packages/python2-psutil/scripts/fans.py
/usr/share/doc/packages/sensors/fan-divisors
/usr/share/doc/packages/sensors/fancontrol.txt
/usr/share/man/man2/fanotify_init.2.gz
/usr/share/man/man2/fanotify_mark.2.gz
/usr/share/man/man7/fanotify.7.gz
/usr/share/man/man8/fancontrol.8.gz
/usr/share/vim/vim81/syntax/fan.vim
/var/lib/systemd/migrated/fancontrol

Hi
You might want to try some acpi_osi options in grub kernel options (YaST->bootloader);

https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txt

Also browse the log to look for any acpi errors…


journalctl -b

You could also look at not using intel_pstate driver, but would suggest the above two steps first.

I tried to start fancontrol.service with the following result:

linux-4skc:~ # systemctl start fancontrol.service 
linux-4skc:~ # systemctl status fancontrol.service 
● fancontrol.service - Start fan control, if configured
   Loaded: loaded (/usr/lib/systemd/system/fancontrol.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Apr 04 11:10:44 linux-4skc systemd[1]: /usr/lib/systemd/system/fancontrol.service:7: PIDFile= references path below legacy directory /var/run/, updating /var/run/fancontrol.pid → /run/fancontrol.pid; please update the unit file accordingly.
....
Apr 04 11:11:11 linux-4skc systemd[1]: Condition check resulted in Start fan control, if configured being skipped.
......
linux-4skc:~ # 

The lines with … were repeating the other 2 messages. What is meant by updating /var/run/fancontrol.pid → /run/fancontrol.pid; please update the unit file accordingly.? There is neither in /run nor in /var/run the file fancontrol.pid.

Thank you malcolmlewis - our posts have crossed - I will look into it and report back

@malcolmlewis
I had a look at the acpi documentation but I am at a loss what acpi_osi option would be appropriate. I must say I understand very little of this documentation - I am not an IT person.
I tried the following but cannot see anything which will help me further:

linux-4skc:~ # journalctl -b | grep acpi
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
Apr 04 08:07:43 linux-4skc kernel: acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
Apr 04 08:07:43 linux-4skc kernel: acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
Apr 04 08:07:43 linux-4skc kernel: acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR]
Apr 04 08:07:43 linux-4skc kernel: acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
Apr 04 08:07:43 linux-4skc kernel: clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
Apr 04 08:07:43 linux-4skc kernel: acpi device:12: hash matches
linux-4skc:~ # 

You wrote about not using the “not using intel_pstate driver” - in the post that crossed I cannot see this driver but the …-fan.ko drivers?

Hi
Try adding;


acpi_osi=!

What is the output from the following command (as root user);


cpupower frequency-info

Thank you malcolmlewis. I have added the acpi_osi=! and now the command

linux-4skc:~ # journalctl -b | grep acpi
Apr 04 14:52:25 linux-4skc kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3 acpi_osi=! splash=silent quiet showopts
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3 acpi_osi=! splash=silent quiet showopts
Apr 04 14:52:25 linux-4skc kernel: acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
Apr 04 14:52:25 linux-4skc kernel: acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI]
Apr 04 14:52:25 linux-4skc kernel: acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR]
Apr 04 14:52:25 linux-4skc kernel: acpi PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS configuration
Apr 04 14:52:25 linux-4skc kernel: clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
Apr 04 14:52:25 linux-4skc dracut-cmdline[266]: Using kernel command line parameters: resume=UUID=04950094-cd8e-421f-b63d-7ba755b17b67 root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac rootfstype=ext4 rootflags=rw,relatime BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3 acpi_osi=! splash=silent quiet showopts
Apr 04 14:52:26 linux-4skc kernel: acpi device:15: registered as cooling_device8
Apr 04 14:52:28 linux-4skc systemd[1]: Starting Load/Save Screen Backlight Brightness of backlight:acpi_video0...
Apr 04 14:52:28 linux-4skc systemd[1]: Started Load/Save Screen Backlight Brightness of backlight:acpi_video0.
linux-4skc:~ # 

I highlighted this in the boot image line in red. The command output of:

linux-4skc:~ # cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 400 MHz - 4.00 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 400 MHz and 4.00 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 900 MHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
linux-4skc:~ # 

By the way - the fan was running at high speed (cpu tem. 33 degrees) and continued so during reboot and is now still running high even though the cpu cooled down to 29/30 degrees.
Cheers

On Thu 04 Apr 2019 02:06:04 AM CDT, fuerstu wrote:

Thank you malcolmlewis. I have added the acpi_osi=! and now the command

Code:

linux-4skc:~ # journalctl -b | grep acpi
Apr 04 14:52:25 linux-4skc kernel: Command line:
BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default
root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac
resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3
acpi_osi=! splash=silent quiet showopts Apr 04 14:52:25 linux-4skc
kernel: ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) Apr 04
14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x02] high edge
lint[0x1]) Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI
(acpi_id[0x03] high edge lint[0x1]) Apr 04 14:52:25 linux-4skc kernel:
ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1]) Apr 04 14:52:25
linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI (acpi_id[0x06] high
edge lint[0x1]) Apr 04 14:52:25 linux-4skc kernel: ACPI: LAPIC_NMI
(acpi_id[0x07] high edge lint[0x1]) Apr 04 14:52:25 linux-4skc kernel:
ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1]) Apr 04 14:52:25
linux-4skc kernel: Kernel command line:
BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default
root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac
resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3
acpi_osi=! splash=silent quiet showopts Apr 04 14:52:25 linux-4skc
kernel: acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 Apr
04 14:52:25 linux-4skc kernel: acpi PNP0A08:00: _OSC: OS supports
[ExtendedConfig ASPM ClockPM Segments MSI] Apr 04 14:52:25 linux-4skc
kernel: acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug SHPCHotplug
PME AER PCIeCapability LTR] Apr 04 14:52:25 linux-4skc kernel: acpi
PNP0A08:00: FADT indicates ASPM is unsupported, using BIOS
configuration Apr 04 14:52:25 linux-4skc kernel: clocksource: acpi_pm:
mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns Apr 04
14:52:25 linux-4skc dracut-cmdline[266]: Using kernel command line
parameters: resume=UUID=04950094-cd8e-421f-b63d-7ba755b17b67
root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac rootfstype=ext4
rootflags=rw,relatime BOOT_IMAGE=/boot/vmlinuz-5.0.3-1-default
root=UUID=5e72aed7-50c1-44b3-93b3-fb097175e0ac
resume=/dev/disk/by-id/ata-Samsung_SSD_860_EVO_500GB_S3YANB0K300461Z-part3
acpi_osi=! splash=silent quiet showopts Apr 04 14:52:26 linux-4skc
kernel: acpi device:15: registered as cooling_device8 Apr 04 14:52:28
linux-4skc systemd[1]: Starting Load/Save Screen Backlight Brightness
of backlight:acpi_video0… Apr 04 14:52:28 linux-4skc systemd[1]:
Started Load/Save Screen Backlight Brightness of backlight:acpi_video0.
linux-4skc:~ # --------------------

I highlighted this in the boot image line in red. The command output of:

Code:

linux-4skc:~ # cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: Cannot determine or is not supported.
hardware limits: 400 MHz - 4.00 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 4.00 GHz.
The governor “powersave” may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 900 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
linux-4skc:~ #


By the way - the fan was running at high speed (cpu tem. 33 degrees) and
continued so during reboot and is now still running high even though the
cpu cooled down to 29/30 degrees.
Cheers

Hi
So if you try pwmconfig, does that work now?


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
SLED - 15 | GNOME Shell 3.26.2 | 4.12.14-25.28-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

linux-4skc:~ # pwmconfig
.....
/usr/sbin/pwmconfig: There are no pwm-capable sensor modules installed
linux-4skc:~ # 

Unfortunately no

Is there anyone out there who can give me advice how to control the fan speed if pwmconfig cannot fine any pwm-capable sensor modules?

I’m not sure that you can control your fans using the fancontol.service. The sensors output you shared earlier in the thread didn’t show any ‘fanx’ devices present.