Solved Tool for fan speed monitoring?

AFAIK, no general tool exists. Depending on the brand and model of motherboard / machine you have, there might be some support. Example: aibs(4) for some Asus motherboards.
 
Your motherboard uses the ITE IT8720 chip for such things. I wrote a utility for FreeBSD to use the ITE IT8718F and IT8720F chips when I was using Gigabyte motherboards back in 2009 (I now use Mac Minis for FreeBSD). Here's an extract from the man page:

IT8718FD(8) FreeBSD System Manager's Manual IT8718FD(8)

NAME
it8718fd -- Motherboard ``health'' monitor for the ITE Tech. Inc.
IT8718F/IT8720F LPC-IO chip.

SYNOPSIS
it8718fd [-c | -d | -v] [-p port] [-s seconds] [-h]

DESCRIPTION
This program reads values from the environment controller of the ITE
IT8718F or IT8720F LPC-IO chip on a motherboard to enable the monitoring
of temperature, fan revolutions and voltages.

it8718fd normally runs in the background as a daemon and reports error
conditions and other information via the syslogd(8) facility. If any of
the ``-c -d -v'' flags is specified, it8718fd will not become a daemon,
but will stay in the foreground and display the values for all parameters
every specified number of seconds (defaults to 5 if not otherwise speci-
fied).

Please note that, as its name implies, it8718fd only supports the ITE
IT8718F and IT8720F chips. The program will exit with an error message if
it does not find this specific chip on your motherboard.

Unfortunately Gigabyte's website doesn't specify which variant of the IT8720 your motherboard actually uses, but it may work or it may be simple to add to my code. You can download the source code from https://www.sentry.org/~trev/files/it8718fd.tar.bz2

Extract the source archive into a directory and then run make install. See the man page for all the gory configuration details.
 
For those using server class hardware with a built-in Baseboard Management Controller (BMC), IPMI is one of the most straight forward ways to get access to hardware info. Example on a Dell 2950:

Code:
# grep ipmi /etc/rc.conf
ipmi_load="YES"
# kldstat | grep ipmi
 4    1 0xffffffff81cc1000 113b0    ipmi.ko
# pkg info | grep ipmi
ipmitool-1.8.17_1              CLI to manage IPMI systems
 # ipmitool sensor | grep -i fan | cut -f1-4 -d'|'
FAN MOD 1A RPM   | 4440.000   | RPM        | ok    
FAN MOD 2A RPM   | 4560.000   | RPM        | ok    
FAN MOD 3A RPM   | 4440.000   | RPM        | ok    
FAN MOD 4A RPM   | 4440.000   | RPM        | ok    
FAN MOD 5A RPM   | 4560.000   | RPM        | ok    
FAN MOD 6A RPM   | 4440.000   | RPM        | ok    
FAN MOD 1B RPM   | 3000.000   | RPM        | ok    
FAN MOD 2B RPM   | 3120.000   | RPM        | ok    
FAN MOD 3B RPM   | 3120.000   | RPM        | ok    
FAN MOD 4B RPM   | 3000.000   | RPM        | ok    
FAN MOD 5B RPM   | 3120.000   | RPM        | ok    
FAN MOD 6B RPM   | 3000.000   | RPM        | ok    
Fan Redundancy   | 0x0        | discrete   | 0x0180
 
FWIW, it8718fd also works on a GA-MA74GM-S2H (rev. 3.0) motherboard:
Code:
root@kg-f2# ./it8718fd -v
Found an ITE IT8718F (id 0x8718, version 0x05) at special address port 0x2e

System 48C
CPU 45C
Northbridge 85C

CPU 2667 rpm
System 0 rpm
Northbridge 0 rpm

Vcore     1.49
VDDR     1.95
+3.3     3.33
+5     5.08
+12     11.73
-12     -12.16
-5     -6.85
VSB     5.59
Vbat     3.31

System 48C
CPU 45C
Northbridge 85C

CPU 2667 rpm
System 0 rpm
Northbridge 0 rpm

Vcore     1.49
VDDR     1.95
+3.3     3.33
+5     5.08
+12     11.73
-12     -12.16
-5     -6.85
VSB     5.59
Vbat     3.31

^C
 
On a Gigabyte F2A85XM-HD3 revision 1.2, it8718fd seems to get the CPU temperature wrong:
Code:
root@kg-v2# ./it8718fd -v
Found an ITE IT8718F (id 0x8728, version 0x01) at special address port 0x2e

System 48C
CPU 248C
Northbridge 52C

16 bit fan counters inactive; rpm readings unreliable
CPU 2922 rpm
System 0 rpm
Northbridge 0 rpm

Vcore     1.92
VDDR     1.95
+3.3     2.62
+5     4.54
+12     10.09
-12     -11.31
-5     -4.97
VSB     3.66
^C
It would be nice if someone made it8718fd report via sysctl like for example aibs(4) does.
 
On a Gigabyte F2A85XM-HD3 revision 1.2, it8718fd seems to get the CPU temperature wrong:
Code:
root@kg-v2# ./it8718fd -v
Found an ITE IT8718F (id 0x8728, version 0x01) at special address port 0x2e

System 48C
CPU 248C

You might notice you don't have an IT8718 or IT8720 chip ... you have an IT8728 which I'd hazard a guess explains the issue with the temperature.

I relaxed the chip identification code at some point to catch other chips in the vain hope of adding new ones in future. Apart from someone with an IT8720 who was happy to let me experiment on their Gigabyte motherboard system, I had no other takers. That was back in 2009. Since then, I've moved to Apple Mac Minis exclusively for my machines, and so no further development of this utility occurred.

You have the source code and can probably find the ITE Tech Inc datasheet for the IT8728 and make the changes necessary to support it.

It would be nice if someone made it8718fd report via sysctl like for example aibs(4) does.

The [B]sysctl[/B] utility retrieves kernel state and allows processes with appropriate privilege to set kernel state. I'm not sure that having my daemon play with the kernel is a good idea. Daemons usually report via syslog(), at least all those with which I am familiar. To report via [B]sysctl[/B] you would need to rewrite it as a loadable kernel driver instead.
 
Your motherboard uses the ITE IT8720 chip for such things. I wrote a utility for FreeBSD to use the ITE IT8718F and IT8720F chips when I was using Gigabyte motherboards back in 2009 (I now use Mac Minis for FreeBSD). Here's an extract from the man page:



Unfortunately Gigabyte's website doesn't specify which variant of the IT8720 your motherboard actually uses, but it may work or it may be simple to add to my code. You can download the source code from https://www.sentry.org/~trev/files/it8718fd.tar.bz2

Extract the source archive into a directory and then run make install. See the man page for all the gory configuration details.
Hi Trev,

I have the same issue having the IT8728F chip, i am just looking to manually adjust the fan speed on the motherboard. Would you kindly make the download link for the source codes available once again ?

thank you
Inz
 
Testing on a Gigabyte B450M DS3H (rev. 1.0):
Code:
tingo@kg-core2$ sudo ./it8718fd -v
Found an ITE IT8718F (id 0x8686, version 0x02) at special address port 0x2e

System 43C
CPU 57C
Northbridge 48C

16 bit fan counters inactive; rpm readings unreliable
CPU 1735 rpm
System 0 rpm
Northbridge -1 rpm

Vcore     1.58
VDDR     2.67
+3.3     2.70
+5     4.60
+12     4.20
-12     -4.62
-5     -2.77
VSB     3.71
Vbat     2.18

^C
This on
Code:
tingo@kg-core2$ uname -a
FreeBSD kg-core2.kg4.no 11.3-RELEASE-p9 FreeBSD 11.3-RELEASE-p9 #0: Tue May 12 05:10:48 UTC 2020     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
in case it helps anyone.
 
Testing on a Gigabyte X399 Aorus Pro:
Code:
doas ./it8718fd -v
Found an ITE IT8686F (id 0x8686, version 0x02) at special address port 0x2e

System 29C
CPU 42C
Northbridge 29C

16 bit fan counters inactive; rpm readings unreliable
CPU 892 rpm
System 0 rpm
Northbridge 0 rpm

Vcore     1.04
VDDR     2.72
+3.3     2.72
+5     4.54
+12     6.53
-12     -9.86
-5     -4.58
VSB     3.74
Vbat     2.16
On FreeBSD 12.1-RELEASE-p3 GENERIC amd64.

I changed the compiler to cc (clang) in the Makefile.
 
If you can track down the exact chip the motherboard uses and find the data sheet for it, you should be able to tweak the code to report readings accurately.

These are the (current) results from my old university workstation which is still running FreeBSD 10.4, having not been upgraded since I retired a few years ago:

Code:
$ it8718fd -v
Found an ITE IT8720F (id 0x8720, version 0x08) at special address port 0x2e

System 40C
CPU 41C
Northbridge 43C

CPU 2743 rpm
System 0 rpm
Northbridge 0 rpm

Vcore  1.17
VDDR  1.46
+3.3  3.36
+5  5.05
+12  12.10
-12  -12.58
-5  -5.34
VSB  3.60
Vbat  3.28
 
Unfortunately, ITE Tech, inc. is not exactly known for publishing data sheets:

You can also glean from that link that there was some drama around supporting their chips in Linux. This whole episode makes me sad. I yearn for open-spec hardware so the hardware guys can do hardware and leave software to the open source community. Maybe the RISC-V thing will gain traction. I can dream.
 
Back
Top