File: fan-divisors

package info (click to toggle)
lm-sensors 1%3A2.10.1-3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 5,104 kB
  • ctags: 10,474
  • sloc: ansic: 61,469; perl: 7,544; sh: 1,491; makefile: 400; lex: 300; yacc: 291
file content (105 lines) | stat: -rw-r--r-- 3,120 bytes parent folder | download | duplicates (2)
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
Fan reading problems and solutions
----------------------------------

If you aren't getting the expected readings on your fans,
try the following:

- Do you get a fan reading in the BIOS or in DOS?
  If not, you may not have a fan with a tachometer output.
  Look and see. Fans with tachometer outputs have THREE wires.

- Try experimenting with the fan divisor settings:


Fan Divisor Settings
--------------------

Fan Divisor	Minimum RPM	Maximum RPM
-----------	-----------	-----------
  1		5314		1350000
  2		2657		 675000		default on most chips
  4		1328		 337500
  8		 664		 168750
 16		 332		  84375		not supported on most chips
 32		 166		  42187		""
 64		  83		  21093		""
128		  41		  10546		""


Pick a divisor so that the nominal RPM is about 50%
above the minimum. This is a good compromise between
margin and accuracy. Note that most chips only support
fan divisors of 1, 2, 4, and 8.

If you have a 0 RPM reading some or all of the time,
increase the divisor until you get good readings.

If you have a nominal reading less than 1.25 times the
minimum, increase the divisor to give you margin
so that you will not get spurious alarms.

If you have a nominal reading more than 3 times the
minimum, decrease the divisor to provide better
accuracy.


How to change fan divisors
--------------------------

  Method 1: "echo x y z > /proc/sys/dev/sensors/...../fan_div"
  where 'x y z' are the fan divisors for the three fans and '...'
  is the sensor in question.

  Method 2: Put an entry "set fanx_div y" in the appropriate section
  of /etc/sensors.conf and rerun 'sensors -s'.
  (x is the number of the fan 1-3 and y is the divisor).


Further details
---------------

Fan divisors are quite confusing.

Sensor chips count fan speed by using the fan signal
to gate an 8-bit counter driven by a 22.5 kHz clock.
So the _higher_ the counter value, the _slower_ the fan,
and vice versa.

The term 'fan divisor' is a misnomer because it doesn't divide
the fan signal, it divides the 22.5 kHz clock.
Thus you _increase_ the divisor if you have a slow fan.

The drivers account for the 'fan divisor' in its calculation
of RPM. So changing the fan divisor will NOT change the
nominal RPM reading, it will only affect the minimum and maximum
readings and the accuracy of the readings.

The actual formula is RPM = (60 * 22500) / (count * divisor)

The readings are most accurate when the fan speed is low
(i.e., close to the minimum possible RPM reading).
As fan speed gets closer to the maximum possible RPM reading,
the reading becomes quite inaccurate. Fortunately, most computer
fans do not approach 1,000,000 RPM !


Fan readings 2X too high
------------------------

This is caused by a fan clock which is actually half the expected
22.5 kHz, or by a fan which outputs twice as many pulses per revolution
as expected.

As we learned above, you can _not_ fix this by changing
the fan divisor. You must add entries into the appropriate
section of /etc/sensors.conf:

	compute fan1  @/2,  2*@
	compute fan2  @/2,  2*@
	compute fan3  @/2,  2*@




------------------
Copyright (c) 2000-2004 Mark D. Studebaker