From 08422ec5f1f8f5149e681f5003aff01d8c3eab48 Mon Sep 17 00:00:00 2001 From: "Mark D. Studebaker" Date: Wed, 28 Nov 2001 04:11:44 +0000 Subject: [PATCH] fan divisor doc update git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@1256 7894878c-1315-0410-8ee3-d5d059ff63e0 --- doc/FAQ | 30 +++++++++++++++++----- doc/fan-divisors | 66 +++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 83 insertions(+), 13 deletions(-) diff --git a/doc/FAQ b/doc/FAQ index 8f061140..fd0b6168 100644 --- a/doc/FAQ +++ b/doc/FAQ @@ -43,8 +43,9 @@ CONTENTS 3.9 I get unresolved symbols when I modprobe modules (Red Hat especially) 4. Problems -4.1 Why do my fans report exactly half/double their values by your code -compared to the BIOS? +4.1 Why do my fans report exactly half/double their values compared to the BIOS? + 4.1A Fans sometimes / always read 0!! + 4.1B I doubled the fan divisor and the fan still reads 7000! 4.2 Why do my two LM75's report "-48 degrees"? 4.3 Why do I have two Vcore readings, I have only one processor! 4.4 How do those ALARMS work? The current value is within range but there @@ -454,16 +455,33 @@ are running with something like 'make LINUX=/usr/src/linux-2.4.14'. 4 Problems ---------- -4.1 Why do my fans report exactly half/double their values by your code -compared to the BIOS? +4.1 Why do my fans report exactly half/double their values compared to the BIOS? The problem with much of the sensor data is that it is impossible to properly interpret some of the readings without knowing what the hardware configuration is. Some fans report one 'tick' each rotation, some report two 'ticks' each rotation. It is easy to resolve this through the -configuration file: +configuration file /etc/sensors.conf: + chip lm78-* # Or whatever chip this relates to - compute fan1 2*@,@/2 # Copy for each fan present + compute fan1 2*@,@/2 # This will double the fan1 reading + # -- or -- + compute fan1 @/2,2*@ # This will halve the fan1 reading + + +4.1A Fans sometimes / always read 0!! + + You may not have a three-wire fan, which is required. + You may need to increase the 'fan divisor'. See doc/fan-divisors +in our package for further information. + + +4.1B I doubled the fan divisor and the fan still reads 7000! + + Believe it or not, doubling the 'fan divisor' will not halve +the fan reading. You have to add a compute line in /etc/sensors.conf. +See 4.1 above, and see doc/fan-divisors in our package for further +information. 4.2 Why do my two LM75's report "-48 degrees"? diff --git a/doc/fan-divisors b/doc/fan-divisors index 00e1bf34..cb5d18a2 100644 --- a/doc/fan-divisors +++ b/doc/fan-divisors @@ -1,3 +1,6 @@ +Fan reading problems and solutions +---------------------------------- + If you aren't getting the expected readings on your fans, try the following: @@ -8,16 +11,19 @@ try the following: - Try experimenting with the fan divisor settings: -Fan Divisor Minimum RPM Maximum RPM +Fan Divisor Settings +-------------------- +Fan Divisor Minimum RPM Maximum RPM +----------- ----------- ----------- 1 5314 1350000 - 2 2657 675000 + 2 2657 675000 default on most chips 4 1328 337500 8 664 168750 - 16 332 84375 - 32 166 42187 - 64 83 21093 -128 41 10546 + 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% @@ -36,7 +42,9 @@ If you have a nominal reading more than 3 times the minimum, decrease the divisor to provide better accuracy. -- How to change fan divisors: + +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 '...' @@ -45,3 +53,47 @@ accuracy. 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) + + +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,2001 Mark D. Studebaker