Laptop fan constantly spinning

Since a few weeks ago, the fans on my laptop will spin constantly even when the temperature is low.

Before that, the fan barely spins up. The fan will spin up when the CPU is more than 50 degrees Celsius for some time. But now, it constantly spins even when CPU is barely reaching 40 degrees Celsius.

If the laptop is left untouched and screen turns off (not sleeping), the fans will stop, but once the screen turns on, the fan will spin up shortly after.

At first, I thought I had misconfigured something, but after a fresh install, it still occurs.

I could not go back to previous kernel version to check from which version the problem occurs because I have already formatted it for the fresh installation.

The laptop is a Dell Inspiron 15 7590, previously on Fedora 36, problem first occurs on Fedora 36, also occurs on fresh installation of Fedora 37 beta

Have you checked the bios version? Is there a newer on on dells webpage?

inxi -Fzxin terminal would be good to see what kind of setup you are using.

Updated to the latest BIOS, but it doesn’t help. I have to install i8kutils from copr to have it control the fans. It’s weird that suddenly this step is needed when previously it wasn’t.

inxi -Fzx:

System:
  Kernel: 5.19.15-301.fc37.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.38-24.fc37 Desktop: GNOME v: 43.0 Distro: Fedora release 37 (Thirty
    Seven)
Machine:
  Type: Laptop System: Dell product: Inspiron 7590 v: N/A
    serial: <superuser required>
  Mobo: Dell model: 0XVN59 v: A00 serial: <superuser required> UEFI: Dell
    v: 1.16.0 date: 09/05/2022
Battery:
  ID-1: BAT0 charge: 91.1 Wh (96.8%) condition: 94.1/97.0 Wh (97.0%)
    volts: 12.9 min: 11.4 model: SMP DELL GPM0365 status: discharging
CPU:
  Info: 6-core model: Intel Core i7-9750H bits: 64 type: MT MCP
    arch: Coffee Lake rev: A cache: L1: 384 KiB L2: 1.5 MiB L3: 12 MiB
  Speed (MHz): avg: 1400 high: 2600 min/max: 800/4500 cores: 1: 800 2: 2600
    3: 800 4: 800 5: 2600 6: 800 7: 2600 8: 800 9: 800 10: 800 11: 2600 12: 800
    bogomips: 62399
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: Intel CoffeeLake-H GT2 [UHD Graphics 630] vendor: Dell
    driver: i915 v: kernel arch: Gen-9.5 bus-ID: 00:02.0
  Device-2: Microdia Integrated_Webcam_HD type: USB driver: uvcvideo
    bus-ID: 1-5:2
  Display: wayland server: X.Org v: 22.1.3 with: Xwayland v: 22.1.3
    compositor: gnome-shell driver: gpu: i915 resolution: 1920x1080~60Hz
  OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa
    22.2.1 direct render: Yes
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Dell driver: snd_hda_intel
    v: kernel bus-ID: 00:1f.3
  Sound Server-1: ALSA v: k5.19.15-301.fc37.x86_64 running: yes
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.59 running: yes
Network:
  Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3
  IF: wlo1 state: up mac: <filter>
  IF-ID-1: pia state: unknown speed: N/A duplex: N/A mac: N/A
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) type: USB
    driver: btusb v: 0.8 bus-ID: 1-14:4
  Report: rfkill ID: hci0 rfk-id: 0 state: up address: see --recommends
Drives:
  Local Storage: total: 942.7 GiB used: 43.65 GiB (4.6%)
  ID-1: /dev/nvme0n1 vendor: SanDisk model: Ultra 3D NVMe size: 465.76 GiB
    temp: 33.9 C
  ID-2: /dev/nvme1n1 vendor: SK Hynix model: BC501 NVMe 512GB
    size: 476.94 GiB temp: 35.9 C
Partition:
  ID-1: / size: 475.34 GiB used: 43.35 GiB (9.1%) fs: btrfs dev: /dev/dm-0
    mapped: luks-77b5a28d-987d-4206-a288-42a60e2d001f
  ID-2: /boot size: 973.4 MiB used: 281.6 MiB (28.9%) fs: ext4
    dev: /dev/nvme1n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 25.7 MiB (4.3%) fs: vfat
    dev: /dev/nvme1n1p1
  ID-4: /home size: 475.34 GiB used: 43.35 GiB (9.1%) fs: btrfs
    dev: /dev/dm-0 mapped: luks-77b5a28d-987d-4206-a288-42a60e2d001f
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 46.0 C pch: 47.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 334 Uptime: 11m Memory: 15.27 GiB used: 3.14 GiB (20.5%)
  Init: systemd target: graphical (5) Compilers: gcc: 12.2.1 Packages: 6
  note: see --rpm Shell: Bash v: 5.2.2 inxi: 3.3.21

When a certain temperature is reached, the fans usually turn on. Is there a temperature at which the fans become more active?

My guess is that some background process does something minor on a regular basis, which raises the temperature just slightly above the threshold, causing the fans to spin up until the temperature drops.

Embedded controller (updated with BIOS updates) decides at what conditions fan works with certain speed (fan curve). It works above/independently from linux, unless you force different fan speed. I see two possibilities:

  1. BIOS update updated fan curve in embedded controller, Dell could restore old behaviour, but probably won’t;
  2. laptop runs hotter, few possible reasons here:
  • radiator or fan vent is somehow blocked and needs cleaning
  • thermal compound dried up and is less effective in transferring heat
  • ambient temperature has increased
  • hardware change increased temperatures (e.g. additional disk)
  • some software change increased temperatures

You can make a fresh install of some older version to rule out software impact or try older kernels from kernel | Package Info | koji with this one-liner Downgrading to a previous kernel version - #8 by ozeszty

I have constantly checked the temps with watch sensors, and the temperature never gets above 43°C. It hovers mostly at around 38°C. Normally the fans don’t spin up until 50+°C.

I’m guessing the BIOS has been updated automatically, but I don’t remember installing it.

The laptop did not run hotter, as I’ve monitored the temps as described in the last comment.

I’ve also tried installing the oldest kernel available for Fedora 37, the problem still persists, so I can confirm it’s not the kernel’s fault.

All in all, the cause is most certainly the BIOS has been updated and I did not realize it. Nevertheless, I have it kinda worked around it with i8kutils, although I cannot turn on Secure Boot if I use it, but it’s not a big deal for me.

I’d try clean F36. Anyway, my post shows possible reasons, you can cross them out one by one.
Dell provides some BIOS changelogs, check them.
With fwupdmgr get-history you can check bios upgrade history, more info about that and downgrade process (you might need to allow it in BIOS) in fwupdmgr -h.