Skip to content

Instantly share code, notes, and snippets.

@bakman2
Last active April 15, 2024 15:55
Show Gist options
  • Star 28 You must be signed in to star a gist
  • Fork 11 You must be signed in to fork a gist
  • 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/a1wong/it87.git

cd it87
sudo make clean
sudo make 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
@Minionflo
Copy link

after i execute "sudo modprobe it87 ignore_resource_conflict=1 force_id=0x8622" i get the error "modprobe: ERROR: could not insert 'it87': No such device". Do you know how to fix the issue?

@ar-
Copy link

ar- commented Mar 6, 2022

thx a lot for this. I've made a fork added 2 missing commands.

@emansom
Copy link

emansom commented Dec 28, 2022

Thanks for this! ☺️

Why was ignore_resource_conflict=1 added? It works fine here on a Gigabyte Auros motherboard without.

@luispabon
Copy link

luispabon commented Feb 13, 2023

For a GA-Z170N-WIFI (rev. 1.0), just modprobe it87 is enough, you can just load the it87 module without any of the options outlined above. This enables not only fan speed sensors but also voltages and various other temperature sensors

echo it87 > /etc/modules-load.d/gigabyte-sensors-it87.conf

Full sensor output:

~ sensors
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +33.0°C  

it8628-isa-0a40
Adapter: ISA adapter
in0:         300.00 mV (min =  +0.00 V, max =  +3.06 V)
in1:           2.03 V  (min =  +0.00 V, max =  +3.06 V)
in2:           2.02 V  (min =  +0.00 V, max =  +3.06 V)
in3:           2.02 V  (min =  +0.00 V, max =  +3.06 V)
in4:          12.00 mV (min =  +0.00 V, max =  +3.06 V)
in5:           1.07 V  (min =  +0.00 V, max =  +3.06 V)
in6:           1.36 V  (min =  +0.00 V, max =  +3.06 V)
3VSB:          3.38 V  (min =  +0.00 V, max =  +6.12 V)
Vbat:          3.14 V  
fan1:        1520 RPM  (min =    0 RPM)
fan2:        20454 RPM  (min =    0 RPM)
fan3:           0 RPM  (min =    0 RPM)
fan4:           0 RPM  (min =    0 RPM)
fan5:           0 RPM  (min =    0 RPM)
temp1:        +37.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp2:        +44.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermistor
temp3:        +42.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = Intel PECI
temp4:        +45.0°C  
temp5:        +37.0°C  
temp6:        +32.0°C  
intrusion0:  ALARM

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +27.8°C  (crit = +119.0°C)
temp2:        +29.8°C  (crit = +119.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +43.0°C  (high = +74.0°C, crit = +80.0°C)
Core 0:        +43.0°C  (high = +74.0°C, crit = +80.0°C)
Core 1:        +41.0°C  (high = +74.0°C, crit = +80.0°C)
Core 2:        +42.0°C  (high = +74.0°C, crit = +80.0°C)
Core 3:        +41.0°C  (high = +74.0°C, crit = +80.0°C)

nvme-pci-0b00
Adapter: PCI adapter
Composite:    +41.9°C  (low  =  -5.2°C, high = +79.8°C)
                       (crit = +84.8°C)

fan1 is CPU and fan2 is SYSTEM. Looks like the system incorrectly reports a high RPM number when the fan is receiving some voltage but not enough to spin it up

@aiintdeadyet
Copy link

When I ran sudo make make install I got the output make: *** No rule to make target 'make'. Stop. and the fans still don't show up. Any ideas?

@inhumantsar
Copy link

inhumantsar commented Feb 25, 2023

@aiintdeadyet that's a typo. it should read sudo make install (or maybe sudo make && sudo make install)

@ibroheem
Copy link

It's now git clone https://github.com/frankcrawford/it87, https://github.com/a1wong/it87.git doesn't seem to get any more updates

@Zer0FluxGiv3n
Copy link

Hopefully helpful additional information:

  1. I can't speak for all chips, but anecdotally (and in the README for the module) the options ignore_resource_conflict=1 and force_id=0x8622 (or whatever the chip's ID is) should only be used for testing and troubleshooting. The module should do a good job at detecting what is needed automatically - on top of that, if you ever restore a backup of your system to different hardware, the ignore_resource_conflict option could cause boot issues.
  2. For any Arch users, Kernel modules are not loaded by /etc/modules but instead by .conf files in /etc/modules-load.d - see https://wiki.archlinux.org/title/Kernel_module for more information, under "Automatic module loading"

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