frankcrawford / it87 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hannesha/it87
This project forked from hannesha/it87
Per instructions in the README, i'm providing information to hopefully get fan control on the B650M GAMING X AX (rev 1.3) working.
Output of commands:
09:45 ewout@am5ws ~% sudo sensors-detect
# sensors-detect version 3.6.0+git
# System: Gigabyte Technology Co., Ltd. B650M GAMING X AX [Default string]
# Kernel: 6.9.3-1-cachyos x86_64
# Processor: AMD Ryzen 5 7600 6-Core Processor (25/97/2)
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.
Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no):
Silicon Integrated Systems SIS5595... No
VIA VT82C686 Integrated Sensors... No
VIA VT8231 Integrated Sensors... No
AMD K8 thermal sensors... No
AMD Family 10h thermal sensors... No
AMD Family 11h thermal sensors... No
AMD Family 12h and 14h thermal sensors... No
AMD Family 15h thermal sensors... No
AMD Family 16h thermal sensors... No
AMD Family 17h thermal sensors... No
AMD Family 15h power sensors... No
AMD Family 16h power sensors... No
Hygon Family 18h thermal sensors... No
AMD Family 19h thermal sensors... No
Intel digital thermal sensor... No
Intel AMB FB-DIMM thermal sensor... No
Intel 5500/5520/X58 thermal sensor... No
VIA C7 thermal sensor... No
VIA Nano thermal sensor... No
Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'... No
Trying family `ITE'... Yes
Found unknown chip with ID 0x8689
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'... No
Trying family `ITE'... No
Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): ^C
09:53 ewout@am5ws ~%
09:48 ewout@am5ws ~% sudo isadump -k 0x87,0x01,0x55,0x55 0x2e 0x2f 7
[sudo] wachtwoord voor ewout:
WARNING! Running this program can cause system crashes, data loss and worse!
I will probe address register 0x2e and data register 0x2f.
Probing bank 7 using bank register 0x07.
Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 86 89 02 00 2e 20 b3 00 00 00 80 30 88 40 00 00
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60: 00 00 0a 00 20 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 20 00 00 17 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 c0 00 00 00 00
c0: 01 00 00 40 00 ff ff ff 01 00 00 00 00 68 00 00
d0: b5 00 08 0a 00 fd ff ff 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 50 00 20 12 49 00 00 0a 7c
f0: 00 00 00 00 00 00 0d 00 00 d0 49 60 00 6e 00 ff
09:49 ewout@am5ws ~%
Can't determine the device address to run the third command, as it's missing from the output of sensors-detect
.
When trying to build the module on the latest Debian kernel DKMS fails. Here is the make.log
DKMS make.log for it87-20230126 for kernel 6.3.0-1-amd64 (x86_64)
Thu 15 Jun 2023 14:12:15 AEST
CC [M] /var/lib/dkms/it87/20230126/build/it87.o
MODPOST /var/lib/dkms/it87/20230126/build/Module.symvers
FATAL: modpost: /var/lib/dkms/it87/20230126/build/it87: sizeof(struct dmi_device_id)=332 is not a modulo of the size of section __mod_dmi__<identifier>_device_table=7224.
Fix definition of struct dmi_device_id in mod_devicetable.h
make[2]: *** [/usr/src/linux-headers-6.3.0-1-common/scripts/Makefile.modpost:136: /var/lib/dkms/it87/20230126/build/Module.symvers] Error 1
make[1]: *** [/usr/src/linux-headers-6.3.0-1-common/Makefile:2002: modpost] Error 2
make: *** [Makefile:73: modules] Error 2
Hi,
first of all thanks for this project! Since a few month, Linux is my main OS and so i try to get most things running like it was in WIN. Therefore I'm fairly no expert in that kind of stuff and just try my best.
long story, short: Is it somehow possible to get my 2 missing fans detected?
from BIOS Point of view i have the following Fan ports:
CPU Fan --> AIO Fans (FAN1) @it8689-isa-0a40
CPU Opt --> Front bottom (FAN5) @it8689-isa-0a40
SysFan1 --> Back Out (FAN2) @it8689-isa-0a40
SysFan2 --> not connected
SysFan3 --> bottom back (FAN4) @it8689-isa-0a40
SysFan4 --> bottom front (FAN3) @it87952-isa-0b10
SysFan5 Pump --> AIO Pump (FAN1) @it87952-isa-0b10
SysFan6 Pump --> not connected
SysFan7 Pump --> front top (NOT DETECTED)
SysFan8 Pump --> front middle (NOT DETECTED)
watch -n1 -d 'sensors | grep fan':
fan1: 1854 RPM (min = 10 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 378 RPM (min = 0 RPM)
fan1: 604 RPM (min = 10 RPM)
fan2: 467 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 448 RPM (min = 0 RPM)
fan5: 811 RPM (min = 0 RPM)
sensors gives me:
it87952-isa-0b10
Adapter: ISA adapter
in0: 748.00 mV (min = +0.00 V, max = +2.81 V)
in1: 1.24 V (min = +0.00 V, max = +2.81 V)
in2: 814.00 mV (min = +0.00 V, max = +2.81 V)
+3.3V: 1.43 V (min = +0.00 V, max = +5.61 V)
in4: 1.18 V (min = +0.00 V, max = +2.81 V)
in5: 1.83 V (min = +0.00 V, max = +2.81 V)
in6: 1.42 V (min = +0.00 V, max = +2.81 V)
3VSB: 3.32 V (min = +0.00 V, max = +5.61 V)
Vbat: 3.08 V
fan1: 1864 RPM (min = 10 RPM)
fan2: 0 RPM (min = 0 RPM)
fan3: 375 RPM (min = 0 RPM)
temp1: +40.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp2: +27.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp3: +35.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
intrusion0: ALARM
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +32.0°C (high = +80.0°C, crit = +100.0°C)
Core 0: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 4: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 8: +29.0°C (high = +80.0°C, crit = +100.0°C)
Core 12: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 16: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 20: +27.0°C (high = +80.0°C, crit = +100.0°C)
Core 24: +28.0°C (high = +80.0°C, crit = +100.0°C)
Core 28: +25.0°C (high = +80.0°C, crit = +100.0°C)
Core 32: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 33: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 34: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 35: +31.0°C (high = +80.0°C, crit = +100.0°C)
Core 36: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 37: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 38: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 39: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 40: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 41: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 42: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 43: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 44: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 45: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 46: +30.0°C (high = +80.0°C, crit = +100.0°C)
Core 47: +30.0°C (high = +80.0°C, crit = +100.0°C)
enp6s0-pci-0600
Adapter: PCI adapter
PHY Temperature: +39.0°C
MAC Temperature: +39.0°C
nvme-pci-0800
Adapter: PCI adapter
Composite: +43.9°C (low = -273.1°C, high = +81.8°C)
(crit = +84.8°C)
Sensor 1: +43.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +44.9°C (low = -273.1°C, high = +65261.8°C)
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C
iwlwifi_1-virtual-0
Adapter: Virtual device
temp1: N/A
it8689-isa-0a40
Adapter: ISA adapter
in0: 756.00 mV (min = +0.00 V, max = +3.06 V)
in1: 2.00 V (min = +0.00 V, max = +3.06 V)
in2: 2.00 V (min = +0.00 V, max = +3.06 V)
in3: 2.03 V (min = +0.00 V, max = +3.06 V)
in4: 48.00 mV (min = +0.00 V, max = +3.06 V)
in5: 1.80 V (min = +0.00 V, max = +3.06 V)
in6: 1.98 V (min = +0.00 V, max = +3.06 V)
3VSB: 3.31 V (min = +0.00 V, max = +6.12 V)
Vbat: 3.10 V
fan1: 604 RPM (min = 10 RPM)
fan2: 468 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 440 RPM (min = 0 RPM)
fan5: 791 RPM (min = 0 RPM)
temp1: +41.0°C (low = +127.0°C, high = +127.0°C) sensor = disabled
temp2: +42.0°C (low = +127.0°C, high = +127.0°C) sensor = disabled
temp3: +32.0°C (low = +127.0°C, high = +127.0°C) sensor = Intel PECI
temp4: +41.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
temp5: +37.0°C (low = +0.0°C, high = -124.0°C) sensor = thermistor
temp6: +26.0°C (low = +127.0°C, high = +127.0°C) sensor = thermistor
intrusion0: ALARM
nvme-pci-0300
Adapter: PCI adapter
Composite: +44.9°C (low = -40.1°C, high = +83.8°C)
(crit = +87.8°C)
Sensor 1: +65.8°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +39.9°C (low = -273.1°C, high = +65261.8°C)
nvme-pci-0200
Adapter: PCI adapter
Composite: +48.9°C (low = -5.2°C, high = +89.8°C)
(crit = +93.8°C)
nvme-pci-0500
Adapter: PCI adapter
Composite: +43.9°C (low = -273.1°C, high = +81.8°C)
(crit = +84.8°C)
Sensor 1: +43.9°C (low = -273.1°C, high = +65261.8°C)
Sensor 2: +50.9°C (low = -273.1°C, high = +65261.8°C)
sensors-detect gives me:
# sensors-detect version 3.6.0
# System: Gigabyte Technology Co., Ltd. Z790 AORUS MASTER [-CF]
# Kernel: 6.9.0-custom x86_64
# Processor: 13th Gen Intel(R) Core(TM) i9-13900K (6/183/1)
This program will help you determine which kernel modules you need
to load to use lm_sensors most effectively. It is generally safe
and recommended to accept the default answers to all questions,
unless you know what you're doing.
Some south bridges, CPUs or memory controllers contain embedded sensors.
Do you want to scan for them? This is totally safe. (YES/no): Module cpuid loaded successfully.
Silicon Integrated Systems SIS5595... No
VIA VT82C686 Integrated Sensors... No
VIA VT8231 Integrated Sensors... No
AMD K8 thermal sensors... No
AMD Family 10h thermal sensors... No
AMD Family 11h thermal sensors... No
AMD Family 12h and 14h thermal sensors... No
AMD Family 15h thermal sensors... No
AMD Family 16h thermal sensors... No
AMD Family 17h thermal sensors... No
AMD Family 15h power sensors... No
AMD Family 16h power sensors... No
Hygon Family 18h thermal sensors... No
Intel digital thermal sensor... Success!
(driver `coretemp')
Intel AMB FB-DIMM thermal sensor... No
Intel 5500/5520/X58 thermal sensor... No
VIA C7 thermal sensor... No
VIA Nano thermal sensor... No
Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'... No
Trying family `ITE'... Yes
Found unknown chip with ID 0x8689
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'... No
Trying family `ITE'... Yes
Found unknown chip with ID 0x8695
Some systems (mainly servers) implement IPMI, a set of common interfaces
through which system health data may be retrieved, amongst other things.
We first try to get the information from SMBIOS. If we don't find it
there, we have to read from arbitrary I/O ports to probe for such
interfaces. This is normally safe. Do you want to scan for IPMI
interfaces? (YES/no): Probing for `IPMI BMC KCS' at 0xca0... No
Probing for `IPMI BMC SMIC' at 0xca8... No
Some hardware monitoring chips are accessible through the ISA I/O ports.
We have to write to arbitrary I/O ports to probe them. This is usually
safe though. Yes, you do have ISA I/O ports even if you do not have any
ISA slots! Do you want to scan the ISA I/O ports? (YES/no): Probing for `National Semiconductor LM78' at 0x290... No
Probing for `National Semiconductor LM79' at 0x290... No
Probing for `Winbond W83781D' at 0x290... No
Probing for `Winbond W83782D' at 0x290... No
Lastly, we can probe the I2C/SMBus adapters for connected hardware
monitoring devices. This is the most risky part, and while it works
reasonably well on most systems, it has been reported to cause trouble
on some systems.
Do you want to probe the I2C/SMBus adapters now? (YES/no): Found unknown SMBus adapter 8086:7a23 at 0000:00:1f.4.
Sorry, no supported PCI bus adapters found.
Next adapter: SMBus I801 adapter at efa0 (i2c-0)
Do you want to scan it? (YES/no/selectively): Client found at address 0x49
Probing for `National Semiconductor LM75'... No
Probing for `National Semiconductor LM75A'... No
Probing for `Dallas Semiconductor DS75'... No
Probing for `National Semiconductor LM77'... No
Probing for `Analog Devices ADT7410/ADT7420'... No
Probing for `Maxim MAX6642'... No
Probing for `Texas Instruments TMP435'... No
Probing for `National Semiconductor LM73'... No
Probing for `National Semiconductor LM92'... No
Probing for `National Semiconductor LM76'... No
Probing for `Maxim MAX6633/MAX6634/MAX6635'... No
Probing for `NXP/Philips SA56004'... No
Probing for `SMSC EMC1023'... No
Probing for `SMSC EMC1043'... No
Probing for `SMSC EMC1053'... No
Probing for `SMSC EMC1063'... No
Client found at address 0x4b
Probing for `National Semiconductor LM75'... No
Probing for `National Semiconductor LM75A'... No
Probing for `Dallas Semiconductor DS75'... No
Probing for `National Semiconductor LM77'... No
Probing for `Analog Devices ADT7410/ADT7420'... No
Probing for `Analog Devices ADT7411'... No
Probing for `Maxim MAX6642'... No
Probing for `Texas Instruments TMP435'... No
Probing for `National Semiconductor LM92'... No
Probing for `National Semiconductor LM76'... No
Probing for `Maxim MAX6633/MAX6634/MAX6635'... No
Probing for `NXP/Philips SA56004'... No
Probing for `Analog Devices ADT7481'... No
Client found at address 0x51
Probing for `Analog Devices ADM1033'... No
Probing for `Analog Devices ADM1034'... No
Probing for `SPD EEPROM'... No
Client found at address 0x53
Probing for `Analog Devices ADM1033'... No
Probing for `Analog Devices ADM1034'... No
Probing for `SPD EEPROM'... No
Next adapter: Synopsys DesignWare I2C adapter (i2c-1)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Next adapter: Synopsys DesignWare I2C adapter (i2c-2)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Next adapter: Synopsys DesignWare I2C adapter (i2c-3)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Client found at address 0x50
Probing for `Analog Devices ADM1033'... No
Probing for `Analog Devices ADM1034'... No
Probing for `SPD EEPROM'... No
Probing for `EDID EEPROM'... No
Next adapter: Synopsys DesignWare I2C adapter (i2c-4)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Next adapter: Synopsys DesignWare I2C adapter (i2c-5)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Next adapter: Synopsys DesignWare I2C adapter (i2c-6)
Do you want to scan it? (YES/no/selectively): Adapter doesn't support all probing functions.
Some addresses won't be probed.
Next adapter: NVIDIA i2c adapter 1 at 1:00.0 (i2c-7)
Do you want to scan it? (yes/NO/selectively):
Next adapter: NVIDIA i2c adapter 2 at 1:00.0 (i2c-8)
Do you want to scan it? (yes/NO/selectively):
Next adapter: NVIDIA i2c adapter 3 at 1:00.0 (i2c-9)
Do you want to scan it? (yes/NO/selectively):
Next adapter: NVIDIA i2c adapter 4 at 1:00.0 (i2c-10)
Do you want to scan it? (yes/NO/selectively):
Next adapter: NVIDIA i2c adapter 5 at 1:00.0 (i2c-11)
Do you want to scan it? (yes/NO/selectively):
Next adapter: NVIDIA i2c adapter 6 at 1:00.0 (i2c-12)
Do you want to scan it? (yes/NO/selectively): Client found at address 0x58
Probing for `Analog Devices ADT7462'... No
Probing for `Andigilog aSC7512'... No
Client found at address 0x5c
Probing for `Analog Devices ADT7462'... No
Probing for `SMSC EMC1072'... No
Probing for `SMSC EMC1073'... No
Probing for `SMSC EMC1074'... No
Now follows a summary of the probes I have just done.
Just press ENTER to continue:
Driver `coretemp':
* Chip `Intel digital thermal sensor' (confidence: 9)
To load everything that is needed, add this to /etc/modules:
#----cut here----
# Chip drivers
coretemp
#----cut here----
If you have some drivers built into your kernel, the list above will
contain too many modules. Skip the appropriate ones!
Do you want to add these lines automatically to /etc/modules? (yes/NO)Successful!
Monitoring programs won't work until the needed modules are
loaded. You may want to run '/etc/init.d/kmod start'
to load them.
Unloading cpuid... OK
***************************************************************
Warning: the preferred way to run this script non-interactively
is with option --auto. Other methods are discouraged and may
stop working at some point in the future.
***************************************************************
and my /etc/modprobe.d/it87.conf
options it87 ignore_resource_conflict=1
i didnt use "force_id=0x8622" because i couldnt see a difference.
ahh, and my GRUB line has:
GRUB_CMDLINE_LINUX_DEFAULT="acpi_enforce_resources=lax enabled"
EDIT: Based on Windows HWINFO this board has
Are you aware of any attempts, or impediments, to getting the delta between this and the mainline it87 module merged into main-line? It would obviously be beneficial to everyone.
If there are impediments (possibly documented in historic mailing lists) it'd be good to collect them here and see if we can address them so changes can eventually go directly into mainline.
Mobo: B650 Eagle AX
IO-Chip: ITE 8689E
What I did:
git clone https://github.com/frankcrawford/it87
cd it87
make clean
make
sudo make install
sudo modprobe it87 ignore_resource_conflict=1 force_id=0x8689
Everything works but then I get the No such device error.
Don't know if this is important but sudo modprobe it87 ignore_resource_conflict=1 force_id=0x8628
works
The $SUBJ chip seems to be supported, and there are a lot of mentions of it in the two patches-differences between this fork and the mainline.
However, even though the module loads successfully and find the chip:
[Mar30 22:34] it87: it87 driver version v1.0-154-gf40148e.20240306
[ +0.000316] it87: Found IT8625E chip at 0xa20, revision 12
[ +0.000056] it87: Beeping is supported
the sensors command does not query it:
>sensors
sensors
acpitz-acpi-0
Adapter: ACPI interface
temp1: +27.8°C
temp2: +29.8°C
coretemp-isa-0000
Adapter: ISA adapter
Package id 0: +38.0°C (high = +100.0°C, crit = +100.0°C)
Core 0: +37.0°C (high = +100.0°C, crit = +100.0°C)
Core 1: +39.0°C (high = +100.0°C, crit = +100.0°C)
no mention of the it-8625-*
anything chip.
Is there some kind of a trivial switch which should be turned on?
And I seem to be not the only one:
https://forum.manjaro.org/t/modprobe-refuses-to-load-driver/39066
Gigabyte X470 Gaming 7 https://gist.github.com/nijave/53eb41a4aa79f754f1ba6fdeaa32c0dd
chip "it8628-isa-0a40"
label temp1 "System 1"
label temp2 "Chipset"
label temp3 "CPU Socket"
label temp4 "PCIEX16"
label temp5 "VRM MOS"
label temp6 "VSOC MOS"
label in0 "CPU Vcore"
label in1 "+3.3V"
label in2 "+12V"
label in3 "+5V"
label in4 "CPU VCORE SoC"
label in5 "CPU VDDP"
label in6 "DRAM CH(A/B)"
# label in7 "3VSB"
# label in8 "CMOS Voltage Battery"
label fan1 "CPU_FAN"
label fan2 "SYS_FAN1"
label fan3 "SYS_FAN2"
label fan4 "SYS_FAN3"
label fan5 "CPU_OPT"
# compute temp3 @+0.5,@+0.5
compute in1 @*1.65,@*1.65
compute in2 @*6,@*6
compute in3 @*2.5,@*2.5
set in0_min 0.35
set in0_max 1.45
set in1_min 3.3 * 0.97
set in1_max 3.3 * 1.03
set in2_min 12 * 0.97
set in2_max 12 * 1.03
set in3_min 5 * 0.97
set in3_max 5 * 1.03
set in4_min 0.9
set in4_max 1.26
set in5_min 0.9 * 0.95
set in5_max 0.9 * 1.05
set in6_min 1.1
set in6_max 1.6
ignore temp2
#label temp2 "EC_TEMP1" # Will show -55C if open circuit (no thermistor plugged in)
label intrusion0 "Chassis Intrusion"
#ignore intrusion0
/etc/modules-load.d/it87.conf
it87
options it87 force_id=0x8628
/etc/kernel/cmdline
)acpi_enforce_resources=lax
GIGABYTE X570 Aorus Master: https://github.com/arcnmx/home/blob/master/hw/x570am/default.nix#L16-L54
0001-it87-format.zip
Hello! Thanks for your work!
Unfortunately, the number of differences between your driver and the driver from the hwmon-next repository is so large that your code will not be included in the kernel for a long time. However, I am following this process with great interest.
I have a gigabyte motherboard with an IT8686E chip:
# dmesg | grep Gig [ 0.000000] DMI: Gigabyte Technology Co., Ltd. A320M-S2H V2/A320M-S2H V2-CF, BIOS F55a 07/29/2022
If you need help testing the driver on my motherboard, you can contact me. In the meantime, in this post, I'm including a formatting diff file that will reduce the diff just a little bit.
I'm trying to use this driver with my PRIME X470-PRO motherboard. Chip markings and sensors-detect say that this is IT8665E. I use NixOS with nixpkgs-unstable. According to package nix-file, it uses "unstable-2022-02-26" version, that is built from this hash. The comment in the file says "This is the same upstream as the AUR uses."
The problem is that when I try to run sudo modprobe it87 force_id=0x8665 ignore_resource_conflict=1
command, I get an modprobe: ERROR: could not insert 'it87': No such device
error. However, if I change the ID to 0x8628, the module loads and works, but I only see 4 channels, instead of 6 that I should see. There is also asus-wmi-sensors
driver, that shows all 6 channels, but doesn't allow to control the fans, only see RPM values.
Here is abridged output of sensors
:
it8628-isa-0290
Adapter: ISA adapter
in0: 1.37 V (min = +1.52 V, max = +1.14 V)
in1: 2.74 V (min = +0.42 V, max = +1.72 V)
in2: 2.22 V (min = +0.84 V, max = +2.47 V)
+5V: 4.37 V (min = +3.58 V, max = +0.55 V)
in4: 36.00 mV (min = +2.64 V, max = +2.02 V)
in5: 36.00 mV (min = +2.94 V, max = +3.06 V)
in6: 36.00 mV (min = +1.43 V, max = +1.36 V)
3VSB: 3.70 V (min = +5.35 V, max = +5.69 V)
Vbat: 3.53 V
fan1: 915 RPM (min = 32 RPM)
fan3: 579 RPM (min = 275 RPM)
fan4: 795 RPM (min = -1 RPM)
fan5: 0 RPM (min = -1 RPM)
temp1: +37.0°C (low = +75.0°C, high = +127.0°C) sensor = thermistor
temp2: +30.0°C (low = -19.0°C, high = -27.0°C) sensor = thermistor
temp3: +32.0°C (low = -85.0°C, high = +86.0°C) sensor = thermistor
temp6: +32.0°C
intrusion0: OK
asus_wmi_sensors-virtual-0
Adapter: Virtual device
CPU Core Voltage: 1.24 V
+12V Voltage: 12.10 V
+5V Voltage: 4.96 V
3VSB Voltage: 3.36 V
CPU Fan: 917 RPM
Chassis Fan 1: 595 RPM
Chassis Fan 2: 579 RPM
Chassis Fan 3: 795 RPM
AIO Pump: 0 RPM
Water Pump: 0 RPM
CPU OPT: 1095 RPM
CPU Temperature: +37.0°C
Motherboard Temperature: +30.0°C
Chipset Temperature: +40.0°C
Tsensor 1 Temperature: +216.0°C
What shall I do to debug this issue?
Hey, I wanted to ask some clarificaton about which installation method to use as preferred. If I read the README correctly there are three ways to install the module:
I tried all of these out and came to the result that 2. does not work and 1. and 3. work but after a reboot not anymore.
Note: by "work" I mean that the sensors show up i.e. if I type the command sensors
and fans and sensors are shown.
Eg. :
it8613-isa-0a30
Adapter: ISA adapter
in0: 1.44 V (min = +2.08 V, max = +1.98 V) ALARM
in1: 1.39 V (min = +0.89 V, max = +0.85 V) ALARM
in2: 2.00 V (min = +2.30 V, max = +1.71 V) ALARM
in4: 1.72 V (min = +0.68 V, max = +2.74 V)
in5: 2.00 V (min = +2.28 V, max = +0.33 V) ALARM
3VSB: 3.28 V (min = +2.53 V, max = +3.41 V)
Vbat: 2.57 V
+3.3V: 3.28 V
fan2: 2257 RPM (min = 30 RPM)
fan3: 799 RPM (min = 15 RPM)
temp1: +29.0°C (low = +71.0°C, high = +60.0°C) sensor = thermistor
temp2: +28.0°C (low = -6.0°C, high = -99.0°C) ALARM sensor = thermistor
temp3: +29.0°C (low = -21.0°C, high = -34.0°C) ALARM
intrusion0: ALARM
About making it "work" after rebooting: Am I missing something I need to add somewhere?
Thanks in advance :)
Thank you for all the work you have already made 🎉
I was wondering if you would consider merging the work from @cooper151288 and @WinkelCode since they both produced a lot of work too 🙏
Hi Frank,
I'm using your driver, packaged by ich77 for unRAID.
Board is a Gigabyte B560M DS3H, with an ITE8689. With your driver, I can see the fan's RPM (sensor-detect detects the 8689), but I'm facing the problem that the fans are not responding to any pwm changes. pwmconfig fires up, detect the fans, but when it tries to adjust the rpm while probbing, nothing happens.
If fact, fan speeds doesn't vary when I modify the contents of pwm1/2/3/4 via an echo 0.
root@Rei:/# pwmconfig
# pwmconfig version 3.6.0
This program will search your sensors for pulse width modulation (pwm)
controls, and test each one to see if it controls a fan on
your motherboard. Note that many motherboards do not have pwm
circuitry installed, even if your sensor chip supports pwm.
We will attempt to briefly stop each fan using the pwm controls.
The program will attempt to restore each fan to full speed
after testing. However, it is ** very important ** that you
physically verify that the fans have been to full speed
after the program has completed.
Found the following devices:
hwmon0 is nvme
hwmon1 is nvme
hwmon2 is coretemp
hwmon3 is acpitz
hwmon4 is it8689
Found the following PWM controls:
hwmon4/pwm1 current value: 255
hwmon4/pwm2 current value: 255
hwmon4/pwm3 current value: 255
hwmon4/pwm4 current value: 255
hwmon4/pwm5 current value: 255
Giving the fans some time to reach full speed...
Found the following fan sensors:
hwmon4/fan1_input current speed: 971 RPM
hwmon4/fan2_input current speed: 0 ... skipping!
hwmon4/fan3_input current speed: 1383 RPM
hwmon4/fan4_input current speed: 1363 RPM
Warning!!! This program will stop your fans, one at a time,
for approximately 5 seconds each!!!
This may cause your processor temperature to rise!!!
If you do not want to do this hit control-C now!!!
Hit return to continue:
Testing pwm control hwmon4/pwm1 ...
hwmon4/fan1_input ... speed was 971 now 976
no correlation
hwmon4/fan3_input ... speed was 1383 now 1377
no correlation
hwmon4/fan4_input ... speed was 1363 now 1363
no correlation
No correlations were detected.
There is either no fan connected to the output of hwmon4/pwm1,
or the connected fan has no rpm-signal connected to one of
the tested fan sensors. (Note: not all motherboards have
the pwm outputs connected to the fan connectors,
check out the hardware database on http://www.almico.com/forumindex.php)
Did you see/hear a fan stopping during the above test (n)? n
It looks that there is no correlation between the data of pwmX inputs and the speed of the fans (as you can see, in this pwmconfig launch, all fans are set at full speed pwm, 255, but they aren't at their real full speed, looks like they are only controlled by BIOS and doesn't react to software changes.
unRAID 6.12.1
Thanks in advance.
host: archlinux
sudo ./dkms-install.sh
outputs modprobe: ERROR: could not insert 'it87': Device or resource busy
then sudo modprobe it87 ignore_resource_conflict=1
works but it doesn't load automatically after a reboot
(yeah sensors
detects both chips it8792 and it8686)
How I make it load after a reboot?
I'm aware of /etc/modules-load.d/
but should I need to pass ignore_resource_conflict=
1 somehow?
Also, how to load config from Sensors config folder? I think GA-B450-AORUS-ELITE.conf fits but I don't sure
Line 32 in 043eae2
$(git show -s --format=%ci HEAD)
part as a variable rather than pass it to shell.Hello Frank,
over the last weeks since I have a new PC built I did quite a lot of research how to get the temperature sensors to work. Just with the stock lm-sensors, nothing is really working.
I also tried to get to know how I could build a driver, but actually I am a little lost what I need to do.
Maybe you can help, as I would like to provide also to others a working solution. As we are kinda blind when it's about CPU temperatures with this new boards.
Some Questions:
Trying family `ITE'... Yes
Found unknown chip with ID 0x8689
Probing for Super-I/O at 0x4e/0x4f
Trying family `ITE'... Yes
Found unknown chip with ID 0x8883
(logical device 4 has address 0x290, could be sensors)
Where can I find the the correct drivers for these chips?
How do I build the drivers and make them available as you did?
Thanks a lot for the good work! :)
regards
FB
If dh-dkms is not installed, the package build exits with
dh: error: unable to load addon dkms: Can't locate Debian/Debhelper/Sequence/dkms.pm in @INC (you may need to install the Debian::Debhelper::Sequence::dkms module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.38.2 /usr/local/share/perl/5.38.2 /usr/lib/x86_64-linux-gnu/perl5/5.38 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.38 /usr/share/perl/5.38 /usr/local/lib/site_perl) at (eval 11) line 1.
BEGIN failed--compilation aborted at (eval 11) line 1.
Having this correct in control allows debuild
to exit with the more useful error
dpkg-checkbuilddeps: error: Unmet build dependencies: dh-sequence-dkms
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
and even allows mk-build-deps
to automatically install it.
The date
command is used when creating DRIVER_VERSION
in the Makefile
and dkms-install.sh
. By default, date
uses the local time zone. If the local time zone is changed, sometimes date could go back one day. In this case, if there exists a version created against an earlier commit on the same day as the current commit, its date will appear to be more recent than the current version.
date -u
prints the date in UTC.
Just wanted to express my appreciation for your work here. I am very pleased to have found this repo to support the IT8613E on my mini PC. Many thanks 👍
hi, I have a laptop with an ITE sensors that is probably not from the it87 family.
sensors-detect
output has:
Do you want to scan for Super I/O sensors? (YES/no):
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'... No
Trying family `SMSC'... No
Trying family `VIA/Winbond/Nuvoton/Fintek'... No
Trying family `ITE'... No
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'... Yes
Found unknown chip with ID 0x5571
from this I infer I have the it5571 chip, and no driver exists for it whatsoever.
my question is, can the same principles from the it87 family be applied to this chip?
ITE will not provide the datasheet for this, but can I still try to manually manipulate it to get some results?
e.g. the readme has a passage on unsupported chips, which uses sudo isadump
, etc (tried to run it, but the output is mostly 00
's)
would appreciate any guidance.
my fan is blowing too much most of the time and it is driving me crazy..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.