| 1 |
<html lang="en"> |
|---|
| 2 |
<head> |
|---|
| 3 |
<title>Sensors FAQ for lm_sensors version 2.18</title> |
|---|
| 4 |
<meta http-equiv="Content-Type" content="text/html"> |
|---|
| 5 |
<meta name="description" content="Sensors FAQ for lm_sensors version 2.18"> |
|---|
| 6 |
<meta name="generator" content="makeinfo 4.8"> |
|---|
| 7 |
<link title="Top" rel="top" href="#Top"> |
|---|
| 8 |
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> |
|---|
| 9 |
<meta http-equiv="Content-Style-Type" content="text/css"> |
|---|
| 10 |
<style type="text/css"><!-- |
|---|
| 11 |
pre.display { font-family:inherit } |
|---|
| 12 |
pre.format { font-family:inherit } |
|---|
| 13 |
pre.smalldisplay { font-family:inherit; font-size:smaller } |
|---|
| 14 |
pre.smallformat { font-family:inherit; font-size:smaller } |
|---|
| 15 |
pre.smallexample { font-size:smaller } |
|---|
| 16 |
pre.smalllisp { font-size:smaller } |
|---|
| 17 |
span.sc { font-variant:small-caps } |
|---|
| 18 |
span.roman { font-family:serif; font-weight:normal; } |
|---|
| 19 |
span.sansserif { font-family:sans-serif; font-weight:normal; } |
|---|
| 20 |
--></style> |
|---|
| 21 |
</head> |
|---|
| 22 |
<body> |
|---|
| 23 |
<h1 class="settitle">Sensors FAQ for lm_sensors version 2.18</h1> |
|---|
| 24 |
Copyright (C) 1998 - 2005<br> |
|---|
| 25 |
Frodo Looijaard,<br> |
|---|
| 26 |
Philip Edelbrock,<br> |
|---|
| 27 |
Mark D. Studebaker<br> |
|---|
| 28 |
and<br> |
|---|
| 29 |
Jean Delvare<br> |
|---|
| 30 |
|
|---|
| 31 |
<div class="shortcontents"> |
|---|
| 32 |
<h2>Short Contents</h2> |
|---|
| 33 |
<ul> |
|---|
| 34 |
<li><a href="#toc_Top">lm_sensors</a></li> |
|---|
| 35 |
<li><a href="#toc_Overview">1 PC and Sensor Overview</a></li> |
|---|
| 36 |
<li><a href="#toc_Basics">2 Sensor and Bus Basics</a></li> |
|---|
| 37 |
<li><a href="#toc_Installation">3 Installation and Management</a></li> |
|---|
| 38 |
<li><a href="#toc_Problems">4 Problems</a></li> |
|---|
| 39 |
<li><a href="#toc_Help">5 How to Ask for Help</a></li> |
|---|
| 40 |
<li><a href="#toc_Contribute">6 How to Contribute</a></li> |
|---|
| 41 |
<li><a href="#toc_Document-Revisions">Appendix A Revision History of This Document</a></li> |
|---|
| 42 |
</ul> |
|---|
| 43 |
</div> |
|---|
| 44 |
|
|---|
| 45 |
<div class="contents"> |
|---|
| 46 |
<h2>Table of Contents</h2> |
|---|
| 47 |
<ul> |
|---|
| 48 |
<li><a name="toc_Top" href="#Top">lm_sensors</a> |
|---|
| 49 |
<li><a name="toc_Overview" href="#Overview">1 PC and Sensor Overview</a> |
|---|
| 50 |
<ul> |
|---|
| 51 |
<li><a href="#Section-1_002e1">1.1 What sensors are available on my PC?</a> |
|---|
| 52 |
<li><a href="#Section-1_002e2">1.2 What can a sensor chip like the "LM78" do?</a> |
|---|
| 53 |
<li><a href="#Section-1_002e3">1.3 Where do I find out more about any of these chips?</a> |
|---|
| 54 |
</li></ul> |
|---|
| 55 |
<li><a name="toc_Basics" href="#Basics">2 Sensor and Bus Basics</a> |
|---|
| 56 |
<ul> |
|---|
| 57 |
<li><a href="#Section-2_002e1">2.1 How are these sensors read?</a> |
|---|
| 58 |
<li><a href="#Section-2_002e2">2.2 What is the SMBus? And the I2C bus?</a> |
|---|
| 59 |
<li><a href="#Section-2_002e3">2.3 I don't have an ISA bus!</a> |
|---|
| 60 |
<li><a href="#Section-2_002e4">2.4 What sensors do processors have?</a> |
|---|
| 61 |
<li><a href="#Section-2_002e5">2.5 How often are the sensor values updated?</a> |
|---|
| 62 |
<li><a href="#Section-2_002e6">2.6 How are alarms triggered?</a> |
|---|
| 63 |
</li></ul> |
|---|
| 64 |
<li><a name="toc_Installation" href="#Installation">3 Installation and Management</a> |
|---|
| 65 |
<ul> |
|---|
| 66 |
<li><a href="#Section-3_002e1">3.1 Why so many modules, and how do I cope with them?</a> |
|---|
| 67 |
<li><a href="#Section-3_002e2">3.2 How do I know which chips I own?</a> |
|---|
| 68 |
<ul> |
|---|
| 69 |
<li><a href="#Section-3_002e2">3.2.1 What chips are on motherboard XYZ?</a> |
|---|
| 70 |
<li><a href="#Section-3_002e2">3.2.2 Do you support motherboard XYZ?</a> |
|---|
| 71 |
<li><a href="#Section-3_002e2">3.2.3 Do you support chip XYZ?</a> |
|---|
| 72 |
<li><a href="#Section-3_002e2">3.2.4 Anybody working on a driver for chip XYZ?</a> |
|---|
| 73 |
</li></ul> |
|---|
| 74 |
<li><a href="#Section-3_002e3">3.3 Which modules should I insert?</a> |
|---|
| 75 |
<li><a href="#Section-3_002e4">3.4 Do I need the configuration file <samp><span class="file">/etc/sensors.conf</span></samp>?</a> |
|---|
| 76 |
<ul> |
|---|
| 77 |
<li><a href="#Section-3_002e4">3.4.1 The labels for the voltage and temperature readings in <samp><span class="command">sensors</span></samp> are incorrect!</a> |
|---|
| 78 |
<li><a href="#Section-3_002e4">3.4.2 The min and max for the readings in <samp><span class="command">sensors</span></samp> are incorrect!</a> |
|---|
| 79 |
<li><a href="#Section-3_002e4">3.4.3 The min and max settings in <samp><span class="file">/etc/sensors.conf</span></samp> didn't take effect!</a> |
|---|
| 80 |
<li><a href="#Section-3_002e4">3.4.4 One sensor isn't hooked up on my board!</a> |
|---|
| 81 |
<li><a href="#Section-3_002e4">3.4.5 I need help with <samp><span class="file">sensors.conf</span></samp>!</a> |
|---|
| 82 |
<li><a href="#Section-3_002e4">3.4.6 Do you have a database of <samp><span class="file">sensors.conf</span></samp> entries for specific boards?</a> |
|---|
| 83 |
</li></ul> |
|---|
| 84 |
<li><a href="#Section-3_002e5">3.5 What about the `<samp><span class="samp">No such file or directory</span></samp>' warnings when I compile?</a> |
|---|
| 85 |
<li><a href="#Section-3_002e6">3.6 I get all kinds of weird compilation errors?</a> |
|---|
| 86 |
<ul> |
|---|
| 87 |
<li><a href="#Section-3_002e6">3.6.1 `<samp><span class="samp">No rule to make target xxxx needed by xxxx</span></samp>' - how to fix?</a> |
|---|
| 88 |
</li></ul> |
|---|
| 89 |
<li><a href="#Section-3_002e7">3.7 It still does not compile or patch!</a> |
|---|
| 90 |
<li><a href="#Section-3_002e8">3.8 <samp><span class="command">make install</span></samp> fails on Mandrake kernels</a> |
|---|
| 91 |
<li><a href="#Section-3_002e9">3.9 I get unresolved symbols when I <samp><span class="command">modprobe</span></samp> modules (Red Hat especially)</a> |
|---|
| 92 |
<li><a href="#Section-3_002e10">3.10 I2C_DRIVERID_ADM1024 undefined (Red Hat especially)</a> |
|---|
| 93 |
</li></ul> |
|---|
| 94 |
<li><a name="toc_Problems" href="#Problems">4 Problems</a> |
|---|
| 95 |
<ul> |
|---|
| 96 |
<li><a href="#Section-4_002e1">4.1 My fans report exactly half/double their values compared to the BIOS?</a> |
|---|
| 97 |
<ul> |
|---|
| 98 |
<li><a href="#Section-4_002e1">4.1.1 Fans sometimes/always read 0!!</a> |
|---|
| 99 |
<li><a href="#Section-4_002e1">4.1.2 I doubled the fan divisor and the fan still reads 7000!</a> |
|---|
| 100 |
</li></ul> |
|---|
| 101 |
<li><a href="#Section-4_002e2">4.2 Why do my two LM75's report "-48 degrees"?</a> |
|---|
| 102 |
<li><a href="#Section-4_002e3">4.3 Why do I have two Vcore readings, I have only one processor!</a> |
|---|
| 103 |
<li><a href="#Section-4_002e4">4.4 How do those ALARMS work? The current value is within range but there is still an ALARM warning!</a> |
|---|
| 104 |
<li><a href="#Section-4_002e5">4.5 My voltage readings seem to drift a bit. Is something wrong?</a> |
|---|
| 105 |
<li><a href="#Section-4_002e6">4.6 Some measurements are way out of range. What happened?</a> |
|---|
| 106 |
<ul> |
|---|
| 107 |
<li><a href="#Section-4_002e6">4.6.1 -5V and -12V readings are way out of range!</a> |
|---|
| 108 |
</li></ul> |
|---|
| 109 |
<li><a href="#Section-4_002e7">4.7 What are VID lines? Why is the VID reading wrong?</a> |
|---|
| 110 |
<li><a href="#Section-4_002e8">4.8 I read sensor values several times a second, but they are only updated only each second or so. Why?</a> |
|---|
| 111 |
<li><a href="#Section-4_002e9">4.9 It sometimes seems to take almost a second before I see the sensor reading results. Why?</a> |
|---|
| 112 |
<li><a href="#Section-4_002e10">4.10 Can I be alerted when an ALARM occurs?</a> |
|---|
| 113 |
<li><a href="#Section-4_002e11">4.11 SMBus transactions on my PIIX4 simply don't work (timeouts happen). Why?</a> |
|---|
| 114 |
<li><a href="#Section-4_002e12">4.12 My BIOS reports a much higher CPU temperature than your modules!</a> |
|---|
| 115 |
<li><a href="#Section-4_002e13">4.13 I try to read the raw <samp><span class="file">/proc</span></samp> files, but the values are strange?!?</a> |
|---|
| 116 |
<li><a href="#Section-4_002e14">4.14 How do I set new limits?</a> |
|---|
| 117 |
<ul> |
|---|
| 118 |
<li><a href="#Section-4_002e14">4.14.1 I set new limits and it didn't work?</a> |
|---|
| 119 |
</li></ul> |
|---|
| 120 |
<li><a href="#Section-4_002e15">4.15 Some sensors are doubly detected?</a> |
|---|
| 121 |
<li><a href="#Section-4_002e16">4.16 I ran sensors-detect, but now I get very strange readings?!?</a> |
|---|
| 122 |
<li><a href="#Section-4_002e17">4.17 Bad readings from particular chips</a> |
|---|
| 123 |
<ul> |
|---|
| 124 |
<li><a href="#Section-4_002e17">4.17.1 Bad readings from the AS99127F!</a> |
|---|
| 125 |
<li><a href="#Section-4_002e17">4.17.2 Bad readings from the VIA 686A!</a> |
|---|
| 126 |
<li><a href="#Section-4_002e17">4.17.3 Bad readings from the MTP008!</a> |
|---|
| 127 |
<li><a href="#Section-4_002e17">4.17.4 Bad temperature readings from the SIS5595!</a> |
|---|
| 128 |
<li><a href="#Section-4_002e17">4.17.5 Bad readings from a w8378[12]d!</a> |
|---|
| 129 |
<li><a href="#Section-4_002e17">4.17.6 Bus hangs on Ali 1543 on Asus P5A boards!</a> |
|---|
| 130 |
<li><a href="#Section-4_002e17">4.17.7 Bad readings from LM75!</a> |
|---|
| 131 |
<li><a href="#Section-4_002e17">4.17.8 Bad readings from LM78!</a> |
|---|
| 132 |
<li><a href="#Section-4_002e17">4.17.9 Bad readings from LM80!</a> |
|---|
| 133 |
</li></ul> |
|---|
| 134 |
<li><a href="#Section-4_002e18">4.18 How do I configure two chips (LM87) differently?</a> |
|---|
| 135 |
<li><a href="#Section-4_002e19">4.19 Dmesg says `<samp><span class="samp">Upgrade BIOS</span></samp>'! I don't want to!</a> |
|---|
| 136 |
<ul> |
|---|
| 137 |
<li><a href="#Section-4_002e19">4.19.1 Dmesg says `<samp><span class="samp">use force_addr=0xaddr</span></samp>'! What address do I use?</a> |
|---|
| 138 |
</li></ul> |
|---|
| 139 |
<li><a href="#Section-4_002e20">4.20 Sensors says `<samp><span class="samp">Can't access procfs/sysfs file</span></samp>'</a> |
|---|
| 140 |
<li><a href="#Section-4_002e21">4.21 Sensors says `<samp><span class="samp">No sensors found!</span></samp>'</a> |
|---|
| 141 |
<li><a href="#Section-4_002e22">4.22 Sensors output is not correct!</a> |
|---|
| 142 |
<li><a href="#Section-4_002e23">4.23 What is at I2C address XXX?</a> |
|---|
| 143 |
<ul> |
|---|
| 144 |
<li><a href="#Section-4_002e23">4.23.1 What is at I2C address 0x69?</a> |
|---|
| 145 |
<li><a href="#Section-4_002e23">4.23.2 What is at I2C addresses 0x50 - 0x57?</a> |
|---|
| 146 |
<li><a href="#Section-4_002e23">4.23.3 What is at I2C addresses 0x30 - 0x37?</a> |
|---|
| 147 |
</li></ul> |
|---|
| 148 |
<li><a href="#Section-4_002e24">4.24 Sensors-detect doesn't work at all</a> |
|---|
| 149 |
<ul> |
|---|
| 150 |
<li><a href="#Section-4_002e24">4.24.1 Sensors-detect says "Couldn't open /proc/bus/i2c?!?"</a> |
|---|
| 151 |
<li><a href="#Section-4_002e24">4.24.2 Sensors-detect says "Can't open /dev/i2c[-/]0"</a> |
|---|
| 152 |
<li><a href="#Section-4_002e24">4.24.3 Sensors-detect doesn't find any sensors!</a> |
|---|
| 153 |
</li></ul> |
|---|
| 154 |
<li><a href="#Section-4_002e25">4.25 Sensors says `<samp><span class="samp">Error: Line xxx: zzzzzzz</span></samp>'</a> |
|---|
| 155 |
<li><a href="#Section-4_002e26">4.26 Sensors only gives the name, adapter, and algorithm for my chip</a> |
|---|
| 156 |
<li><a href="#Section-4_002e27">4.27 Sensors says `<samp><span class="samp">ERROR: Can't get xxxxx data!</span></samp>'</a> |
|---|
| 157 |
<li><a href="#Section-4_002e28">4.28 Sensors doesn't find any sensors, just eeproms.</a> |
|---|
| 158 |
<li><a href="#Section-4_002e29">4.29 Inserting modules hangs my board</a> |
|---|
| 159 |
<li><a href="#Section-4_002e30">4.30 Inserting modules slows down my board</a> |
|---|
| 160 |
<li><a href="#Section-4_002e31">4.31 Problems on particular motherboards</a> |
|---|
| 161 |
<ul> |
|---|
| 162 |
<li><a href="#Section-4_002e31">4.31.1 Asus P4B</a> |
|---|
| 163 |
<li><a href="#Section-4_002e31">4.31.2 Tyan 2460, 2462</a> |
|---|
| 164 |
<li><a href="#Section-4_002e31">4.31.3 Tyan 2466</a> |
|---|
| 165 |
<li><a href="#Section-4_002e31">4.31.4 Tyan 2688</a> |
|---|
| 166 |
</li></ul> |
|---|
| 167 |
<li><a href="#Section-4_002e32">4.32 Problems on particular systems</a> |
|---|
| 168 |
<li><a href="#Section-4_002e33">4.33 Problems on 2.6 kernels</a> |
|---|
| 169 |
<ul> |
|---|
| 170 |
<li><a href="#Section-4_002e33">4.33.1 i2c-viapro and via686a</a> |
|---|
| 171 |
<li><a href="#Section-4_002e33">4.33.2 Where are my EEPROMs?</a> |
|---|
| 172 |
</li></ul> |
|---|
| 173 |
</li></ul> |
|---|
| 174 |
<li><a name="toc_Help" href="#Help">5 How to Ask for Help</a> |
|---|
| 175 |
<ul> |
|---|
| 176 |
<li><a href="#Section-5_002e1">5.1 What to send us when asking for help</a> |
|---|
| 177 |
<li><a href="#Section-5_002e2">5.2 What to do if a module won't insert?</a> |
|---|
| 178 |
<li><a href="#Section-5_002e3">5.3 What to do if it inserts, but nothing happens?</a> |
|---|
| 179 |
<li><a href="#Section-5_002e4">5.4 What to do if I read only bogus information?</a> |
|---|
| 180 |
<li><a href="#Section-5_002e5">5.5 What to do if you have other problems?</a> |
|---|
| 181 |
<li><a href="#Section-5_002e6">5.6 What if it just works like a charm?</a> |
|---|
| 182 |
<li><a href="#Section-5_002e7">5.7 How do I update a ticket?</a> |
|---|
| 183 |
<li><a href="#Section-5_002e8">5.8 How do I follow up on a ticket?</a> |
|---|
| 184 |
<li><a href="#Section-5_002e9">5.9 Why did you decide not to support undocumented chips?</a> |
|---|
| 185 |
</li></ul> |
|---|
| 186 |
<li><a name="toc_Contribute" href="#Contribute">6 How to Contribute</a> |
|---|
| 187 |
<ul> |
|---|
| 188 |
<li><a href="#Section-6_002e1">6.1 How to write a driver</a> |
|---|
| 189 |
<li><a href="#Section-6_002e2">6.2 How to get SVN access</a> |
|---|
| 190 |
<li><a href="#Section-6_002e3">6.3 How to donate hardware to the project</a> |
|---|
| 191 |
<li><a href="#Section-6_002e4">6.4 How to join the project mailing lists</a> |
|---|
| 192 |
<li><a href="#Section-6_002e5">6.5 How to access mailing list archives</a> |
|---|
| 193 |
<li><a href="#Section-6_002e6">6.6 How to submit a patch</a> |
|---|
| 194 |
<li><a href="#Section-6_002e7">6.7 How to REALLY help</a> |
|---|
| 195 |
<li><a href="#Section-6_002e8">6.8 How to get release announcements</a> |
|---|
| 196 |
</li></ul> |
|---|
| 197 |
<li><a name="toc_Document-Revisions" href="#Document-Revisions">Appendix A Revision History of This Document</a> |
|---|
| 198 |
</li></ul> |
|---|
| 199 |
</div> |
|---|
| 200 |
|
|---|
| 201 |
<div class="node"> |
|---|
| 202 |
<p><hr> |
|---|
| 203 |
<a name="Top"></a> |
|---|
| 204 |
Next: <a rel="next" accesskey="n" href="#Overview">Overview</a>, |
|---|
| 205 |
Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> |
|---|
| 206 |
|
|---|
| 207 |
</div> |
|---|
| 208 |
|
|---|
| 209 |
<h2 class="unnumbered">lm_sensors</h2> |
|---|
| 210 |
|
|---|
| 211 |
<p>The lm_sensors package includes a collection of modules for general SMBus |
|---|
| 212 |
access and hardware monitoring. NOTE: this requires special support which |
|---|
| 213 |
is not in standard 2.2-vintage kernels. |
|---|
| 214 |
|
|---|
| 215 |
<ul class="menu"> |
|---|
| 216 |
<li><a accesskey="1" href="#Overview">Overview</a>: PC and Sensor Overview |
|---|
| 217 |
<li><a accesskey="2" href="#Basics">Basics</a>: Sensor and Bus Basics |
|---|
| 218 |
<li><a accesskey="3" href="#Installation">Installation</a>: Installation and Management |
|---|
| 219 |
<li><a accesskey="4" href="#Problems">Problems</a>: Problems |
|---|
| 220 |
<li><a accesskey="5" href="#Help">Help</a>: How to Ask for Help |
|---|
| 221 |
<li><a accesskey="6" href="#Contribute">Contribute</a>: How to Contribute |
|---|
| 222 |
<li><a accesskey="7" href="#Document-Revisions">Document Revisions</a>: Revision History of This Document |
|---|
| 223 |
</ul> |
|---|
| 224 |
|
|---|
| 225 |
<div class="node"> |
|---|
| 226 |
<p><hr> |
|---|
| 227 |
<a name="Overview"></a> |
|---|
| 228 |
Next: <a rel="next" accesskey="n" href="#Basics">Basics</a>, |
|---|
| 229 |
Previous: <a rel="previous" accesskey="p" href="#Top">Top</a>, |
|---|
| 230 |
Up: <a rel="up" accesskey="u" href="#Top">Top</a> |
|---|
| 231 |
|
|---|
| 232 |
</div> |
|---|
| 233 |
|
|---|
| 234 |
<h2 class="chapter">1 PC and Sensor Overview</h2> |
|---|
| 235 |
|
|---|
| 236 |
<ul class="menu"> |
|---|
| 237 |
<li><a accesskey="1" href="#Section-1_002e1">Section 1.1</a>: What sensors are available on my PC? |
|---|
| 238 |
<li><a accesskey="2" href="#Section-1_002e2">Section 1.2</a>: What can a sensor chip like the "LM78" do? |
|---|
| 239 |
<li><a accesskey="3" href="#Section-1_002e3">Section 1.3</a>: Where do I find out more about any of these chips? |
|---|
| 240 |
</ul> |
|---|
| 241 |
|
|---|
| 242 |
<div class="node"> |
|---|
| 243 |
<p><hr> |
|---|
| 244 |
<a name="Section-1.1"></a> |
|---|
| 245 |
<a name="Section-1_002e1"></a> |
|---|
| 246 |
Next: <a rel="next" accesskey="n" href="#Section-1_002e2">Section 1.2</a>, |
|---|
| 247 |
Up: <a rel="up" accesskey="u" href="#Overview">Overview</a> |
|---|
| 248 |
|
|---|
| 249 |
</div> |
|---|
| 250 |
|
|---|
| 251 |
<h3 class="section">1.1 What sensors are available on my PC?</h3> |
|---|
| 252 |
|
|---|
| 253 |
<p>Most PC's built since late 1997 now come with a |
|---|
| 254 |
hardware health monitoring chip. This chip may be accessed via the |
|---|
| 255 |
ISA bus or the SMBus, depending on the motherboard. |
|---|
| 256 |
|
|---|
| 257 |
<p>Some motherboard chipsets, notably the Via 686 and the SiS 5595, |
|---|
| 258 |
contain hardware monitor functions. |
|---|
| 259 |
|
|---|
| 260 |
<p>This FAQ frequently refers to the "LM78". This chip has been |
|---|
| 261 |
obsoleted by National Semiconductor. Most motherboards today contain |
|---|
| 262 |
a chip with similar functions. |
|---|
| 263 |
|
|---|
| 264 |
<div class="node"> |
|---|
| 265 |
<p><hr> |
|---|
| 266 |
<a name="Section-1.2"></a> |
|---|
| 267 |
<a name="Section-1_002e2"></a> |
|---|
| 268 |
Next: <a rel="next" accesskey="n" href="#Section-1_002e3">Section 1.3</a>, |
|---|
| 269 |
Previous: <a rel="previous" accesskey="p" href="#Section-1_002e1">Section 1.1</a>, |
|---|
| 270 |
Up: <a rel="up" accesskey="u" href="#Overview">Overview</a> |
|---|
| 271 |
|
|---|
| 272 |
</div> |
|---|
| 273 |
|
|---|
| 274 |
<h3 class="section">1.2 What can a sensor chip like the "LM78" do?</h3> |
|---|
| 275 |
|
|---|
| 276 |
<p>The LM78 is a chip made by National Semiconductor which can monitor 7 |
|---|
| 277 |
voltages (5 positive, 2 negative) from 0 to 4.08V. The inputs are usually in |
|---|
| 278 |
series with voltage dividers which lower the +/- 12V and +/- 5V supplies to |
|---|
| 279 |
measurable range. Therefore, the readings for such inputs need to be |
|---|
| 280 |
re-scaled appropriately by software. |
|---|
| 281 |
|
|---|
| 282 |
<p>The LM78 also has 3 fan speed monitoring inputs, an internal |
|---|
| 283 |
temperature sensor, a chassis intrusion sensor, and a couple maskable interrupt |
|---|
| 284 |
inputs. The LM78 can also relay the processor's (P6 or Pent II) VID lines |
|---|
| 285 |
which are hardwired and used to indicate to the power regulator (usually on |
|---|
| 286 |
the mainboard close to the processor socket/slot) what voltage to supply to |
|---|
| 287 |
the processor. |
|---|
| 288 |
|
|---|
| 289 |
<p>The LM78 can be interfaced to a system via the ISA bus and/or the |
|---|
| 290 |
SMBus. |
|---|
| 291 |
|
|---|
| 292 |
<p>Most other sensor chips have comparable functionality. Each supported |
|---|
| 293 |
chip is documented in the <samp><span class="file">doc/chips</span></samp> directory. |
|---|
| 294 |
|
|---|
| 295 |
<div class="node"> |
|---|
| 296 |
<p><hr> |
|---|
| 297 |
<a name="Section-1.3"></a> |
|---|
| 298 |
<a name="Section-1_002e3"></a> |
|---|
| 299 |
Previous: <a rel="previous" accesskey="p" href="#Section-1_002e2">Section 1.2</a>, |
|---|
| 300 |
Up: <a rel="up" accesskey="u" href="#Overview">Overview</a> |
|---|
| 301 |
|
|---|
| 302 |
</div> |
|---|
| 303 |
|
|---|
| 304 |
<h3 class="section">1.3 Where do I find out more about any of these chips?</h3> |
|---|
| 305 |
|
|---|
| 306 |
<p>Most semiconductor companies have comprehensive documentation, |
|---|
| 307 |
including complete datasheets, on their websites. Analog Devices, |
|---|
| 308 |
Dallas Semiconductor, Maxim, and National Semiconductor have the widest selection |
|---|
| 309 |
of sensor chips. Their websites are: |
|---|
| 310 |
|
|---|
| 311 |
<ul> |
|---|
| 312 |
<li><a href="http://www.analog.com">http://www.analog.com</a> |
|---|
| 313 |
<li><a href="http://www.dalsemi.com">http://www.dalsemi.com</a> |
|---|
| 314 |
<li><a href="http://www.maxim-ic.com">http://www.maxim-ic.com</a> |
|---|
| 315 |
<li><a href="http://www.national.com">http://www.national.com</a> |
|---|
| 316 |
</ul> |
|---|
| 317 |
|
|---|
| 318 |
<p>Please see the file <a href="http://www.lm-sensors.org/wiki/UsefulLinks">http://www.lm-sensors.org/wiki/UsefulLinks</a> |
|---|
| 319 |
for links to other companies' websites. |
|---|
| 320 |
|
|---|
| 321 |
<div class="node"> |
|---|
| 322 |
<p><hr> |
|---|
| 323 |
<a name="Basics"></a> |
|---|
| 324 |
Next: <a rel="next" accesskey="n" href="#Installation">Installation</a>, |
|---|
| 325 |
Previous: <a rel="previous" accesskey="p" href="#Overview">Overview</a>, |
|---|
| 326 |
Up: <a rel="up" accesskey="u" href="#Top">Top</a> |
|---|
| 327 |
|
|---|
| 328 |
</div> |
|---|
| 329 |
|
|---|
| 330 |
<h2 class="chapter">2 Sensor and Bus Basics</h2> |
|---|
| 331 |
|
|---|
| 332 |
<ul class="menu"> |
|---|
| 333 |
<li><a accesskey="1" href="#Section-2_002e1">Section 2.1</a>: What sensors are available on my PC? |
|---|
| 334 |
<li><a accesskey="2" href="#Section-2_002e2">Section 2.2</a>: What can a sensor chip like the "LM78" do? |
|---|
| 335 |
<li><a accesskey="3" href="#Section-2_002e3">Section 2.3</a>: Where do I find out more about any of these chips? |
|---|
| 336 |
<li><a accesskey="4" href="#Section-2_002e4">Section 2.4</a>: What sensors are available on my PC? |
|---|
| 337 |
<li><a accesskey="5" href="#Section-2_002e5">Section 2.5</a>: What can a sensor chip like the "LM78" do? |
|---|
| 338 |
<li><a accesskey="6" href="#Section-2_002e6">Section 2.6</a>: Where do I find out more about any of these chips? |
|---|
| 339 |
</ul> |
|---|
| 340 |
|
|---|
| 341 |
<div class="node"> |
|---|
| 342 |
<p><hr> |
|---|
| 343 |
<a name="Section-2.1"></a> |
|---|
| 344 |
<a name="Section-2_002e1"></a> |
|---|
| 345 |
Next: <a rel="next" accesskey="n" href="#Section-2_002e2">Section 2.2</a>, |
|---|
| 346 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 347 |
|
|---|
| 348 |
</div> |
|---|
| 349 |
|
|---|
| 350 |
<h3 class="section">2.1 How are these sensors read?</h3> |
|---|
| 351 |
|
|---|
| 352 |
<p>Sensor chips reside on either the ISA bus, the SMBus, or both. |
|---|
| 353 |
See the file <samp><span class="file">doc/chips/SUMMARY</span></samp> in our package for a list. |
|---|
| 354 |
|
|---|
| 355 |
<p>To communicate with chips on the ISA bus, the software uses |
|---|
| 356 |
simple I/O reads and writes. |
|---|
| 357 |
|
|---|
| 358 |
<p>To communicate with chips on the SMBus, the software must |
|---|
| 359 |
use an SMBus interface device, explained below. |
|---|
| 360 |
|
|---|
| 361 |
<div class="node"> |
|---|
| 362 |
<p><hr> |
|---|
| 363 |
<a name="Section-2.2"></a> |
|---|
| 364 |
<a name="Section-2_002e2"></a> |
|---|
| 365 |
Next: <a rel="next" accesskey="n" href="#Section-2_002e3">Section 2.3</a>, |
|---|
| 366 |
Previous: <a rel="previous" accesskey="p" href="#Section-2_002e1">Section 2.1</a>, |
|---|
| 367 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 368 |
|
|---|
| 369 |
</div> |
|---|
| 370 |
|
|---|
| 371 |
<h3 class="section">2.2 What is the SMBus? And the I2C bus?</h3> |
|---|
| 372 |
|
|---|
| 373 |
<p>The SMBus is the "System Management Bus". More specifically, it is a |
|---|
| 374 |
2-wire, low-speed serial communication bus used for basic health monitoring |
|---|
| 375 |
and hardware management. It is a specific implementation of the more |
|---|
| 376 |
general I2C (pronunciation: I-squared-C) bus. In fact, both I2C devices |
|---|
| 377 |
and SMBus devices may be connected to the same (I2C) bus. |
|---|
| 378 |
|
|---|
| 379 |
<p>The SMBus (or I2C bus) starts at the host controller, used for |
|---|
| 380 |
starting transactions on the SMBus. From the host interface, the |
|---|
| 381 |
devices communicated with are the <dfn>slave</dfn> devices. Each slave device has a |
|---|
| 382 |
unique 7-bit address which the host uses to refer to that device. |
|---|
| 383 |
|
|---|
| 384 |
<p>For each supported SMBus host, there is a separate kernel module |
|---|
| 385 |
which implements the communication protocol with the host. Some SMBus hosts |
|---|
| 386 |
really operate on the SMBus level; these hosts can not cope with pure I2C |
|---|
| 387 |
devices. Other hosts are in fact I2C hosts: in this case, we implement |
|---|
| 388 |
the SMBus protocol in terms of I2C operations. But these hosts can also |
|---|
| 389 |
talk to pure I2C devices. |
|---|
| 390 |
|
|---|
| 391 |
<div class="node"> |
|---|
| 392 |
<p><hr> |
|---|
| 393 |
<a name="Section-2.3"></a> |
|---|
| 394 |
<a name="Section-2_002e3"></a> |
|---|
| 395 |
Next: <a rel="next" accesskey="n" href="#Section-2_002e4">Section 2.4</a>, |
|---|
| 396 |
Previous: <a rel="previous" accesskey="p" href="#Section-2_002e2">Section 2.2</a>, |
|---|
| 397 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 398 |
|
|---|
| 399 |
</div> |
|---|
| 400 |
|
|---|
| 401 |
<h3 class="section">2.3 I don't have an ISA bus!</h3> |
|---|
| 402 |
|
|---|
| 403 |
<p>We promise, you do, even if you don't have any old ISA slots. |
|---|
| 404 |
The "ISA Bus" exists in your computer even if you don't have ISA slots; |
|---|
| 405 |
it is simply a memory-mapped area, 64KB in size (0x0000 - 0xFFFF) |
|---|
| 406 |
where many "legacy" functions, such as keyboard and interrupt controllers, |
|---|
| 407 |
are found. It isn't necessarily a separate physical bus. |
|---|
| 408 |
See the file <samp><span class="file">/proc/ioports</span></samp> for a list of devices living on |
|---|
| 409 |
the "ISA Bus" in your system. If you don't like the term "ISA Bus" |
|---|
| 410 |
think "I/O Space". |
|---|
| 411 |
|
|---|
| 412 |
<div class="node"> |
|---|
| 413 |
<p><hr> |
|---|
| 414 |
<a name="Section-2.4"></a> |
|---|
| 415 |
<a name="Section-2_002e4"></a> |
|---|
| 416 |
Next: <a rel="next" accesskey="n" href="#Section-2_002e5">Section 2.5</a>, |
|---|
| 417 |
Previous: <a rel="previous" accesskey="p" href="#Section-2_002e3">Section 2.3</a>, |
|---|
| 418 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 419 |
|
|---|
| 420 |
</div> |
|---|
| 421 |
|
|---|
| 422 |
<h3 class="section">2.4 What sensors do processors have?</h3> |
|---|
| 423 |
|
|---|
| 424 |
<p>Most new processors contain a thermal diode on the die itself. |
|---|
| 425 |
The electical properties of all diodes and transistors vary |
|---|
| 426 |
slightly with temperature. The thermal diode is exceptionally accurate |
|---|
| 427 |
because it is directly on the die. Newer temperature sensor chips, |
|---|
| 428 |
like the Analog Devices ADM1021 and clones, and the Winbond chips, |
|---|
| 429 |
have circuitry for measuring the the electrical properties of |
|---|
| 430 |
an external diode and converting this data to a temperature. |
|---|
| 431 |
Any sensor chip listed in <samp><span class="file">doc/chips/SUMMARY</span></samp> in our package which |
|---|
| 432 |
has support for more than one temperature supports external temperature sensing. |
|---|
| 433 |
|
|---|
| 434 |
<p>Older motherboards and processors without this feature generally use |
|---|
| 435 |
an LM75 placed close to the processor. This is much less accurate. |
|---|
| 436 |
|
|---|
| 437 |
<p>The Pentium 2 'boxed' processor usually has an LM75 very close to the |
|---|
| 438 |
base of the box. It can be read through the SMBus to report the approximate |
|---|
| 439 |
temperature of the processor. The processor also contains an internal |
|---|
| 440 |
temperature sensor (of low accuracy) used as a fail-safe to disable the |
|---|
| 441 |
processor in case it gets much too hot (usually around 130 degrees C). And, |
|---|
| 442 |
the Pentium 2 also has a hard-wired signal (VID lines) on it's SEC (single |
|---|
| 443 |
edge connector) which indicates what power supply is required to operate the |
|---|
| 444 |
processor. |
|---|
| 445 |
|
|---|
| 446 |
<p>The P6 (Pentium-Pro) may have an LM75 in or just under the socket. |
|---|
| 447 |
P6's also have VID lines. |
|---|
| 448 |
|
|---|
| 449 |
<p>Pentiums and Pentium w/ MMX do not have VID lines, and sometimes have |
|---|
| 450 |
LM75's under the sockets (depends on the mainboard, and how 'modern' the |
|---|
| 451 |
mainboard is). |
|---|
| 452 |
|
|---|
| 453 |
<p>The P2 Xeon was the first Intel processor to include the SMBus |
|---|
| 454 |
interface on the P2 Xeon SEC. |
|---|
| 455 |
|
|---|
| 456 |
<div class="node"> |
|---|
| 457 |
<p><hr> |
|---|
| 458 |
<a name="Section-2.5"></a> |
|---|
| 459 |
<a name="Section-2_002e5"></a> |
|---|
| 460 |
Next: <a rel="next" accesskey="n" href="#Section-2_002e6">Section 2.6</a>, |
|---|
| 461 |
Previous: <a rel="previous" accesskey="p" href="#Section-2_002e4">Section 2.4</a>, |
|---|
| 462 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 463 |
|
|---|
| 464 |
</div> |
|---|
| 465 |
|
|---|
| 466 |
<h3 class="section">2.5 How often are the sensor values updated?</h3> |
|---|
| 467 |
|
|---|
| 468 |
<p>The LM78, and most other sensor chips like it, reads its sensors one |
|---|
| 469 |
by one. A complete scanning sweep will take about 1.5 seconds. The LM78 stops |
|---|
| 470 |
readings sensors if you try to access it, so if you access it very often |
|---|
| 471 |
(by reading sensor values; writing new limits is safe) it will not find the |
|---|
| 472 |
time to update its sensor values at all! Fortunately, the kernel module takes |
|---|
| 473 |
care not to do this, and only reads new values each 1.5 seconds. If you |
|---|
| 474 |
read the values again, you will get the 'old' values again. |
|---|
| 475 |
|
|---|
| 476 |
<div class="node"> |
|---|
| 477 |
<p><hr> |
|---|
| 478 |
<a name="Section-2.6"></a> |
|---|
| 479 |
<a name="Section-2_002e6"></a> |
|---|
| 480 |
Previous: <a rel="previous" accesskey="p" href="#Section-2_002e5">Section 2.5</a>, |
|---|
| 481 |
Up: <a rel="up" accesskey="u" href="#Basics">Basics</a> |
|---|
| 482 |
|
|---|
| 483 |
</div> |
|---|
| 484 |
|
|---|
| 485 |
<h3 class="section">2.6 How are alarms triggered?</h3> |
|---|
| 486 |
|
|---|
| 487 |
<p>It is possible to monitor each sensor and have an alarm go off if |
|---|
| 488 |
it crosses some pre-determined limits. There are two sorts of interrupts |
|---|
| 489 |
which can be generated by sensor chips if this happens (it depends a bit on |
|---|
| 490 |
the actual chip if both are supported; the LM80, for example, has only |
|---|
| 491 |
IRQ interrupts): IRQ interrupts and SMI interrupts. IRQ stands for |
|---|
| 492 |
Interrupt Request and are the interrupt lines you can find in <samp><span class="file">/proc/interrupts</span></samp>. |
|---|
| 493 |
SMI stands for System Management Interrupt, and is a special interrupt which |
|---|
| 494 |
puts the processor in a secure environment independent of any other things |
|---|
| 495 |
running. SMI is currently not supported by the Linux kernel. IRQs are |
|---|
| 496 |
supported, of course. |
|---|
| 497 |
|
|---|
| 498 |
<p>Even if no interrupt is generated, some bits in a status register |
|---|
| 499 |
will be set until the register is read the next time. If the alarm condition |
|---|
| 500 |
persists after that, the bits will be set on the next scanning sweep, etc. |
|---|
| 501 |
|
|---|
| 502 |
<p>Most drivers in our package do not support interrupts at this time. |
|---|
| 503 |
|
|---|
| 504 |
<div class="node"> |
|---|
| 505 |
<p><hr> |
|---|
|
|---|