Skip to content

Instantly share code, notes, and snippets.

@bakman2
Last active March 18, 2025 06:52
Show Gist options
  • Save bakman2/e801f342aaa7cade62d7bd54fd3eabd8 to your computer and use it in GitHub Desktop.
Save bakman2/e801f342aaa7cade62d7bd54fd3eabd8 to your computer and use it in GitHub Desktop.

PWM fan control in Linux with a Gigabyte Aorus motherboard

  • install lm-sensors with your package manager

sensors

If it won't show any fan/speed, continue

sensor-detect

Say YES to at least "Super I/O sensors"

Expected output:

Trying family `ITE'...                                      Yes
Found unknown chip with ID 0x8688

If similar, continue

git clone https://github.com/frankcrawford/it87

cd it87
sudo make clean
sudo make install
sudo modprobe it87 ignore_resource_conflict=1 force_id=0x8622

sensors

The fans should show up now, if yes, continue to make them available at boot:

echo options it87 ignore_resource_conflict=1 force_id=0x8622 > /etc/modprobe.d/it87.conf
echo it87 >> /etc/modules
@danielsanfr
Copy link

danielsanfr commented Nov 21, 2024

I want to test this solution but, if something doesn't work for me, how I can uninstall this? (I'm using Manjaro in an Gigabyte b760m Aorus MB).

@Cqoicebordel
Copy link

  1. The command to build is wrong. It should be
make clean
make
sudo make install

(the make command in particular is missing)

  1. If sensors-detect only throw errors like /dev/port: Operation not permitted, it means you have Secure Boot activated. You need to deactivate it in the BIOS
  2. Make sure you compile and in particular install it87 in the current version of the kernel (I waited to reboot, updated the system, and it87 wasn't found by modprobe No such device. A tip, just in case…
  3. If modprobe throw Device or resource busy, check dmesg. If you have ACPI: OSL: Resource conflict; ACPI support missing from driver?, then you need either the ignore_resource_conflict=1 part, or you need to add acpi_enforce_resources=lax to the kernel options. I choose the first choice, because it doesn't change the whole system.

So in the end, I used sudo modprobe it87 ignore_resource_conflict=1, and it worked.

As for only one fan showing RPMs, I believe, at least in my case, that I only have one fan plugged to the motherboard PWM plugs, the others being controlled by the PC's case itself.

@danielsanfr Using modprobe means you are using a module right now only. It won't stay after a reboot. But even there, you can use the option -r with modprobe to remove a module.

@oprypin
Copy link

oprypin commented Jan 18, 2025

From trying out these instructions on Z390 AORUS ULTRA, I found that only one of these steps is sufficient.

  • Get a recent Linux kernel and make sure to actually set force_id=0x8622, it is necessary. Otherwise you'll be getting all fans showing 0 RPM.

    With this, I think we are telling the sub-par built-in driver a wrong device ID so that it can display something via support for some other device.

OR:

  • Install this custom kernel module frankcrawford/it87 aka it87-dkms-git. Then reboot, otherwise it's not actually kicking in.

    With it, no settings are necessary and it seems to detect and apply the correct device.

@ssshake
Copy link

ssshake commented Mar 18, 2025

this is great, thanks! I'm all set on my aorus b550 elite ax v2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment