frankcrawford / it87 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hannesha/it87
This project forked from hannesha/it87
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.
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.
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.
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
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
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
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..
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
.
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 🙏
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
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.
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
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.
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
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 👍
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.
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.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?
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.