TMON - A Monitoring and Testing Tool for Linux kernel thermal subsystem 
 | 
  
 | 
Why TMON? 
 | 
========== 
 | 
Increasingly, Linux is running on thermally constrained devices. The simple 
 | 
thermal relationship between processor and fan has become past for modern 
 | 
computers. 
 | 
  
 | 
As hardware vendors cope with the thermal constraints on their products, more 
 | 
and more sensors are added, new cooling capabilities are introduced. The 
 | 
complexity of the thermal relationship can grow exponentially among cooling 
 | 
devices, zones, sensors, and trip points. They can also change dynamically. 
 | 
  
 | 
To expose such relationship to the userspace, Linux generic thermal layer 
 | 
introduced sysfs entry at /sys/class/thermal with a matrix of symbolic 
 | 
links, trip point bindings, and device instances. To traverse such 
 | 
matrix by hand is not a trivial task. Testing is also difficult in that 
 | 
thermal conditions are often exception cases that hard to reach in 
 | 
normal operations. 
 | 
  
 | 
TMON is conceived as a tool to help visualize, tune, and test the 
 | 
complex thermal subsystem. 
 | 
  
 | 
Files 
 | 
===== 
 | 
    tmon.c : main function for set up and configurations. 
 | 
    tui.c : handles ncurses based user interface 
 | 
    sysfs.c : access to the generic thermal sysfs 
 | 
    pid.c : a proportional-integral-derivative (PID) controller 
 | 
    that can be used for thermal relationship training. 
 | 
  
 | 
Requirements 
 | 
============ 
 | 
Depends on ncurses 
 | 
  
 | 
Build 
 | 
========= 
 | 
$ make 
 | 
$ sudo ./tmon -h 
 | 
Usage: tmon [OPTION...] 
 | 
  -c, --control         cooling device in control 
 | 
  -d, --daemon          run as daemon, no TUI 
 | 
  -l, --log             log data to /var/tmp/tmon.log 
 | 
  -h, --help            show this help message 
 | 
  -t, --time-interval   set time interval for sampling 
 | 
  -v, --version         show version 
 | 
  -g, --debug           debug message in syslog 
 | 
  
 | 
1. For monitoring only: 
 | 
$ sudo ./tmon 
 |