From owner-freebsd-stable Wed Dec 29 20:27:46 1999 Delivered-To: freebsd-stable@freebsd.org Received: from mail.rdc1.ct.home.com (ha1.rdc1.ct.home.com [24.2.0.66]) by hub.freebsd.org (Postfix) with ESMTP id 7324114D9A for ; Wed, 29 Dec 1999 20:27:35 -0800 (PST) (envelope-from tsikora@home.com) Received: from home.com ([24.2.168.186]) by mail.rdc1.ct.home.com (InterMail v4.01.01.07 201-229-111-110) with ESMTP id <19991230042732.GIWR9446.mail.rdc1.ct.home.com@home.com>; Wed, 29 Dec 1999 20:27:32 -0800 Message-ID: <386ADF3B.EF6E12FA@home.com> Date: Wed, 29 Dec 1999 23:27:39 -0500 From: Ted Sikora Reply-To: tsikora@powerusersbbs.com Organization: Jtl Development X-Mailer: Mozilla 4.7 [en] (X11; I; Linux 2.3.34 i686) X-Accept-Language: en-US,en-GB MIME-Version: 1.0 To: "Chris D. Faulhaber" , "freebsd-stable@FreeBSD.ORG" Subject: Re: Temperature References: Content-Type: multipart/mixed; boundary="------------217E2D7A4A6085CE492980CC" Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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 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