issue with IT87 on Asus
Luke Munholand
Luke.Munholand at USherbrooke.ca
Fri Feb 18 04:30:48 CET 2005
Hi,
First off, I'd like to say thanks to you for writing such a great program.
Works great on my i810 chipset on the other computer. This computer is a
different story though....
I'm hoping for a couple hints that will help me get my darned fans to turn off
(turn slower)! I have used the windows program "speedfan" which detects and
controls my fan1 (CPU) properly. From Speed Fan: ITE 8712F super IO. ISA bus
$0290 linked ISA bus @ $0D00 ... IT8712F/IT8705F at $D00
I have an Asus A7N8x-VM/400 motherboard that lm_sensors "sensors-detect"
correctly detects has a IT8712F chip on the ISA bus.
link to motherboard:
http://www.asus.com/prog/spec.asp?m=A7N8X-VM/400&langs=01
SUMMARY OF PROBLEM
1. I patched 2.9.0.1 and compiled i2c for my 2.4.29 kernel (stock slackware
10.1)
2. I tried to compile lm_sensors-2.9.0 but got errors (even after doing ldconfig
-v) *weird*
3. I downloaded the most recent "daily" cvs snapshot which compiled and it
compiled and installed properly.
4. "sensors-detect" correctly identified the IT87 chip.
5. lm_sensors2/prog/pwm/pwmconfig cant seem to stop the fan1? it says:
------------------------------------------------------------
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 it8712-isa-0d00/pwm1 ...
it8712-isa-0d00/fan1 ... speed was 4166 now 4166
no correlation
No correlations were detected.
There is either no fan connected to the output of it8712-isa-0d00/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)
-----------------------------------------------------
ARRRGGG
so I find in /proc/sys/dev/sensors/it8712-isa-0d00# The "control" files pwm1
and echo 0> pwm1
Still no joy...the fan refuses to stop.
Any guesses?
"sensors" gives in part (after i monkeyed with the /etc/sensors.conf file ...the
CPU and Motherboard chipset temps seemed inverted.)
-----------------------------------------------------------
it8712-isa-0d00
Adapter: ISA adapter
VCore 1: +1.63 V (min = +1.42 V, max = +1.57 V) ALARM
VCore 2: +1.57 V (min = +2.40 V, max = +2.61 V) ALARM
+3.3V: +6.62 V (min = +3.14 V, max = +3.46 V) ALARM
+5V: +4.94 V (min = +4.74 V, max = +5.24 V)
+12V: +11.84 V (min = +11.40 V, max = +12.60 V)
-12V: -7.88 V (min = -12.63 V, max = -11.41 V) ALARM
-5V: -7.32 V (min = -5.24 V, max = -4.76 V) ALARM
Stdby: +5.06 V (min = +4.74 V, max = +5.24 V)
VBat: +4.08 V
fan1: 4166 RPM (min = 0 RPM, div = 2)
fan2: 0 RPM (min = 0 RPM, div = 128)
fan3: 0 RPM (min = 0 RPM, div = 2)
CPU Temp: +43°C (low = +15°C, high = +40°C) sensor = diode
M/B Temp: +37°C (low = +15°C, high = +45°C) sensor = thermistor
Temp3: -1°C (low = +15°C, high = +45°C) sensor = disabled
vid: +1.65 V
---------------------------------------------------------
also you may want to know what modules are running (I also checked the kernel
config file and all i2c stuff is built as modules).
lsmod gives:
--------------------------------------------------------
Module Size Used by Not tainted
i2c-dev 3424 0
i2c-isa 784 0 (unused)
i2c-nforce2 3400 0
it87 10164 1
eeprom 3564 0
i2c-proc 6148 1 [it87 eeprom]
i2c-core 14852 0 [i2c-dev i2c-isa i2c-nforce2 it87 eeprom
i2c-proc]
snd-pcm-oss 36704 0 (unused)
snd-mixer-oss 12152 0 [snd-pcm-oss]
usb-ohci 19368 0 (unused)
ehci-hcd 17516 0 (unused)
usbcore 58860 1 [usb-ohci ehci-hcd]
forcedeth 9868 1
snd-intel8x0 18080 0
snd-ac97-codec 52472 0 [snd-intel8x0]
snd-pcm 54504 0 [snd-pcm-oss snd-intel8x0 snd-ac97-codec]
snd-timer 13412 0 [snd-pcm]
snd 31268 0 [snd-pcm-oss snd-mixer-oss snd-intel8x0
snd-ac97-codec snd-pcm snd-timer]
soundcore 3396 4 [snd]
snd-page-alloc 4712 0 [snd-mixer-oss snd-intel8x0 snd-pcm snd-timer
snd]
ide-scsi 9392 0
agpgart 45092 0 (unused)
--------------------------------------------------------
At this point, all I can say is I'll try a 2.6 kernel? Somehow I doubt that
will fix the problem though. I could try to fix it myself but have 0 experience
with hardware programming (though I am familiar with C )
Any words of wisdom or tips on how I can get the CPU fan to slow down in linux
..again it is possible because it does work with the Windoze prog Speed an.
Thanks a bunch!
Luke
PS The pertinant part of /etc/sensors.conf follows:
------------------------------------------------------------
chip "it87-*" "it8712-*"
# The values below have been tested on Asus CUSI, CUM motherboards.
# Voltage monitors as advised in the It8705 data sheet
label in0 "VCore 1"
label in1 "VCore 2"
label in2 "+3.3V"
label in3 "+5V"
label in4 "+12V"
label in5 "-12V"
label in6 "-5V"
label in7 "Stdby"
label in8 "VBat"
# vid is not monitored by IT8705F
# comment out if you have IT8712
# ignore vid
# Incubus Saturnus reports that the IT87 chip on Asus A7V8X-X seems
# to report the VCORE voltage approximately 0.05V higher than the board's
# BIOS does. Although it doesn't make much sense physically, uncommenting
# the next line should bring the readings in line with the BIOS' ones in
# this case.
# compute in0 -0.05+@ , @+0.05
# If 3.3V reads 2X too high (Soyo Dragon and Asus A7V8X-X, for example),
# comment out following line.
compute in2 2*@ , @/2
#
compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1)
compute in4 ((30/10) +1)*@ , @/((30/10) +1)
# For this family of chips the negative voltage equation is different from
# the lm78. The chip uses two external resistor for scaling but one is
# tied to a positive reference voltage. See ITE8705/12 datasheet (SIS950
# data sheet is wrong)
# Vs = (1 + Rin/Rf) * Vin - (Rin/Rf) * Vref.
# Vref = 4.096 volts, Vin is voltage measured, Vs is actual voltage.
# The next two are negative voltages (-12 and -5).
# The following formulas must be used. Unfortunately the datasheet
# does not give recommendations for Rin, Rf, but we can back into
# them based on a nominal +2V input to the chip, together with a 4.096V Vref.
# Formula:
# actual V = (Vmeasured * (1 + Rin/Rf)) - (Vref * (Rin/Rf))
# For -12V input use Rin/Rf = 6.68
# For -5V input use Rin/Rf = 3.33
# Then you can convert the forumula to a standard form like:
compute in5 (7.67 * @) - 27.36 , (@ + 27.36) / 7.67
compute in6 (4.33 * @) - 13.64 , (@ + 13.64) / 4.33
#
# this much simpler version is reported to work for a
# Elite Group K7S5A board
#
# compute in5 -(36/10)*@, -@/(36/10)
# compute in6 -(56/10)*@, -@/(56/10)
#
compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
set in0_min 1.5 * 0.95
set in0_max 1.5 * 1.05
set in1_min 2.4
set in1_max 2.6
set in2_min 3.3 * 0.95
set in2_max 3.3 * 1.05
set in3_min 5.0 * 0.95
set in3_max 5.0 * 1.05
set in4_min 12 * 0.95
set in4_max 12 * 1.05
set in5_max -12 * 0.95
set in5_min -12 * 1.05
set in6_max -5 * 0.95
set in6_min -5 * 1.05
set in7_min 5 * 0.95
set in7_max 5 * 1.05
#the chip does not support in8 min/max
# Temperature
#
# Important - if your temperature readings are completely whacky
# you probably need to change the sensor type.
# Adujst and uncomment the appropriate lines below.
# The old method (modprobe it87 temp_type=0xXX) is no longer supported.
#
# 2 = thermistor; 3 = thermal diode; 0 = unused
# set sensor1 3
# set sensor2 3
# set sensor3 3
# If a given sensor isn't used, you will probably want to ignore it
# (see ignore statement right below).
# label temp1 "M/B Temp"
set temp1_over 40
set temp1_low 15
# label temp2 "CPU Temp"
set temp2_over 45
set temp2_low 15
# ignore temp3
label temp3 "Temp3"
set temp3_over 45
set temp3_low 15
# The A7V8X-X has temperatures inverted, and needs a conversion for
# CPU temp. Thanks to Preben Randhol for the formula.
label temp1 "CPU Temp"
label temp2 "M/B Temp"
compute temp1 (-15.096+1.4893*@), (@+15.096)/1.4893
# The A7V600 also has temperatures inverted, and needs a different
# conversion for CPU temp. Thanks to Dariusz Jaszkowski for the formula.
# label temp1 "CPU Temp"
# label temp2 "M/B Temp"
# compute temp1 (@+128)/3, (3*@-128)
# Fans
set fan1_min 0
set fan2_min 0
# ignore fan3
set fan3_min 0
# The following is for the Inside Technologies 786LCD which uses either a
# IT8705F or a SIS950 for monitoring with the SIS630.
# You will need to load the it87 module as follows to select the correct
# temperature sensor type.
# modprobe it87 temp_type=0x31
# The sensors-detect program reports lm78 and a sis5595 and lists the it87 as
# a misdetect. Don't do the modprobe for the lm78 or sis5595 as suggested.
#
# delete or comment out above it87 section and uncomment the following.
#chip "it87-*"
# label in0 "VCore 1"
# label in1 "VCore 2"
# label in2 "+3.3V"
# label in3 "+5V"
# label in4 "+12V"
# label in5 "3.3 Stdby"
# label in6 "-12V"
# label in7 "Stdby"
# label in8 "VBat"
# in0 will depend on your processor VID value, set to voltage specified in
# bios setup screen
# set in0_min 1.7 * 0.95
# set in0_max 1.7 * 1.05
# set in1_min 2.4
# set in1_max 2.6
# set in2_min 3.3 * 0.95
# set in2_max 3.3 * 1.05
# set in3_min 5.0 * 0.95
# set in3_max 5.0 * 1.05
# +- 12V are very poor tolerance on this board. Verified with voltmeter
# set in4_min 12 * 0.90
# set in4_max 12 * 1.10
# set in5_min 3.3 * 0.95
# set in5_max 3.3 * 1.05
# set in6_max -12 * 0.90
# set in6_min -12 * 1.10
# set in7_min 5 * 0.95
# set in7_max 5 * 1.05
# vid not monitored by IT8705F
# ignore vid
# compute in3 ((6.8/10)+1)*@ , @/((6.8/10)+1)
# compute in4 ((30/10) +1)*@ , @/((30/10) +1)
# compute in6 (1+232/56)*@ - 4.096*232/56, (@ + 4.096*232/56)/(1+232/56)
# compute in7 ((6.8/10)+1)*@ , @/((6.8/10)+1)
# Temperature
# label temp1 "CPU Temp"
# ignore temp2
# ignore temp3
# Fans
# set fan1_min 3000
# ignore fan2
# ignore fan3
chip "fscpos-*"
# Fujitsu-Siemens Poseidon chip
# Temperature
More information about the lm-sensors
mailing list