1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
|
# Hardware sensors configuration file
#
##########################################################################
# 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 !!! #
##########################################################################
#
# 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
# '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-*"
# 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
# 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 in0
# 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-*" "w83627hf-*"
# 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 "as99127f-*"
# Same as above for w83782d except that in5 and in6 negative voltages
# are computed as in the w83781d.
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 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 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
chip "gl518sm-*"
# 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
set fan1_off 0
set fan2_min 0
set iterate 0
chip "gl520sm-*"
# Factors and labels taken from GL520SM datasheet
label vdd "+5V"
label vin1 "+3.3V"
label vin2 "+12V"
label vin3 "Vcore"
label vin4 "-12V"
# vin1 and vin3 require no scaling
# vin2 depends on external resistors (4,7k and 15k assumed)
# vin4 = ((R1+R2)/R2)*@ - (R1/R2)*vdd
#
# -12 --| R1 |---t---| R2 |-- +5
# |
# vin4
#
compute vin2 (197/47)*@ , @/(197/47)
compute vin4 (5*@)-(4*vdd) , (@+4*vdd)/5
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
set two_temps 1
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/30.1 + 1) * @, @ / (160/30.1 + 1)
compute in5 (160/35.7)*(@ - in0) + @, (@ + in0 * 160/35.7)/ (1 + 160/35.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 * 1.05
set in5_max -12 * 0.95
set in6_min -5 * 1.05
set in6_max -5 * 0.95
chip "maxilife-cg-*" "maxilife-co-*" "maxilife-as-*"
label fan1 "HDD Fan"
label fan2 "PCI Fan"
label fan3 "CPU Fan"
ignore fan4
label temp2 "PCI Temp"
label temp4 "HDD Temp"
label temp5 "CPU Temp"
ignore temp6
label vid1 "V+12"
ignore vid5
# vid1 need to be scaled by 6.337 other voltages
# require no scaling
compute vid1 6.337*@ , @/6.337
chip "maxilife-cg-*"
ignore temp1
label temp3 "BX Temp"
label vid2 "Vcpu1"
label vid3 "Vcpu2"
ignore 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-*"
ignore temp1
ignore temp3
label vid2 "Vcpu"
ignore vid3
ignore vid4
chip "maxilife-nba-*"
label fan1 "CPU Fan"
label fan2 "PCI Fan"
label fan3 "HDD Fan"
label fan4 "Heat Sink Fan"
label temp1 "CPU 1 Temp"
label temp2 "CPU 2 Temp"
label temp3 "PCI/Ambient Temp"
label temp4 "HDD Temp"
label temp5 "Motherboard Temp"
label temp6 "CPU Reference Temp"
label vid1 "V+12"
label vid2 "Vcpu1"
label vid3 "Vcpu2"
label vid4 "VcacheL2"
label vid5 "V-12"
chip "via686a-*"
# VIA is very specific about the voltage sensor inputs, and our labels
# reflect what they say. Unfortunately, they are not at all specific about
# how to convert any of the register values to real units. Fortunately,
# Jonathan Yew <j.teh@iname.com> and Alex van Kaam <darkside@chello.nl>
# came through with some data for temp conversion and formulae for voltage
# conversion. However, the conversions should be regarded as our best guess-
# YMMV. If you notice any glaring inaccuracies (eg. by comparing what sensors
# says to what your BIOS says when you boot up), please let us know so we can
# improve.
# On the Tyan S1598, the 2.5V sensor reads 0 and is not displayed in the BIOS.
# Also, Linas Vepstas <linas@linas.org> reports that this sensor shows
# nothing of interest on the Abit KA7 (Athalon), and is also not displayed
# in the BIOS. So, if you have either of these boards may want to uncomment
# the 'ignore 2.5V' line below.
label "2.0V" "CPU core"
label "2.5V" "+2.5V"
#ignore "2.5V"
label "3.3V" "I/O"
label "5.0V" "+5V"
label "12V" "+12V"
label fan1 "CPU Fan"
label fan2 "P/S Fan"
# VIA suggests that temp3 is an internal temp sensor for the 686a. However,
# on the Tyan S1598 as well as the Abit KA7 (Athalon), the absolute values
# of the readings from that sensor are not valid. The readings do seem to
# correlate with temp changes, but the conversion factor may be quite
# different from temp1 & temp2 (as noted above, VIA has not provided
# conversion info). So, you may wish to 'ignore temp3'.
label temp1 "SYS Temp"
label temp2 "CPU Temp"
label temp3 "SBr Temp"
#ignore temp3
# Set your CPU core limits here. For the other voltage sensors, the
# built-in defaults should be fine.
set in0_min 2.0
set in0_max 2.5
# Set your temp limits here. Remember, 'tempX_over' is the temp at which an
# alarm is triggered, and 'tempX_hyst' is the temp at which an alarm turns off.
# Setting tempX_hyst to a few degrees below the corresponding tempX_over
# prevents an oscillation between alarm on and off states. This kind of
# oscillation is known as hyteresis, thus the name. (You typically get the
# most serious and troublesome hysteresis when a sensor triggers something to
# reduce the temp, thus creating a negative feedback loop. Even without that,
# we would still get some oscillation when the temp hovers around the limit
# due to noise.)
set temp1_hyst 40
set temp1_over 45
set temp2_hyst 55
set temp2_over 60
set temp3_hyst 60
set temp3_over 65
# You could set your fan limits too, but the defaults should be fine.
#set fan1_min 5000
#set fan2_min 5000
# For at least one Tyan S1598, the following corrections make the sensors
# readings more in-line with the BIOS readings on boot. Try these, and
# adjust as necessary.
#compute "2.0V" 1.02*@ , @/1.02
#compute "3.3V" 1.02*@ , @/1.02
#compute "5.0V" 1.009*@ , @/1.009
#compute "12V" 1.04*@ , @/1.04
|