Overheating Laptop and fan stopped working after switching from windows 11 to cachy os (niri)

I feel my laptop is overheating after switching to cachy os from windows and even at high temp fan isnt turning on.
my laptop info

@ This is ai genarted reply . You can avoid this reply if you want to - Lenovo relies heavily on proprietary ACPI drivers and firmware-level fan curves in Windows that don’t always translate perfectly to the Linux kernel out of the box.

Lenovo IdeaPads have a hardware-level “Intelligent Cooling” feature that dictates fan behavior, which can sometimes get stuck in a “Quiet/Passive” state when booting into Linux.

  • Press Fn + Q on your keyboard. This hardware shortcut cycles through power modes (Battery Saver, Intelligent Cooling, Extreme Performance). Try toggling this to see if the fans immediately kick in.

  • In Linux, this is often managed by power-profiles-daemon. You can check and change your current profile directly in the terminal:

    Bash

    powerprofilesctl
    powerprofilesctl set performance
    
    

    Setting it to performance should force the firmware to spin the fans up when under load.

or you can try this

Because you have an 11th Gen Intel Core i5, your CPU relies heavily on Intel’s Dynamic Platform and Thermal Framework (DPTF). In Linux, thermald is essential for modern Intel chips to prevent thermal throttling and to signal the system to ramp up cooling dynamically.

Install and enable it:

Bash

sudo pacman -S thermald
sudo systemctl enable --now thermald

also you should monitor Actual Temperatures

Let’s verify exactly how hot the system is getting, as sometimes the chassis feels uncomfortably hot even if the CPU is well within safe operating limits (which is why the firmware might be keeping the fans off to remain silent).

Install lm_sensors:

Bash

sudo pacman -S lm_sensors
sudo sensors-detect --auto

Then, run the sensors command. This will output the current temperatures for your CPU and Wi-Fi card, and if your kernel is successfully communicating with the fan controller, it will show the fan RPM here as well.

Set up advanced Fan Control

If thermald and the power profiles don’t resolve the issue and your laptop is still hitting 80°C+ without the fan turning on, you can manually take over the fan controller using NoteBook FanControl (NBFC).

There is a lightweight C implementation for Linux available in the AUR that works well with IdeaPads:

Bash

paru -S nbfc-linux

(Use yay or your preferred AUR helper if you don’t use paru).

Once installed, you can search for a configuration that matches your IdeaPad:

Bash

nbfc config -r | grep -i ideapad

Apply a relevant configuration (often, the config for a similar IdeaPad 5 model will work for the 15ITL05) and start the service:

Bash

nbfc config -a "Lenovo Ideapad 5 15ARE05" # (Example config, use one close to yours)
sudo systemctl enable --now nbfc_service

A Note on CachyOS Defaults

CachyOS is heavily performance-optimized, which means it might be using an aggressive CPU scheduler (like BORE) or CPU governor out of the box. This can lead to higher idle temperatures than you are used to on Windows. If your battery life is also suffering, you may want to look into installing and enabling auto-cpufreq to dynamically scale your CPU frequency down when the system is idle.

here is sensors output -

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

nvme-pci-e100
Adapter: PCI adapter
Composite: +42.9°C (low = -0.1°C, high = +86.8°C)
(crit = +89.8°C)
Sensor 1: +42.9°C (low = -273.1°C, high = +65261.8°C)

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: +42.0°C

BAT0-acpi-0
Adapter: ACPI interface
in0: 12.15 V

so i dont see rpm or fan here so i was like maybe these is a issue or maybe im missing something here in output
ill try the manual method if thermald doesnt fix it.

and 2-3 times while i was watching a movie in mpv with a terminal , floorp in background suddenly my laptop shut down so i was worried fan isnt turning on.

edit: i had already tried the Fn + Q .

@ This is ai generated - take action on your own risk -

CachyOS utilizes highly aggressive, performance-optimized CPU schedulers (like BORE). When you decode video in mpv and have a heavy browser like floorp drawing resources, your 11th Gen Intel CPU spikes its clock speeds instantly. Because your firmware’s cooling profile is stuck in a silent/passive state and isn’t spinning the fan up, the CPU hits its absolute maximum safe limit (100°C) within seconds. To save the physical silicon from melting, the motherboard pulls the emergency brake and cuts the power instantly.

Since Fn + Q isn’t waking the Embedded Controller up, you need to manually force it to control the fans.

The Solution: Forcing Fan Control via nbfc-linux

Since thermald isn’t helping, your best option is Notebook Fan Control (NBFC). This tool bypasses the operating system’s broken ACPI calls and writes configuration data straight into the Embedded Controller registers to force the fan to spin.

Step 1: Install NBFC-Linux

Open your terminal and install the lightweight C implementation of NBFC from the AUR:

Bash

paru -S nbfc-linux

(If you use yay instead of paru, substitute the command accordingly).

Step 2: Find a Compatible Profile

NBFC relies on profile configurations to know which memory registers correspond to your specific fan. Search the built-in database for Lenovo profiles:

Bash

nbfc config -r | grep -i ideapad

Step 3: Apply the Profile and Enable the Service

You will see a list of profiles. Even if your exact model (15ITL05) isn’t listed, profiles for similar years or architectures (like the Lenovo Ideapad 5 15ARE05 or similar IdeaPad 5 configs) usually share the exact same Embedded Controller register layout.

Pick the closest matching IdeaPad 5 profile and bind it:

Bash

# Apply the config (replace with the closest profile name found in the previous step)
nbfc config -a "Lenovo Ideapad 5 15ARE05"

# Start and enable the fan control background daemon
sudo systemctl enable --now nbfc_service

Step 4: Check if the Fan Wakes Up

You can now check the status of your fan directly through NBFC:

Bash

nbfc status

If the profile matches your hardware registers, you should immediately hear the fan spin up, and this command will display the current target fan speed. If the fan still doesn’t spin under load, try a couple of the other variant IdeaPad profiles from the list until you find the one that successfully hooks into your motherboard’s chip.

or another full proof solution is just reinstall the whole os but this time use different bootloader and update your drivers properly .

i dint find any reccomended profiles in nbfc but i can hear fan turning on when switched to performance mode somehow

thanks for helping