Git Product home page Git Product logo

it87's Introduction

CURRENT DEVICE STATUS - Sep 2022
=====================

This version is based on the original one from a1wong/it87
with updates from around the Internet.

It should be a superset of the chipsets found in the official
Linux kernel module, and includes any changes found there.

The level of support depends on what the community provides, as
I am only collating changes, not developing then.

Currently supported devices (from it87.c) are:

 *  Supports: IT8603E  Super I/O chip w/LPC interface
 *            IT8606E  Super I/O chip w/LPC interface
 *            IT8607E  Super I/O chip w/LPC interface
 *            IT8613E  Super I/O chip w/LPC interface
 *            IT8620E  Super I/O chip w/LPC interface
 *            IT8622E  Super I/O chip w/LPC interface
 *            IT8623E  Super I/O chip w/LPC interface
 *            IT8625E  Super I/O chip w/LPC interface
 *            IT8628E  Super I/O chip w/LPC interface
 *            IT8528E  Super I/O chip w/LPC interface
 *            IT8655E  Super I/O chip w/LPC interface
 *            IT8665E  Super I/O chip w/LPC interface
 *            IT8686E  Super I/O chip w/LPC interface
 *            IT8688E  Super I/O chip w/LPC interface
 *            IT8689E  Super I/O chip w/LPC interface
 *            IT8695E  Super I/O chip w/LPC interface
 *            IT8705F  Super I/O chip w/LPC interface
 *            IT8712F  Super I/O chip w/LPC interface
 *            IT8716F  Super I/O chip w/LPC interface
 *            IT8718F  Super I/O chip w/LPC interface
 *            IT8720F  Super I/O chip w/LPC interface
 *            IT8721F  Super I/O chip w/LPC interface
 *            IT8726F  Super I/O chip w/LPC interface
 *            IT8728F  Super I/O chip w/LPC interface
 *            IT8732F  Super I/O chip w/LPC interface
 *            IT8736F  Super I/O chip w/LPC interface
 *            IT8738E  Super I/O chip w/LPC interface
 *            IT8758E  Super I/O chip w/LPC interface
 *            IT8771E  Super I/O chip w/LPC interface
 *            IT8772E  Super I/O chip w/LPC interface
 *            IT8781F  Super I/O chip w/LPC interface
 *            IT8782F  Super I/O chip w/LPC interface
 *            IT8783E/F Super I/O chip w/LPC interface
 *            IT8786E  Super I/O chip w/LPC interface
 *            IT8790E  Super I/O chip w/LPC interface
 *            IT8792E  Super I/O chip w/LPC interface
 *            IT87952E  Super I/O chip w/LPC interface
 *            Sis950   A clone of the IT8705F

Updated Module Parameters
-------------------------

* force_id [short, short]

  Force multiple chip ID to specified value, separated by `,'.
  For example "force_id=0x8689,0x8633".  A value of 0 is ignored
  for that chip.
  Note: A single force_id value (e.g. "force_id=0x8689") is used for
  all chips, to only set the first chip use "force_id=0x8689,0".
  Should only be used for testing.

Frank Crawford
Jan 2023

The original README is below.
---------------------------------------------------------------------

DRIVER REMOVAL NOTICE
=====================

I have been unable to meet support demands for this driver, resulting
in unpleasant experience and frustration for everyone involved.

Consequently, the driver will be removed from github, effective
August 1, 2018. Interested parties are encouraged to clone the driver
before that time and to start maintaining it on their own.


Kernel driver it87
==================

Supported chips:
  * IT8603E/IT8623E
    Prefix: 'it8603'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8613E
    Prefix: 'it8613'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8620E
    Prefix: 'it8620'
    Addresses scanned: from Super I/O config space (8 I/O ports)
  * IT8622E
    Prefix: 'it8622'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8625E
    Prefix: 'it8625'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8628E
    Prefix: 'it8628'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8705F
    Prefix: 'it87'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Once publicly available at the ITE website, but no longer
  * IT8712F
    Prefix: 'it8712'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Once publicly available at the ITE website, but no longer
  * IT8716F/IT8726F
    Prefix: 'it8716'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Once publicly available at the ITE website, but no longer
  * IT8718F
    Prefix: 'it8718'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Once publicly available at the ITE website, but no longer
  * IT8720F
    Prefix: 'it8720'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8721F/IT8758E
    Prefix: 'it8721'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8728F
    Prefix: 'it8728'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8732F
    Prefix: 'it8732'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8771E
    Prefix: 'it8771'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8772E
    Prefix: 'it8772'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8781F
    Prefix: 'it8781'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8782F
    Prefix: 'it8782'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8783E/F
    Prefix: 'it8783'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8786E
    Prefix: 'it8786'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * IT8790E
    Prefix: 'it8790'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: Not publicly available
  * SiS950   [clone of IT8705F]
    Prefix: 'it87'
    Addresses scanned: from Super I/O config space (8 I/O ports)
    Datasheet: No longer be available

Authors:
    Christophe Gauthron
    Jean Delvare <[email protected]>
    Guenter Roeck <[email protected]>


Building & Installing
---------------------

* make clean
* make
* sudo make install


Using DKMS
----------

To install:

* sudo make dkms

To remove:

* sudo make dkms_clean

Notes:

* The module does not provide a real version number, so `git describe --long`
  is used to create one. This means that anything that changes the git state
  will change the version. `make dkms_clean` should be run before making a
  commit or an update with `git pull` as the Makefile is currently unable to
  track the last installed version to replace it. If this doesn't happen, the
  old version will need to be manually removed from dkms, before installing
  the updated module.
  Something like `dkms remove -m it87 -v <old version> --all`, followed by
  `rm -rf /usr/src/it87-<old version>`, should do.
  `dkms status it87` can be used to list the installed versions.


Module Parameters
-----------------

* update_vbat: int

  0 if vbat should report power on value, 1 if vbat should be updated after
  each read. Default is 0. On some boards the battery voltage is provided
  by either the battery or the onboard power supply. Only the first reading
  at power on will be the actual battery voltage (which the chip does
  automatically). On other boards the battery voltage is always fed to
  the chip so can be read at any time. Excessive reading may decrease
  battery life but no information is given in the datasheet.

* fix_pwm_polarity int

  Force PWM polarity to active high (DANGEROUS). Some chips are
  misconfigured by BIOS - PWM values would be inverted. This option tries
  to fix this. Please contact your BIOS manufacturer and ask him for fix.

* force_id

  Force chip ID to specified value. Should only be used for testing.

* ignore_resource_conflict

  Similar to acpi_enforce_resources=lax, but only affects this driver.
  ACPI resource conflicts are ignored if this parameter is provided and
  set to 1.
  Provided since there are reports that system-wide acpi_enfore_resources=lax
  can result in boot failures on some systems.
  Note: This is inherently risky since it means that both ACPI and this driver
  may access the chip at the same time. This can result in race conditions and,
  worst case, result in unexpected system reboots.

* mmio

  If set to 1, the driver uses MMIO to access the chip if supported. This is
  faster and less risky (untested!).


Hardware Interfaces
-------------------

All the chips supported by this driver are LPC Super-I/O chips, accessed
through the LPC bus (ISA-like I/O ports). The IT8712F additionally has an
SMBus interface to the hardware monitoring functions. This driver no
longer supports this interface though, as it is slower and less reliable
than the ISA access, and was only available on a small number of
motherboard models.


Description
-----------

This driver implements support for the IT8603E, IT8620E, IT8622E, IT8623E,
IT8628E, IT8705F, IT8712F, IT8716F, IT8718F, IT8720F, IT8721F, IT8726F, IT8728F,
IT8732F, IT8758E, IT8771E, IT8772E, IT8781F, IT8782F, IT8783E/F, IT8786E,
IT8790E, and SiS950 chips.

These chips are 'Super I/O chips', supporting floppy disks, infrared ports,
joysticks and other miscellaneous stuff. For hardware monitoring, they
include an 'environment controller' with 3 temperature sensors, 3 fan
rotation speed sensors, 8 voltage sensors, associated alarms, and chassis
intrusion detection.

The IT8712F and IT8716F additionally feature VID inputs, used to report
the Vcore voltage of the processor. The early IT8712F have 5 VID pins,
the IT8716F and late IT8712F have 6. They are shared with other functions
though, so the functionality may not be available on a given system.

The IT8718F and IT8720F also features VID inputs (up to 8 pins) but the value
is stored in the Super-I/O configuration space. Due to technical limitations,
this value can currently only be read once at initialization time, so
the driver won't notice and report changes in the VID value. The two
upper VID bits share their pins with voltage inputs (in5 and in6) so you
can't have both on a given board.

The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E and later IT8712F revisions
have support for 2 additional fans. The additional fans are supported by the
driver.

The IT8716F, IT8718F, IT8720F, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
IT8783E/F, and late IT8712F and IT8705F also have optional 16-bit tachometer
counters for fans 1 to 3. This is better (no more fan clock divider mess) but
not compatible with the older chips and revisions. The 16-bit tachometer mode
is enabled by the driver when one of the above chips is detected.

The IT8726F is just bit enhanced IT8716F with additional hardware
for AMD power sequencing. Therefore the chip will appear as IT8716F
to userspace applications.

The IT8728F, IT8771E, and IT8772E are considered compatible with the IT8721F,
until a datasheet becomes available (hopefully.)

The IT8603E/IT8623E is a custom design, hardware monitoring part is similar to
IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
of the fan is not supported (value 0 of pwmX_enable).

The IT8620E and IT8628E are custom designs, hardware monitoring part is similar
to IT8728F. It only supports 16-bit fan mode. Both chips support up to 6 fans.

The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.

The IT8732F supports a closed-loop mode for fan control, but this is not
currently implemented by the driver.

Temperatures are measured in degrees Celsius. An alarm is triggered once
when the Overtemperature Shutdown limit is crossed.

Fan rotation speeds are reported in RPM (rotations per minute). An alarm is
triggered if the rotation speed has dropped below a programmable limit. When
16-bit tachometer counters aren't used, fan readings can be divided by
a programmable divider (1, 2, 4 or 8) to give the readings more range or
accuracy. With a divider of 2, the lowest representable value is around
2600 RPM. Not all RPM values can accurately be represented, so some rounding
is done.

Voltage sensors (also known as IN sensors) report their values in volts. An
alarm is triggered if the voltage has crossed a programmable minimum or
maximum limit. Note that minimum in this case always means 'closest to
zero'; this is important for negative voltage measurements. On most chips, all
voltage inputs can measure voltages between 0 and 4.08 volts, with a resolution
of 0.016 volt.  IT8603E, IT8721F/IT8758E and IT8728F can measure between 0 and
3.06 volts, with a resolution of 0.012 volt.  IT8732F can measure between 0 and
2.8 volts with a resolution of 0.0109 volt.  The battery voltage in8 does not
have limit registers.

On the IT8603E, IT8620E, IT8628E, IT8721F/IT8758E, IT8732F, IT8781F, IT8782F,
and IT8783E/F, some voltage inputs are internal and scaled inside the chip:
* in3 (optional)
* in7 (optional for IT8781F, IT8782F, and IT8783E/F)
* in8 (always)
* in9 (relevant for IT8603E only)
The driver handles this transparently so user-space doesn't have to care.

The VID lines (IT8712F/IT8716F/IT8718F/IT8720F) encode the core voltage value:
the voltage level your processor should work with. This is hardcoded by
the mainboard and/or processor itself. It is a value in volts.

If an alarm triggers, it will remain triggered until the hardware register
is read at least once. This means that the cause for the alarm may already
have disappeared! Note that in the current implementation, all hardware
registers are read whenever any data is read (unless it is less than 1.5
seconds since the last update). This means that you can easily miss
once-only alarms.

Out-of-limit readings can also result in beeping, if the chip is properly
wired and configured. Beeping can be enabled or disabled per sensor type
(temperatures, voltages and fans.)

The IT87xx only updates its values each 1.5 seconds; reading it more often
will do no harm, but will return 'old' values.

To change sensor N to a thermistor, 'echo 4 > tempN_type' where N is 1, 2,
or 3. To change sensor N to a thermal diode, 'echo 3 > tempN_type'.
Give 0 for unused sensor. Any other value is invalid. To configure this at
startup, consult lm_sensors's /etc/sensors.conf. (4 = thermistor;
3 = thermal diode)


Fan speed control
-----------------

The fan speed control features are limited to manual PWM mode. Automatic
"Smart Guardian" mode control handling is only implemented for older chips
(see below.) However if you want to go for "manual mode" just write 1 to
pwmN_enable.

If you are only able to control the fan speed with very small PWM values,
try lowering the PWM base frequency (pwm1_freq). Depending on the fan,
it may give you a somewhat greater control range. The same frequency is
used to drive all fan outputs, which is why pwm2_freq and pwm3_freq are
read-only.


Automatic fan speed control (old interface)
-------------------------------------------

The driver supports the old interface to automatic fan speed control
which is implemented by IT8705F chips up to revision F and IT8712F
chips up to revision G.

This interface implements 4 temperature vs. PWM output trip points.
The PWM output of trip point 4 is always the maximum value (fan running
at full speed) while the PWM output of the other 3 trip points can be
freely chosen. The temperature of all 4 trip points can be freely chosen.
Additionally, trip point 1 has an hysteresis temperature attached, to
prevent fast switching between fan on and off.

The chip automatically computes the PWM output value based on the input
temperature, based on this simple rule: if the temperature value is
between trip point N and trip point N+1 then the PWM output value is
the one of trip point N. The automatic control mode is less flexible
than the manual control mode, but it reacts faster, is more robust and
doesn't use CPU cycles.

Trip points must be set properly before switching to automatic fan speed
control mode. The driver will perform basic integrity checks before
actually switching to automatic control mode.


Temperature offset attributes
-----------------------------

The driver supports temp[1-3]_offset sysfs attributes to adjust the reported
temperature for thermal diodes or diode-connected thermal transistors.
If a temperature sensor is configured for thermistors, the attribute values
are ignored. If the thermal sensor type is Intel PECI, the temperature offset
must be programmed to the critical CPU temperature.

Preliminary support
-------------------

Support for IT8607E is preliminary. Voltage readings, temperature readings,
fan control, and fan speed measurements may be wrong and/or missing.
Fan control and fan speed may be enabled and reported for non-existing
fans. Please report any problems and inconsistencies.

Reporting information for unsupported chips
-------------------------------------------

If the chip in your system is not yet supported by the driver, please provide
the following information.

First, run sensors-detect. It will tell you something like

    Probing for Super-I/O at 0x2e/0x2f
    ...
    Trying family `ITE'...                                      Yes
    Found unknown chip with ID 0x8665
	(logical device 4 has address 0x290, could be sensors)

With this information, run the following commands.

sudo isadump -k 0x87,0x01,0x55,0x55 0x2e 0x2f 7
sudo isadump 0x295 0x296

and report the results.

The addresses in the first command are from "Probing for Super-I/O at
0x2e/0x2f". Use those addresses in the first command.
    sudo isadump -k 0x87,0x01,0x55,0x55 0x2e 0x2f 7

The addresses in the second command are from "has address 0x290".
Add 5 and 6 to this address for the next command.
    sudo isadump 0x295 0x296

Next, force-install the driver by providing one of the already supported chips
as forced ID. Useful IDs to test are 0x8622, 0x8628, 0x8728, and 0x8732, though
feel free to test more IDs. For each ID, instantiate the driver as follows
(this example is instantiating driver with ID 0x8622).
	sudo modprobe it87 force_id=0x8622
After entering this command, run the "sensors" command and provide the output.
Then unload the driver with
	sudo modprobe -r it87
Repeat with different chip IDs, and report each result.

Please also report your board type as well as voltages and fan settings from
the BIOS. If possible, connect fans to different fan headers and let us know
if all fans are detected and reported.

This information _might_ give us enough information to add experimental support
for the chip in question. No guarantees, though - unless a datasheet is
available, something is likely to be wrong.

A note on sensors-detect
========================

There is a persistent perception that changes in this driver would have impact
on the output of sensors-detect. This is not the case. sensors-detect is an
independent application. Changes in this driver do not affect sensors-detect,
and changes in sensors-detect do not affect this driver.

it87's People

Contributors

airbjorn avatar andreychernyshev avatar bcmm avatar bp0 avatar dankamongmen avatar direc85 avatar dymok93 avatar frankcrawford avatar futant avatar goc9000 avatar graysky2 avatar groeck avatar hannesha avatar kmalinich avatar koji54 avatar lebedev-a avatar steve-tech avatar yohan-pereira avatar zlika avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

it87's Issues

Mainlining the module delta?

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.

Gigabyte A320M-S2H V2 board test with IT8686E rev.2 chip

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.

Fix definition of struct dmi_device_id in mod_devicetable.h

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

Help to get the sensors working for a Gigabyte X670E Aorus Master (AM 5 Board with Ryzen 9)

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:

  1. How can I determine which precise chips are shipped with the board?
    With sensors-detect I found this:
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)
  1. Where can I find the the correct drivers for these chips?

  2. How do I build the drivers and make them available as you did?

Thanks a lot for the good work! :)

regards

FB

it8628

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

GRUB & systemd-boot (/etc/kernel/cmdline)

acpi_enforce_resources=lax

GIGABYTE X570 Aorus Master: https://github.com/arcnmx/home/blob/master/hw/x570am/default.nix#L16-L54

help with adding support for other ITE chips

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..

Report for Gigabyte B650M GAMING X AX (rev 1.3)

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:

sensors-detect
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 ~% 
sudo isadump -k 0x87,0x01,0x55,0x55 0x2e 0x2f 7
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.

Have to reinstall after every reboot

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:

  1. sudo ./dkms-install.sh
  2. make clean && make && sudo make install
  3. sudo make dkms

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 :)

Something is wrong with th it8625e support.

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

Fans PWM control not working on Gigabyte B560M DS3H V2 (ITE8689)

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.

AORUS Z790 Master

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

  • IT8689E
  • IT87952E
  • and Gigabyte EC ??
    Screenshot 2024-05-15 191630

dh-sequence-dkms missing from Build-Depends: in debian/control

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.

ITE8689: No such device

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

thank you

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 👍

Use UTC when creating DRIVER_VERSION

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.

B450 AORUS PRO

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

IT8665E on PRIME X470-PRO: No such device

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.