.TH TMON 8
.SH NAME
\fBtmon\fP - A monitoring and testing tool for Linux kernel thermal subsystem

.SH SYNOPSIS
.ft B
.B tmon
.RB [ Options ]
.br
.SH DESCRIPTION
\fBtmon \fP can be used to visualize thermal relationship and
real-time thermal data; tune
and test cooling devices and sensors; collect thermal data for offline
analysis and plot. \fBtmon\fP must be run as root in order to control device
states via sysfs.
.PP
\fBFunctions\fP
.PP
.nf
1. Thermal relationships:
- show thermal zone information
- show cooling device information
- show trip point binding within each thermal zone
- show trip point and cooling device instance bindings
.PP
2. Real time data display
- show temperature of all thermal zones w.r.t. its trip points and types
- show states of all cooling devices
.PP
3. Thermal relationship learning and device tuning
- with a built-in Proportional Integral Derivative (\fBPID\fP)
controller, user can pair a cooling device to a thermal sensor for
testing the effectiveness and learn about the thermal distance between the two
- allow manual control of cooling device states and target temperature
.PP
4. Data logging in /var/tmp/tmon.log
- contains thermal configuration data, i.e. cooling device, thermal
 zones, and trip points. Can be used for data  collection in remote
 debugging.
- log real-time thermal data into space separated format that can be
 directly consumed by plotting tools such as Rscript.

.SS Options
.PP
The \fB-c --control\fP option sets a cooling device type to control temperature
of a thermal zone
.PP
The \fB-d --daemon\fP option runs \fBtmon \fP as daemon without user interface
.PP
The \fB-g --debug\fP option allow debug messages to be stored in syslog
.PP
The \fB-h --help\fP option shows help message
.PP
The \fB-l --log\fP option write data to /var/tmp/tmon.log
.PP
The \fB-t --time-interval\fP option sets the polling interval in seconds
.PP
The \fB-v --version\fP option shows the version of \fBtmon \fP
.PP
The \fB-z --zone\fP option sets the target therma zone instance to be controlled
.PP

.SH FIELD DESCRIPTIONS
.nf
.PP
\fBP \fP passive cooling trip point type
\fBA \fP active cooling trip point type (fan)
\fBC \fP critical trip point type
\fBA \fP hot trip point type
\fBkp \fP proportional gain of \fBPID\fP controller
\fBki \fP integral gain of \fBPID\fP controller
\fBkd \fP derivative gain of \fBPID\fP controller

.SH REQUIREMENT
Build depends on ncurses
.PP
Runtime depends on window size large enough to show the number of
devices found on the system.

.PP

.SH INTERACTIVE COMMANDS
.pp
.nf
\fBCtrl-C, q/Q\fP stops \fBtmon\fP
\fBTAB\fP shows tuning pop up panel, choose a letter to modify

.SH EXAMPLES
Without any parameters, tmon is in monitoring only mode and refresh
screen every 1 second.
.PP
1. For monitoring only:
.nf
$ sudo ./tmon

2. Use Processor cooling device to control thermal zone 0 at default 65C.
$ sudo ./tmon -c Processor -z 0

3. Use intel_powerclamp(idle injection) cooling device to control thermal zone 1
$ sudo ./tmon -c intel_powerclamp -z 1

4. Turn on debug and collect data log at /var/tmp/tmon.log
$ sudo ./tmon -g -l

For example, the log below shows PID controller was adjusting current states
for all cooling devices with "Processor" type such that thermal zone 0
can stay below 65 dC.

#---------- THERMAL DATA LOG STARTED -----------
Samples TargetTemp acpitz0    acpitz1    Fan0 Fan1 Fan2 Fan3 Fan4 Fan5
Fan6 Fan7 Fan8 Fan9 Processor10 Processor11 Processor12 Processor13
LCD14 intel_powerclamp15 1 65.0 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 2
65.0 66 65 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 3 65.0 60 54 0 0 0 0 0 0 0 0
0 0 4 4 4 4 6 0 4 65.0 53 53 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0
5 65.0 52 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0
6 65.0 53 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0
7 65.0 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0
8 65.0 68 68 0 0 0 0 0 0 0 0 0 0 5 5 5 5 6 0
9 65.0 68 68 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 0
10 65.0 67 67 0 0 0 0 0 0 0 0 0 0 7 7 7 7 6 0
11 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0
12 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0
13 65.0 67 67 0 0 0 0 0 0 0 0 0 0 9 9 9 9 6 0
14 65.0 66 66 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0
15 65.0 66 67 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0
16 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0
17 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0
18 65.0 64 61 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0
19 65.0 60 59 0 0 0 0 0 0 0 0 0 0 12 12 12 12 6 0

Data can be read directly into an array by an example R-script below:

#!/usr/bin/Rscript
tdata <- read.table("/var/tmp/tmon.log", header=T, comment.char="#")
attach(tdata)
jpeg("tmon.jpg")
X11()
g_range <- range(0, intel_powerclamp15, TargetTemp, acpitz0)
plot( Samples, intel_powerclamp15, col="blue", ylim=g_range, axes=FALSE, ann=FALSE)
par(new=TRUE)
lines(TargetTemp, type="o", pch=22, lty=2, col="red")
dev.off()
