# Sensors configuration file used by 'libsensors' #------------------------------------------------ # ########################################################################## # # # PLEASE READ THIS HELPFUL HINT!!! # # # # The 'set' lines (generally for min and max values) # # do not take effect until you run 'sensors -s' as root !!! # # We suggest you put 'sensors -s' in a /etc/rc.d/... file # # to be run at boot time after the modules are inserted !!! # # # ########################################################################## # # # OVERVIEW # -------- # This configuration file will be used by all userspace applications # linked to libsensors. It is NOT used by the lm_sensors drivers directly. # # 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. # # # CHIP LINES # ---------- # A 'chip' line specifies what the following 'label', 'compute', 'set' and # 'ignore' 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-*" # # # FEATURE NAMES # ------------- # Feature names are used in 'label', 'compute', 'set', and 'ignore' lines. # Example feature names are 'in0', 'temp2', 'in3_min', and 'temp3_over'. # These features are defined for each chip in lib/chips.c. # # Undefined features will be silently ignored in 'label' and 'compute' lines. # Undefined features in 'set' lines will result in 'Unknonw feature name' # when running 'sensors -s'. # # Unfortunately, feature names starting with a number must be in # double quotes or you get 'parse error, expecting 'NAME''. # # If you have trouble, verify the features in lib/chips.c!!! # # # LABEL LINES # ----------- # 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 most # boards 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" # # # COMPUTE LINES # ------------- # 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). # # # VOLTAGE COMPUTATION DETAILS # --------------------------- # Most voltage sensors in sensor chips have a range of 0 to 4.096 Volts. # This is generally sufficient for the 3.3 and CPU (2.5V, for example) # supply voltages, so the sensor chip reading is the actual voltage. # # Other supply voltages must be scaled with an external resistor network. # The chip driver generally reports the 'raw' value 0 - 4.09 V, and the # userspace application must convert this raw value to an actual voltage. # The 'compute' lines provide this facility. # # Unfortunately the resistor values vary among motherboard types. # Therefore you may have to adjust the computations in this file # to match your motherboard. # # For positive voltages (in3, 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 # # Note: Some chips use a different formula, see it87 section for example. # # 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 LINES # --------- # 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! # # Important note: In the 'sensors' program, these only take effect # after running 'sensors -s'!!! # # Here are some examples: # # set in0_max vid*1.05 # set in0_min vid*0.95 # set temp1_over 40 # set temp1_hyst 37 # # Think of tempx_over as 'alarm set' and tempx_hyst as 'alarm clear' # thresholds. In most cases the 'over' value should be higher than # the 'hyst' value by several degrees. # # # IGNORE LINES # ------------ # Ignore 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'. # 'ignore' does not disable anything in the actual sensor chip; it # simply advises the user program to not access that data. # # ignore in0 # # # STATEMENT ORDER # --------------- # Statements can go in any order, EXCEPT that some statements depend # on others. Dependencies could be either in the library or the driver. # A 'compute' statement must go before a 'set' statement # for the same feature or else the 'set' won't be computed correctly. # This is a library dependency. # A 'set fan1_div' statement must go before a 'set fan1_min' statement, # because the driver uses the divisor in calculating the minimum. # # # BUS LINES # --------- # 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 "vt1211-*" "vt8231-*" # # temp1 and in6 are not implemented in vt1211 / vt8231 # temp4-7 (thermistor) cacluations unimplemented here - requires logarithms :( # # 1 for temp, 0 for volt. # Sensor Voltage Mode Temp Mode config bit # -------- ------------ --------- -------------- # Reading 1 temp3 # UCH1/Reading2 in0 temp2 0x04 (4) # UCH2 in1 temp4 0x08 (8) # UCH3 in2 temp5 0x10 (16) # UCH4 in3 temp6 0x20 (32) # UCH5 in4 temp7 0x40 (64) # 3.3V in5 # # set uch1-2 to temp mode, uch3-5 to voltage mode # ignore temp1 ignore in6 set config 12 ignore in0 ignore in1 ignore temp2 ignore temp4 ignore temp5 ignore temp6 ignore temp7 ignore fan1 ignore fan2 # # label in0 "unused" # label in1 "unused" label in2 "VCore1" label in3 "+5V" label in4 "+12V" label in5 "+3.3V" # label in6 "VCore2" # label temp1 "1211 Temp" # label temp2 "MB1 Temp" label temp3 "Proc Temp" # label temp4 "MB2 Temp" # # All voltage calculations have the form # ((@ * 100) - 3) / (K * 95.8), (@ * K * 0.958) + .03 # where K = R2 / (R1 + R2). # Use the following K values based on input voltage. # This of course assumes the mobo has the resistors # recommended by Via in the datasheet. # Voltage K # VCore 1.0 # 2.5 0.8333 # 3.3 (in5 internal) 0.6296 # 3.5 (3.3V ext.) 0.5952 # 5.0 0.4167 # 12.0 0.1754 # # compute in0 ((@ * 100) - 3) / (0.5952 * 95.8), (@ * 0.5952 * 0.958) + .03 # compute in1 ((@ * 100) - 3) / (0.8333 * 95.8), (@ * 0.8333 * 0.958) + .03 compute in2 ((@ * 100) - 3) / (0.5952 * 95.8), (@ * 0.5952 * 0.958) + .03 compute in3 ((@ * 100) - 3) / (0.4167 * 95.8), (@ * 0.4167 * 0.958) + .03 compute in4 ((@ * 100) - 3) / (0.1754 * 95.8), (@ * 0.1754 * 0.958) + .03 compute in5 ((@ * 100) - 3) / (0.6296 * 95.8), (@ * 0.6296 * 0.958) + .03 # compute in6 ((@ * 100) - 3) / (0.5952 * 95.8), (@ * 0.5952 * 0.958) + .03 set vrm 9.1 # set in0_min 2.5 * 0.95 # set in0_max 2.5 * 1.05 # set in1_min 2.5 * 0.95 # set in1_max 2.5 * 1.05 set in2_min vid * 0.97 set in2_max vid * 1.03 set in3_min 5.0 * 0.95 set in3_max 5.0 * 1.05 set in4_min 12.0 * 0.90 set in4_max 12.0 * 1.10 set in5_min 3.3 * 0.95 set in5_max 3.3 * 1.05 # set in6_min 2.0 * 0.97 # set in6_max 2.0 * 1.03 # compute temp1 (@ - 65) / 0.9686, (@ * 0.9686) + 65 compute temp3 (@ - 65) / 0.9686, (@ * 0.9686) + 65 # set temp1_hyst 40 # set temp1_over 45 set temp2_hyst 55 set temp2_over 60 set temp3_hyst 60 set temp3_over 65 set temp4_hyst 60 set temp4_over 65 # set fan1_min 3000 # set fan2_min 3000