| 1 |
Fan reading problems and solutions |
|---|
| 2 |
---------------------------------- |
|---|
| 3 |
|
|---|
| 4 |
If you aren't getting the expected readings on your fans, |
|---|
| 5 |
try the following: |
|---|
| 6 |
|
|---|
| 7 |
- Do you get a fan reading in the BIOS or using a different OS? |
|---|
| 8 |
If not, you may not have a fan with a tachometer output. |
|---|
| 9 |
Look and see. Fans with tachometer outputs have at least 3 wires. |
|---|
| 10 |
Fans with only 2 wires cannot, in general, report their speed. |
|---|
| 11 |
|
|---|
| 12 |
- Try experimenting with the fan divisor settings: |
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
Fan Divisor Settings |
|---|
| 16 |
-------------------- |
|---|
| 17 |
|
|---|
| 18 |
Fan Divisor Minimum RPM Maximum RPM |
|---|
| 19 |
----------- ----------- ----------- |
|---|
| 20 |
1 5314 1350000 |
|---|
| 21 |
2 2657 675000 default on most chips |
|---|
| 22 |
4 1328 337500 |
|---|
| 23 |
8 664 168750 |
|---|
| 24 |
16 332 84375 not supported on most chips |
|---|
| 25 |
32 166 42187 "" |
|---|
| 26 |
64 83 21093 "" |
|---|
| 27 |
128 41 10546 "" |
|---|
| 28 |
|
|---|
| 29 |
Pick a divisor so that the nominal RPM is about 50% |
|---|
| 30 |
above the minimum. This is a good compromise between |
|---|
| 31 |
margin and accuracy. Note that most chips only support |
|---|
| 32 |
fan divisors of 1, 2, 4, and 8. |
|---|
| 33 |
|
|---|
| 34 |
If you have a 0 RPM reading some or all of the time, |
|---|
| 35 |
increase the divisor until you get good readings. |
|---|
| 36 |
|
|---|
| 37 |
If you have a nominal reading less than 1.25 times the |
|---|
| 38 |
minimum, increase the divisor to give you margin |
|---|
| 39 |
so that you will not get spurious alarms. |
|---|
| 40 |
|
|---|
| 41 |
If you have a nominal reading more than 3 times the |
|---|
| 42 |
minimum, decrease the divisor to provide better |
|---|
| 43 |
accuracy. |
|---|
| 44 |
|
|---|
| 45 |
|
|---|
| 46 |
How to change fan divisors |
|---|
| 47 |
-------------------------- |
|---|
| 48 |
|
|---|
| 49 |
Put an entry "set fanN_div X" in the appropriate section of |
|---|
| 50 |
/etc/sensors.conf and run 'sensors -s' |
|---|
| 51 |
(N is the number of the fan, and X is the divisor you want). |
|---|
| 52 |
|
|---|
| 53 |
|
|---|
| 54 |
Further details |
|---|
| 55 |
--------------- |
|---|
| 56 |
|
|---|
| 57 |
Fan divisors are quite confusing. |
|---|
| 58 |
|
|---|
| 59 |
Sensor chips count fan speed by using the fan signal |
|---|
| 60 |
to gate an 8-bit counter driven by a 22.5 kHz clock. |
|---|
| 61 |
So the _higher_ the counter value, the _slower_ the fan, |
|---|
| 62 |
and vice versa. |
|---|
| 63 |
|
|---|
| 64 |
The term 'fan divisor' is a misnomer because it doesn't divide |
|---|
| 65 |
the fan signal, it divides the 22.5 kHz clock. |
|---|
| 66 |
Thus you _increase_ the divisor if you have a slow fan. |
|---|
| 67 |
|
|---|
| 68 |
The drivers account for the 'fan divisor' in their calculation |
|---|
| 69 |
of RPM. So changing the fan divisor will NOT change the |
|---|
| 70 |
nominal RPM reading, it will only affect the minimum and maximum |
|---|
| 71 |
readings and the accuracy of the readings. |
|---|
| 72 |
|
|---|
| 73 |
The actual formula is RPM = (60 * 22500) / (count * divisor) |
|---|
| 74 |
|
|---|
| 75 |
The readings are most accurate when the fan speed is low |
|---|
| 76 |
(i.e., close to the minimum possible RPM reading). |
|---|
| 77 |
As fan speed gets closer to the maximum possible RPM reading, |
|---|
| 78 |
the reading becomes quite inaccurate. Fortunately, most computer |
|---|
| 79 |
fans do not approach 1,000,000 RPM ! |
|---|
| 80 |
|
|---|
| 81 |
|
|---|
| 82 |
Fan readings 2X too high |
|---|
| 83 |
------------------------ |
|---|
| 84 |
|
|---|
| 85 |
This is rare, but can happen. This is typically caused by a fan which |
|---|
| 86 |
outputs 4 pulses by revolution, instead of the standard 2. |
|---|
| 87 |
|
|---|
| 88 |
As we learned above, you can _not_ fix this by changing |
|---|
| 89 |
the fan divisor. You must add entries into the appropriate |
|---|
| 90 |
section of /etc/sensors.conf: |
|---|
| 91 |
|
|---|
| 92 |
compute fanN @/2, 2*@ |
|---|
| 93 |
|
|---|
| 94 |
(N is the number of the fan) |
|---|
| 95 |
|
|---|
| 96 |
|
|---|
| 97 |
|
|---|
| 98 |
------------------ |
|---|
| 99 |
Copyright (c) 2000-2004 Mark D. Studebaker |
|---|