Psensor README
==============

Introduction
------------

Psensor is a graphical hardware monitoring application for Linux.

It draws realtime charts and raises alerts about:

 * the temperature of the motherboard and CPU sensors (using
   lm-sensors).
 * the temperature of the NVidia GPUs (using XNVCtrl).
 * the temperature of the Hard Disk Drives (using hddtemp or libatasmart).
 * the rotation speed of the fans (using lm-sensors).
 * the temperature of a remote computer.
 * the cpu load.

Alerts are using Desktop Notification and a specific GTK+ status icon.

For Ubuntu users, Psensor is providing an Application Indicator which turns
red under alert and a menu for quickly check all sensors.

It is possible to monitor remotely a computer:

 * start +psensor-server+ on the remote computer.

 * start +psensor+ using: +psensor --url=http://hostname:3131+.

+psensor-server+ is a minimal Web server, a Web browser can be used to
monitor the remote computer by opening the URL:
+http://hostname:3131+.

[WARNING]
+psensor-server+ does not provide any way to restrict the connection
to the HTTP server, worst, no effort has been made against malicious
HTTP attacks.  You should make the +psensor-server+ port available
only to a network or computer you trust by using the usual network
security tools of the system (for example:
http://www.netfilter.org/projects/iptables/index.html[iptables]).
  
Installation Using Distribution Packages
----------------------------------------

Debian
~~~~~~

For Debian, the binary and source packages are available in the
Wheezy, unstable and testing repositories.

Debian package information is available at:
http://packages.qa.debian.org/p/psensor.html.

To do the installation:
--------------------------------------------
sudo apt-get install psensor psensor-server
--------------------------------------------

Ubuntu
~~~~~~

Since Ubuntu Oneiric (11.10), psensor is available in the universe
repository of Ubuntu.

To install +psensor+ or +psensor-server+:
------------------------------------
sudo apt-get install psensor
sudo apt-get install psensor-server
------------------------------------

Or search them in the Ubuntu Software Center.

For other Ubuntu releases or user the more recent release, the easiest
way is to use the dedicated PPA.

Last stable version:
-------------------------------------------------
sudo apt-get apt-add-repository ppa:/jfi/psensor
sudo apt-get update
sudo apt-get install psensor
sudo apt-get install psensor-server
-------------------------------------------------

Last development version which should not contain major bugs:
----------------------------------------------------------
sudo apt-get apt-add-repository ppa:/jfi/psensor-unstable
sudo apt-get update
sudo apt-get install psensor
sudo apt-get install psensor-server
----------------------------------------------------------

Daily trunk build which may contain major bugs and partialy
implemented features:
-------------------------------------------------------------
sudo apt-get apt-add-repository ppa:/jfi/psensor-daily-trunk
sudo apt-get update
sudo apt-get install psensor
sudo apt-get install psensor-server
-------------------------------------------------------------

Installation From Source Archive
--------------------------------

+psensor+ and +psensor-server+ can be compiled and installed on any
modern GNU/Linux distribution.

Compilation Prerequisites
~~~~~~~~~~~~~~~~~~~~~~~~~

The compilation of +psensor+ requires:

 * make
 * gcc (or llvm)
 * lm-sensors
 * library sensors4
 * library gtk3 >=3.4
 * library gconf2
 * help2man 
 * asciidoc (optional, required to produce the html version of the
   faq)
 * cppcheck (optional, static source checker)
 * library libnotify (optional)
 * library libappindicator (optional)
 * library libXNVCtrl (optional)
 * library json0 and curl (optional, required for remote monitoring)
 * library unity (>=v3.4.2, optional)
 * library gtop2 (optional, required for CPU usage)
 * library atasmart (optional, for disk monitoring)

The specific requirements for +psensor-server+:

 * library libmicrohttpd 
 * library json0

For Debian 7.0:
-----------------------------------------------------------------
sudo apt-get install asciidoc cppcheck gcc gettext libgtk-3-dev
libgconf2-dev libnotify-dev libsensors4-dev help2man
libcurl4-openssl-dev libjson0-dev libmicrohttpd-dev libgtop2-dev
libatasmart-dev make
-----------------------------------------------------------------

For Fedora 17:
-----------------------------------------------------------------------
sudo yum install gcc gtk3-devel GConf2-devel lm_sensors-devel cppcheck
libatasmart-devel libcurl-devel json-c-devel libmicrohttpd-devel
help2man libnotify-devel libgtop2-devel make
-----------------------------------------------------------------------

For Ubuntu 12.10:
-------------------------------------------------------------------------
sudo apt-get install asciidoc autoconf automake autopoint
debhelper (>= 9) cppcheck gettext help2man libappindicator3-dev
libatasmart-dev libcurl4-gnutls-dev libgconf2-dev libgtk-3-dev
libgtop2-dev libjson0-dev libmicrohttpd-dev libnotify-dev
libsensors4-dev libunity-dev nvidia-settings perl

-------------------------------------------------------------------------

Compilation and Installation Steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. download the source archive from: http://wpitchoune.net/psensor/files
2. Extract files from the source archive
3. Compilation: +./configure;make clean all+
4. Installation:  +make install+ (require to have root permission)
5. Start the sensor detection script: +sensors-detect+ and follows the
instructions. Reboot or activate the kernel modules which have
been found.
6. To monitor HDDs, the +hddtemp+ daemon must be installed and running.
7. Run: +psensor+

ATI/AMD GPU Support
~~~~~~~~~~~~~~~~~~~

When the OpenSource ATI driver is used, the monitoring
information is available throw lm-sensors and does not require the
following instructions.

When the proprietary ATI driver(Catalyst) is used, the build is
requiring an additional library.

Download the
http://developer.amd.com/sdks/ADLSDK/Pages/default.aspx[ATI ADL SDK]
and extracts the files of the archive into a directory [dir].

Replace the step 3. of the above section by +./configure
--with-libatiadl=[dir]+ where +[dir]+ must be the directory where you
have extracted the ATI ADL SDK. Other steps are indentical.

Contact
-------

Bugs and comments can be sent to jeanfi@gmail.com.

Home page: http://wpitchoune.net/psensor