Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Dec 1999 23:27:39 -0500
From:      Ted Sikora <tsikora@home.com>
To:        "Chris D. Faulhaber" <jedgar@fxp.org>, "freebsd-stable@FreeBSD.ORG" <freebsd-stable@FreeBSD.ORG>
Subject:   Re: Temperature
Message-ID:  <386ADF3B.EF6E12FA@home.com>
References:  <Pine.BSF.4.10.9912292310090.8891-100000@pawn.primelocation.net>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------217E2D7A4A6085CE492980CC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

"Chris D. Faulhaber" wrote:
> 
> On Wed, 29 Dec 1999, Ted Sikora wrote:
> 
> > Marc Nicholas wrote:
> > >
> > > You're referring to the temps reported via an LM78 or similar, yes?
> > The machines bios with Winbond W83782d IC
> >
> 
> That may explain it, then.
> 
> > > not reporting that the machine is actually getting HOTTER under FreeBSD?
> >
> > It is HOTTER under FreeBSD. Immediatelly upon boot-up it's 26F
> > hotter under FreeBSD than under Linux. Sometime after 3.4-RC and
> > now this started. (I follow the stable branch via CVSup) Under
> > 3.3-STABLE the temerature was always the same as Linux...cool averaging
> > 89F for the CPU's. Now it's over 113F under FreeBSD only. I know it's
> > wierd but the machine does not lie. Under Linux it's the same as before
> > 87-89F.
> >
> 
> The Winbond chipsets seems to have different multipliers than the LM78
> chipsets.  As author of lmmon/wmlmmon, I have yet to get someone to test
> so I can verify what the correct multipliers are.
> 

Check out this lm_sensor script from Linux. Maybe it can help?

Why did they report identical ranges before and now FreeBSD is hotter?
That I don't understand. The alarm went off twice now.

--
Ted Sikora
Jtl Development Group 
tsikora@powerusersbbs.com
http://powerusersbbs.com
--------------217E2D7A4A6085CE492980CC
Content-Type: text/plain; charset=us-ascii;
 name="sensors.conf"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="sensors.conf"

# Hardware sensors configuration file

# This configuration file will be used by all applications linked to 
# libsensors.

# This config file consists of two parts: the heavily commented LM78
# example, and the real parts. Search for '####' if you want to skip
# to the real stuff.

# Hash marks introduce comments, which continue until the end of a line
#
# Identifiers consisting of only digits and letters can be used
# unquoted; other identifiers must be quoted. Escape characters within
# quotes operate like those in C.

# A 'chip' line specifies what the following 'label', 'compute', 'set' and 
# (not yet implemented) 'valid' lines refer to. In this case, until the
# next 'chip' line, everything refers to all lm78, lm78-j and lm79
# chips. Other examples are *-isa-* for everything on the ISA bus, and
# lm78-j-i2c-*-4e for all lm78-j chips on address 0x4e of any I2C bus.
#
# If more chip statements match a specific chip, they are all considered.
# Later lines overrule earlier lines, so if you set the in0 label for
# lm78-* to "This", and later on the in0 label for lm78-isa-* to "That",
# "That" is used for LM78 chips on the ISA bus, and "This" for LM78
# chips on a non-ISA bus.

#chip "lm78-*" "lm78-j-*" "lm79-*"

# A label line describes what a certain feature stands for on your
# mainboard. Programs can retrieve these names and display them.
# If no label is specified for a certain feature, the default name
# (ie. 'fan1' for fan1) is used.

# If you specify a label for in1, this label is also used for in1_min and
# in1_max, unless they have their own labels declared. There are several
# of these logical groups.

# These are as advised in the LM78 and LM79 data sheets, and used on almost
# any mainboard we have seen.

#  label in0 "VCore 1"
#  label in1 "VCore 2"
#  label in2 "+3.3V"
#  label in3 "+5V"
#  label in4 "+12V"
#  label in5 "-12V"
#  label in6 "-5V"
  
# A compute line describes how to scale a certain feature. There are
# two expressions in it: the first describes how the /proc value must
# be translated to a user value, the second how a user value must be
# translated to a /proc value. '@' is the value to operate on. You may
# refer to other readable features (like '2 * vid').

# Like for the label statement, there are logical groups here. They are
# sometimes a bit different, though. For example, fan1_div is in the
# logical label group of fan1 (it gets the same label if none is declared
# for it), but it is not in the compute group of fan1 (as it uses a
# completely different system of values).

# For positive voltages (in0..in4), two resistors are used, with the following
# formula (R1,R2: resistor values, Vs: read voltage, Vin: pin voltage)
#   R1 = R2 * (Vs/Vin - 1)
# For negative voltages (in5, in6) two resistors are used, with the following
# formula (Rin,Rf: resistor values, Vs: read voltage, Vin: pin voltage)
#   Rin = (Vs * Rf) / Vin

# Here are the official LM78 and LM79 data sheet values.
#       Vs     R1,Rin   R2,Rf    Vin
# in3   +5.0      6.8    10     +2.98
# in4  +12.0     30      10     +3.00
# in5  -12.0    240      60     +3.00
# in6   -5.0    100      60     +3.00

# These would lead to these declarations:
# compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
# compute in4 ((30/10)+1)*@  ,  @/((30/10)+1)
# compute in5 -(240/60)*@    ,  -@/(240/60)
# compute in6 -(100/60)*@    ,  -@/(100/60)

# On almost any mainboard we have seen, the Winbond compute values lead to
# much better results, though. 

#       Vs     R1,Rin   R2,Rf    Vin
# in4  +12.0     28      10     +3.00
# in5  -12.0    210      60.4   +3.00
# in6   -5.0     90.9    60.4   +3.00

# These leads to these declarations:
#  compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
#  compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
#  compute in5 -(210/60.4)*@  ,  -@/(210/60.4)
#  compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)

# Set statements set things like limits. Complete expressions can be
# used. Not everything can sensibly be set: setting 'in0', for example,
# is impossible! These settings are put through the compute translations;
# so if we specify '12.8' for in6, '3.2' will actually be written!

#set in0_max vid*1.05
#set in0_min vid*0.95

# Invalid statements tell certain features are not wanted. User programs can
# still read them if they really want, though; this is just an advisory
# marking. 'in0' would also invalidate 'in0_max' and 'in0_min'.
# The invalid keyword is not yet recognized by the parser.


# There is one other feature: the 'bus' statement. An example is below.

#bus "i2c-0" "SMBus PIIX4 adapter at e800" "Non-I2C SMBus adapter"

# If we refer from now on to 'i2c-0' in 'chip' lines, this will run-time
# be matched to this bus. So even if the PIIX4 is called 'i2c-5' at that
# moment, because five other adapters were detected first, 'i2c-0' in
# the config file would always only match this physical bus. In the above
# config file, this feature is not needed; but the next lines would
# only affect the LM75 chips on the PIIX4 adapter:

#chip "lm75-i2c-0-*"

# You should really use the output of /proc/bus/chips to generate bus lines,
# because one mistyped characted will inhibit the match. Wildcards are not
# yet supported; spaces at the end are ignored, though.





#### Here begins the real configuration file

chip "lm78-*" "lm78-j-*" "lm79-*" "w83781d-*" "sis5595-*"

# These are as advised in the LM78 and LM79 data sheets, and used on almost
# any mainboard we have seen.

    label in0 "VCore 1"
    label in1 "VCore 2"
    label in2 "+3.3V"
    label in3 "+5V"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"

# For positive voltages (in0..in4), two resistors are used, with the following
# formula (R1,R2: resistor values, Vs: read voltage, Vin: pin voltage)
#   R1 = R2 * (Vs/Vin - 1)
# For negative voltages (in5, in6) two resistors are used, with the following
# formula (Rin,Rf: resistor values, Vs: read voltage, Vin: pin voltage)
#   Rin = (Vs * Rf) / Vin

# Here are the official LM78 and LM79 data sheet values.
#       Vs     R1,Rin   R2,Rf    Vin
# in3   +5.0      6.8    10     +2.98
# in4  +12.0     30      10     +3.00
# in5  -12.0    240      60     +3.00
# in6   -5.0    100      60     +3.00

# These would lead to these declarations:
# compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
# compute in4 ((30/10)+1)*@  ,  @/((30/10)+1)
# compute in5 -(240/60)*@    ,  -@/(240/60)
# compute in6 -(100/60)*@    ,  -@/(100/60)

# On almost any mainboard we have seen, the Winbond compute values lead to
# much better results, though. 

#       Vs     R1,Rin   R2,Rf    Vin
# in4  +12.0     28      10     +3.00
# in5  -12.0    210      60.4   +3.00
# in6   -5.0     90.9    60.4   +3.00

# These leads to these declarations:

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 -(210/60.4)*@  ,  -@/(210/60.4)
    compute in6 -(90.9/60.4)*@ ,  -@/(90.9/60.4)

# Here, we assume the VID readings are valid, and we use a max. 5% deviation

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    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_min -12 * 0.95
    set in5_max -12 * 1.05
    set in6_min -5 * 0.95
    set in6_max -5 * 1.05


chip "w83782d-*" "w83783s-*"

# Same as above for w83781d except that in5 and in6 are computed differently.
# Rather than an internal inverting op amp, the 82d/83s use standard positive
# inputs and the negative voltages are level shifted by a 3.6V reference.
# The math is convoluted, so we hope that your motherboard
# uses the recommended resistor values.

    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 "V5SB"
    label in8 "VBat"

    compute in3 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)
    compute in4 ((28/10)+1)*@  ,  @/((28/10)+1)
    compute in5 (5.14 * @) - 14.91  ,  (@ + 14.91) / 5.14
    compute in6 (3.14 * @) -  7.71  ,  (@ +  7.71) / 3.14
    compute in7 ((6.8/10)+1)*@ ,  @/((6.8/10)+1)

# set limits to  5% for the critical voltages
# set limits to 10% for the non-critical voltages
# set limits to 20% for the battery voltage

    set in0_min vid*0.95
    set in0_max vid*1.05
    set in1_min vid*0.95
    set in1_max vid*1.05
    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.90
    set in4_max 12 * 1.10
    set in5_min -12 * 0.90
    set in5_max -12 * 1.10
    set in6_min -5 * 0.95
    set in6_max -5 * 1.05
    set in7_min 5 * 0.95
    set in7_max 5 * 1.05
    set in8_min 3.0 * 0.80
    set in8_max 3.0 * 1.20

# set up sensor types (thermistor is default)
# 1 = PII/Celeron Diode; 2 = 3904 transistor;
# 3435 = thermistor with Beta = 3435
# If temperature changes very little, try 1 or 2.
#   set sensor1 1
#   set sensor2 2
#   set sensor3 3435


chip "gl518sm-r00-*" "gl518sm-r80-*"

# Factors and labels taken from GL518SM datasheet, they seem to give
# reasonable values with EISCA connected Fan78

  label vdd "+5V"
  label vin1 "+3.3V"
  label vin2 "+12V"
  label vin3 "Vcore"

# vin2 depends on external resistors (4,7k and 15k assumed here) 
# vin1 and vin3 require no scaling

  compute vin2 (197/47)*@  ,  @/(197/47)

  set vdd_min 4.8
  set vdd_max 5.2
  set vin1_min 3.20
  set vin1_max 3.40
  set vin2_min 11.0
  set vin2_max 13.0
  set vin3_min 2.10
  set vin3_max 2.30

chip "lm80-*"
    
# The values below should be correct if you own a qdi BX (brilliant1)
# mainboard. If not, please contact us, so we can figure out better readings.
# Many thanks go to Peter T. Breuer <ptb@it.uc3m.es> for helping us figure
# out how to handle the LM80.

# For positive voltages (in0..in4), two resistors are used, with the following
# formula (R1,R2: resistor values, Vs: read voltage, Vin: pin voltage)
#   R1 = R2 * (Vs/Vin - 1)
# For negative voltages (in5, in6) two resistors are used, with the following
# formula (R3,R4: resistor values, Vs: read voltage, Vin: pin voltage, 
# V5: +5V)
#   R3 = R4 * (Vs - Vin) / (Vin - V5) 

# Here are the official LM78 and LM79 data sheet values.
#       Vs      R1,R3   R2,R4    Vin
#       +2.5V    23.7    75     +1.9
#       +3.3V    22.1    30     +1.9
#       +5.0     24      14.7   +1.9
#      +12.0    160      30.1   +1.9
#      -12.0    160      35.7   +1.9
#       -5.0     36      16.2   +1.9

# Now curiously enough, VCore is connected with (unknown) resistors, which
# translate a +2.8V to +1.9V. So we use that in the computations below.

    label in0 "+5V"
    label in1 "VTT"
    label in2 "+3.3V"
    label in3 "+Vcore"
    label in4 "+12V"
    label in5 "-12V"
    label in6 "-5V"

    compute in0 (24/14.7 + 1) * @ ,       @ / (24/14.7 + 1)
    compute in2 (22.1/30 + 1) * @ ,       @ / (22.1/30 + 1)
    compute in3 (2.8/1.9) * @,            @ * 1.9/2.8
    compute in4 (160/35.7 + 1) * @,       @ / (160/35.7 + 1)
    compute in5 (160/35.7)*(@ - in0) + @, (@ + in0 * 160/25.7)/ (1 + 160/25.7)
    compute in6 (36/16.2)*(@ - in0) + @,  (@ + in0 * 36/16.2) / (1 + 36/16.2)

    set in0_min 5 * 0.95
    set in0_max 5 * 0.95
# What is your VTT? It is probably not this value...
    set in1_min 2*0.95
    set in1_max 2*1.05
    set in2_min 3.3 * 0.95
    set in2_max 3.3 * 1.05
# What is your VCore? It is probably not this value...
    set in3_min 1.9 * 0.95
    set in3_max 1.9 * 1.05
    set in4_min 12 * 0.95
    set in4_max 12 * 1.05
    set in5_min -12 * 0.95
    set in5_max -12 * 1.05
    set in6_min -5 * 0.95
    set in6_max -5 * 1.05


chip "maxilife-cg-*" "maxilife-co-*" "maxilife-as-*"

   label fan1  "HDD Fan"
   label fan2  "PCI Fan"
   label fan3  "CPU Fan"
   
   label temp2 "PCI Temp"
   label temp4 "HDD Temp"
   label temp5 "CPU Temp"

   label vid1  "V+12"

# vid1 need to be scaled by 6.337 other voltages 
# require no scaling

   compute vid1 6.337*@ , @/6.337


chip "maxilife-cg-*"

#   invalid temp1
   label temp3  "BX Temp"
   
   label vid2   "Vcpu1"
   label vid3   "Vcpu2"
#   invalid vid4


chip "maxilife-co-*"

   label temp1  "CPU 1 Temp"
   label temp3  "CPU 2 Temp"
   
   label vid2   "Vcpu1"
   label vid3   "Vcpu2"
   label vid4   "VcacheL2"


chip "maxilife-as-*"

#   invalid temp1
#   invalid temp3

   label vid2   "Vcpu"
#   invalid vid3
#   invalid vid4
bus "i2c-0" "SMBus PIIX4 adapter at 5000" "Non-I2C SMBus adapter"

--------------217E2D7A4A6085CE492980CC--



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?386ADF3B.EF6E12FA>