Imported Upstream version 0.8.0.4
[psensor-pkg-debian.git] / README.html
diff --git a/README.html b/README.html
new file mode 100644 (file)
index 0000000..ef7fb23
--- /dev/null
@@ -0,0 +1,677 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.7" />\r
+<title>Psensor README</title>\r
+<style type="text/css">\r
+body {\r
+    padding: 1em 1em 1em 1em;\r
+    font-family: "Ubuntu", sans-serif;\r
+    font-size: 100%;\r
+    font-style: normal;\r
+    font-weight: normal;\r
+    color: #000;\r
+    background-color: #fff;\r
+    margin: 0 0 0 0;\r
+}\r
+\r
+a {\r
+    color: #1982D1;\r
+    font-style: normal;\r
+    text-decoration: none;\r
+}\r
+\r
+a:hover {\r
+    text-decoration: underline;\r
+}\r
+\r
+h1 {\r
+    font-size: 140%;\r
+    font-style: normal;\r
+    font-weight: bold;\r
+    text-transform: uppercase;\r
+    margin: 0 0 1em 0;\r
+    padding: 0 0 0 0;\r
+}\r
+\r
+\r
+h2, #toctitle{\r
+    font-size: 110%;\r
+    font-style: normal;\r
+    font-weight: bold;\r
+    text-transform: uppercase;\r
+    margin: 2em 0em 1em 0em;\r
+    padding: 0 0 0 0;\r
+}\r
+\r
+#footer {\r
+    padding-top: 2em;\r
+    color: #666;\r
+    clear: both;\r
+    text-align: right;\r
+    font-size: 75%;\r
+}\r
+\r
+p {\r
+    font-size: 100%;\r
+    margin-bottom: 8px;\r
+}\r
+\r
+table {\r
+    text-align: left;\r
+    padding: 0 0 0 0;\r
+    min-width: 50%;\r
+    border-spacing: 0;\r
+    border: 0;\r
+}\r
+\r
+thead {\r
+    background-color: #000;\r
+    color: #fff;\r
+    padding: 0 0 0 0;\r
+}\r
+\r
+tbody {\r
+    padding: 0 0 0 0;\r
+}\r
+\r
+th {\r
+    padding: 0.25em 0.5em 0.25em 0.5em;\r
+    font-style: normal;\r
+    font-weight: normal;\r
+}\r
+\r
+td {\r
+    padding: 0.25em 0.25em 0em 0.25em;\r
+}\r
+\r
+#chart {\r
+    color: #000;\r
+    font-style: normal;\r
+    font-weight: normal;\r
+    width: 100%;\r
+    height: 300px;\r
+}\r
+\r
+ul#menu-list li {\r
+    list-style: none;\r
+}\r
+\r
+#menu-list {\r
+    padding: 0 0 0 0;\r
+    margin: 0 0 0 0;\r
+}\r
+\r
+#menu {\r
+    float: left;\r
+    width: 20%;\r
+    padding: 0 0 0 0;\r
+    margin: 0 0 0 0;\r
+}\r
+\r
+#main {\r
+    float: right;\r
+    width: 80%;\r
+    padding: 0 0 0 0;\r
+    margin: 0 0em 0 0;\r
+}\r
+\r
+em {\r
+    font-weight: bold;\r
+    font-style: normal;\r
+}\r
+\r
+#uptime {\r
+    font-weight: normal;\r
+}\r
+\r
+#menu-list em {\r
+    text-transform: uppercase;\r
+}\r
+\r
+#menu ul li {\r
+    padding-bottom: 1em;\r
+}\r
+\r
+#menu-list ul li {\r
+    padding: 0 0 0 0em;\r
+}\r
+\r
+</style>\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+var asciidoc = {  // Namespace.\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+// Table Of Contents generator\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+/* Author: Mihai Bazon, September 2002\r
+ * http://students.infoiasi.ro/~mishoo\r
+ *\r
+ * Table Of Content generator\r
+ * Version: 0.4\r
+ *\r
+ * Feel free to use this script under the terms of the GNU General Public\r
+ * License, as long as you do not remove or alter this notice.\r
+ */\r
+\r
+ /* modified by Troy D. Hanson, September 2006. License: GPL */\r
+ /* modified by Stuart Rackham, 2006, 2009. License: GPL */\r
+\r
+// toclevels = 1..4.\r
+toc: function (toclevels) {\r
+\r
+  function getText(el) {\r
+    var text = "";\r
+    for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
+      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.\r
+        text += i.data;\r
+      else if (i.firstChild != null)\r
+        text += getText(i);\r
+    }\r
+    return text;\r
+  }\r
+\r
+  function TocEntry(el, text, toclevel) {\r
+    this.element = el;\r
+    this.text = text;\r
+    this.toclevel = toclevel;\r
+  }\r
+\r
+  function tocEntries(el, toclevels) {\r
+    var result = new Array;\r
+    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');\r
+    // Function that scans the DOM tree for header elements (the DOM2\r
+    // nodeIterator API would be a better technique but not supported by all\r
+    // browsers).\r
+    var iterate = function (el) {\r
+      for (var i = el.firstChild; i != null; i = i.nextSibling) {\r
+        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {\r
+          var mo = re.exec(i.tagName);\r
+          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {\r
+            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);\r
+          }\r
+          iterate(i);\r
+        }\r
+      }\r
+    }\r
+    iterate(el);\r
+    return result;\r
+  }\r
+\r
+  var toc = document.getElementById("toc");\r
+  if (!toc) {\r
+    return;\r
+  }\r
+\r
+  // Delete existing TOC entries in case we're reloading the TOC.\r
+  var tocEntriesToRemove = [];\r
+  var i;\r
+  for (i = 0; i < toc.childNodes.length; i++) {\r
+    var entry = toc.childNodes[i];\r
+    if (entry.nodeName.toLowerCase() == 'div'\r
+     && entry.getAttribute("class")\r
+     && entry.getAttribute("class").match(/^toclevel/))\r
+      tocEntriesToRemove.push(entry);\r
+  }\r
+  for (i = 0; i < tocEntriesToRemove.length; i++) {\r
+    toc.removeChild(tocEntriesToRemove[i]);\r
+  }\r
+\r
+  // Rebuild TOC entries.\r
+  var entries = tocEntries(document.getElementById("content"), toclevels);\r
+  for (var i = 0; i < entries.length; ++i) {\r
+    var entry = entries[i];\r
+    if (entry.element.id == "")\r
+      entry.element.id = "_toc_" + i;\r
+    var a = document.createElement("a");\r
+    a.href = "#" + entry.element.id;\r
+    a.appendChild(document.createTextNode(entry.text));\r
+    var div = document.createElement("div");\r
+    div.appendChild(a);\r
+    div.className = "toclevel" + entry.toclevel;\r
+    toc.appendChild(div);\r
+  }\r
+  if (entries.length == 0)\r
+    toc.parentNode.removeChild(toc);\r
+},\r
+\r
+\r
+/////////////////////////////////////////////////////////////////////\r
+// Footnotes generator\r
+/////////////////////////////////////////////////////////////////////\r
+\r
+/* Based on footnote generation code from:\r
+ * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html\r
+ */\r
+\r
+footnotes: function () {\r
+  // Delete existing footnote entries in case we're reloading the footnodes.\r
+  var i;\r
+  var noteholder = document.getElementById("footnotes");\r
+  if (!noteholder) {\r
+    return;\r
+  }\r
+  var entriesToRemove = [];\r
+  for (i = 0; i < noteholder.childNodes.length; i++) {\r
+    var entry = noteholder.childNodes[i];\r
+    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")\r
+      entriesToRemove.push(entry);\r
+  }\r
+  for (i = 0; i < entriesToRemove.length; i++) {\r
+    noteholder.removeChild(entriesToRemove[i]);\r
+  }\r
+\r
+  // Rebuild footnote entries.\r
+  var cont = document.getElementById("content");\r
+  var spans = cont.getElementsByTagName("span");\r
+  var refs = {};\r
+  var n = 0;\r
+  for (i=0; i<spans.length; i++) {\r
+    if (spans[i].className == "footnote") {\r
+      n++;\r
+      var note = spans[i].getAttribute("data-note");\r
+      if (!note) {\r
+        // Use [\s\S] in place of . so multi-line matches work.\r
+        // Because JavaScript has no s (dotall) regex flag.\r
+        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];\r
+        spans[i].innerHTML =\r
+          "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +\r
+          "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+        spans[i].setAttribute("data-note", note);\r
+      }\r
+      noteholder.innerHTML +=\r
+        "<div class='footnote' id='_footnote_" + n + "'>" +\r
+        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +\r
+        n + "</a>. " + note + "</div>";\r
+      var id =spans[i].getAttribute("id");\r
+      if (id != null) refs["#"+id] = n;\r
+    }\r
+  }\r
+  if (n == 0)\r
+    noteholder.parentNode.removeChild(noteholder);\r
+  else {\r
+    // Process footnoterefs.\r
+    for (i=0; i<spans.length; i++) {\r
+      if (spans[i].className == "footnoteref") {\r
+        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");\r
+        href = href.match(/#.*/)[0];  // Because IE return full URL.\r
+        n = refs[href];\r
+        spans[i].innerHTML =\r
+          "[<a href='#_footnote_" + n +\r
+          "' title='View footnote' class='footnote'>" + n + "</a>]";\r
+      }\r
+    }\r
+  }\r
+},\r
+\r
+install: function(toclevels) {\r
+  var timerId;\r
+\r
+  function reinstall() {\r
+    asciidoc.footnotes();\r
+    if (toclevels) {\r
+      asciidoc.toc(toclevels);\r
+    }\r
+  }\r
+\r
+  function reinstallAndRemoveTimer() {\r
+    clearInterval(timerId);\r
+    reinstall();\r
+  }\r
+\r
+  timerId = setInterval(reinstall, 500);\r
+  if (document.addEventListener)\r
+    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);\r
+  else\r
+    window.onload = reinstallAndRemoveTimer;\r
+}\r
+\r
+}\r
+asciidoc.install(2);\r
+/*]]>*/\r
+</script>\r
+</head>\r
+<body class="article">\r
+<div id="header">\r
+<h1>Psensor README</h1>\r
+<div id="toc">
+  <div id="toctitle">Table of Contents</div>
+  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div id="content">\r
+<div class="sect1">\r
+<h2 id="_introduction">1. Introduction</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Psensor is a graphical hardware monitoring application for Linux.</p></div>\r
+<div class="paragraph"><p>It draws realtime charts and raises alerts about:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+the temperature of the motherboard and CPU sensors (using\r
+   lm-sensors).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+the temperature of the NVidia GPUs (using XNVCtrl).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+the temperature of the Hard Disk Drives (using hddtemp or libatasmart).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+the rotation speed of the fans (using lm-sensors).\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+the temperature of a remote computer.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+the cpu load.\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>Alerts are using Desktop Notification and a specific GTK+ status icon.</p></div>\r
+<div class="paragraph"><p>For Ubuntu users, Psensor is providing an Application Indicator which turns\r
+red under alert and a menu for quickly check all sensors.</p></div>\r
+<div class="paragraph"><p>It is possible to monitor remotely a computer:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+start <tt>psensor-server</tt> on the remote computer.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+start <tt>psensor</tt> using: <tt>psensor --url=http://hostname:3131</tt>.\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p><tt>psensor-server</tt> is a minimal Web server, a Web browser can be used to\r
+monitor the remote computer by opening the URL:\r
+<tt>http://hostname:3131</tt>.</p></div>\r
+<div class="admonitionblock">\r
+<table><tr>\r
+<td class="icon">\r
+<div class="title">Warning</div>\r
+</td>\r
+<td class="content"><tt>psensor-server</tt> does not provide any way to restrict the connection\r
+to the HTTP server, worst, no effort has been made against malicious\r
+HTTP attacks.  You should make the <tt>psensor-server</tt> port available\r
+only to a network or computer you trust by using the usual network\r
+security tools of the system (for example:\r
+<a href="http://www.netfilter.org/projects/iptables/index.html">iptables</a>).</td>\r
+</tr></table>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_installation_using_distribution_packages">2. Installation Using Distribution Packages</h2>\r
+<div class="sectionbody">\r
+<div class="sect2">\r
+<h3 id="_debian">2.1. Debian</h3>\r
+<div class="paragraph"><p>For Debian, the binary and source packages are available in the\r
+Wheezy, unstable and testing repositories.</p></div>\r
+<div class="paragraph"><p>Debian package information is available at:\r
+<a href="http://packages.qa.debian.org/p/psensor.html">http://packages.qa.debian.org/p/psensor.html</a>.</p></div>\r
+<div class="paragraph"><p>To do the installation:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get install psensor psensor-server</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ubuntu">2.2. Ubuntu</h3>\r
+<div class="paragraph"><p>Since Ubuntu Oneiric (11.10), psensor is available in the universe\r
+repository of Ubuntu.</p></div>\r
+<div class="paragraph"><p>To install <tt>psensor</tt> or <tt>psensor-server</tt>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get install psensor\r
+sudo apt-get install psensor-server</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Or search them in the Ubuntu Software Center.</p></div>\r
+<div class="paragraph"><p>For other Ubuntu releases or user the more recent release, the easiest\r
+way is to use the dedicated PPA.</p></div>\r
+<div class="paragraph"><p>Last stable version:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get apt-add-repository ppa:/jfi/psensor\r
+sudo apt-get update\r
+sudo apt-get install psensor\r
+sudo apt-get install psensor-server</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Last development version which should not contain major bugs:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get apt-add-repository ppa:/jfi/psensor-unstable\r
+sudo apt-get update\r
+sudo apt-get install psensor\r
+sudo apt-get install psensor-server</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Daily trunk build which may contain major bugs and partialy\r
+implemented features:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get apt-add-repository ppa:/jfi/psensor-daily-trunk\r
+sudo apt-get update\r
+sudo apt-get install psensor\r
+sudo apt-get install psensor-server</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_installation_from_source_archive">3. Installation From Source Archive</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><tt>psensor</tt> and <tt>psensor-server</tt> can be compiled and installed on any\r
+modern GNU/Linux distribution.</p></div>\r
+<div class="sect2">\r
+<h3 id="_compilation_prerequisites">3.1. Compilation Prerequisites</h3>\r
+<div class="paragraph"><p>The compilation of <tt>psensor</tt> requires:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+make\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+gcc (or llvm)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+lm-sensors\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library sensors4\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library gtk3 &gt;=3.4\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library gconf2\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+help2man\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+asciidoc (optional, required to produce the html version of the\r
+   faq)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+cppcheck (optional, static source checker)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library libnotify (optional)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library libappindicator (optional)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library libXNVCtrl (optional)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library json0 and curl (optional, required for remote monitoring)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library unity (&gt;=v3.4.2, optional)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library gtop2 (optional, required for CPU usage)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library atasmart (optional, for disk monitoring)\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>The specific requirements for <tt>psensor-server</tt>:</p></div>\r
+<div class="ulist"><ul>\r
+<li>\r
+<p>\r
+library libmicrohttpd\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+library json0\r
+</p>\r
+</li>\r
+</ul></div>\r
+<div class="paragraph"><p>For Debian 7.0:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get install asciidoc cppcheck gcc gettext libgtk-3-dev\r
+libgconf2-dev libnotify-dev libsensors4-dev help2man\r
+libcurl4-openssl-dev libjson0-dev libmicrohttpd-dev libgtop2-dev\r
+libatasmart-dev make</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>For Fedora 17:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo yum install gcc gtk3-devel GConf2-devel lm_sensors-devel cppcheck\r
+libatasmart-devel libcurl-devel json-c-devel libmicrohttpd-devel\r
+help2man libnotify-devel libgtop2-devel make</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>For Ubuntu 12.10:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>sudo apt-get install asciidoc autoconf automake autopoint\r
+debhelper (&gt;= 9) cppcheck gettext help2man libappindicator3-dev\r
+libatasmart-dev libcurl4-gnutls-dev libgconf2-dev libgtk-3-dev\r
+libgtop2-dev libjson0-dev libmicrohttpd-dev libnotify-dev\r
+libsensors4-dev libunity-dev nvidia-settings perl</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_compilation_and_installation_steps">3.2. Compilation and Installation Steps</h3>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+download the source archive from: <a href="http://wpitchoune.net/psensor/files">http://wpitchoune.net/psensor/files</a>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Extract files from the source archive\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Compilation: <tt>./configure;make clean all</tt>\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Installation:  <tt>make install</tt> (require to have root permission)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Start the sensor detection script: <tt>sensors-detect</tt> and follows the\r
+instructions. Reboot or activate the kernel modules which have\r
+been found.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+To monitor HDDs, the <tt>hddtemp</tt> daemon must be installed and running.\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+Run: <tt>psensor</tt>\r
+</p>\r
+</li>\r
+</ol></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ati_amd_gpu_support">3.3. ATI/AMD GPU Support</h3>\r
+<div class="paragraph"><p>When the OpenSource ATI driver is used, the monitoring\r
+information is available throw lm-sensors and does not require the\r
+following instructions.</p></div>\r
+<div class="paragraph"><p>When the proprietary ATI driver(Catalyst) is used, the build is\r
+requiring an additional library.</p></div>\r
+<div class="paragraph"><p>Download the\r
+<a href="http://developer.amd.com/sdks/ADLSDK/Pages/default.aspx">ATI ADL SDK</a>\r
+and extracts the files of the archive into a directory [dir].</p></div>\r
+<div class="paragraph"><p>Replace the step 3. of the above section by <tt>./configure\r
+--with-libatiadl=[dir]</tt> where <tt>[dir]</tt> must be the directory where you\r
+have extracted the ATI ADL SDK. Other steps are indentical.</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_contact">4. Contact</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Bugs and comments can be sent to <a href="mailto:jeanfi@gmail.com">jeanfi@gmail.com</a>.</p></div>\r
+<div class="paragraph"><p>Home page: <a href="http://wpitchoune.net/psensor">http://wpitchoune.net/psensor</a></p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer">\r
+<div id="footer-text">\r
+Last updated 2013-05-26 19:23:21 CEST\r
+</div>\r
+</div>\r
+</body>\r
+</html>\r