Post

Enabling fans in Arch

How I struggled to enable fans in Arch Linux

Enabling fans in Arch

Why the fuss?

The laptop I am using is an OMEN 16-xfxxx series from HP. A well-made gaming laptop, I would say. But, it uses its own controller i.e. OMEN Gaming Hub to control hardware.

This was bad news for me when I started to use Arch Linux as a dual boot. The default behavior was that the fans follow the BIOS settings. It would just turn on with an interval of 10 min or so.

It wasn’t a problem when I was doing small tasks, but I started to run vms on it and the temperature would ramp up and freeze the system. So, I had to find a way to control the fans manually.

Finding a solution

Tl;dr: I had to modify the existing kernel modle and build it myself.

I first tried googling, but there wasn’t much information available. But there is always some repo on GitHub that has done something similar. I found this repo who was configuring linux to work with OMEN 16-xfxxx series. He had dumped the EC firmware and reverse engineered it to find out how to control the fans. There was only 4 registers available, but that was enough to control the fans.

Also, I found this repo which was a kernel module to control the fans on OMEN laptops. Since it was only for 16-wf1xxx, I had to modify it to work with my laptop.

I may write a autotemp module for controlling the fans based on temperature in the future. For now, I am using the GUI app to control the fans manually. When the heat starts to build up, I just crank up the fans to max and cool it down. Bit of a manual process, but effective enough for now.

This post is licensed under CC BY 4.0 by the author.