xref: /linux/tools/thermal/tmon/README (revision 94f69966faf8e70bd655ea25f9dd5b9400567b75)
1*94f69966SJacob PanTMON - A Monitoring and Testing Tool for Linux kernel thermal subsystem
2*94f69966SJacob Pan
3*94f69966SJacob PanWhy TMON?
4*94f69966SJacob Pan==========
5*94f69966SJacob PanIncreasingly, Linux is running on thermally constrained devices. The simple
6*94f69966SJacob Panthermal relationship between processor and fan has become past for modern
7*94f69966SJacob Pancomputers.
8*94f69966SJacob Pan
9*94f69966SJacob PanAs hardware vendors cope with the thermal constraints on their products, more
10*94f69966SJacob Panand more sensors are added, new cooling capabilities are introduced. The
11*94f69966SJacob Pancomplexity of the thermal relationship can grow exponentially among cooling
12*94f69966SJacob Pandevices, zones, sensors, and trip points. They can also change dynamically.
13*94f69966SJacob Pan
14*94f69966SJacob PanTo expose such relationship to the userspace, Linux generic thermal layer
15*94f69966SJacob Panintroduced sysfs entry at /sys/class/thermal with a matrix of symbolic
16*94f69966SJacob Panlinks, trip point bindings, and device instances. To traverse such
17*94f69966SJacob Panmatrix by hand is not a trivial task. Testing is also difficult in that
18*94f69966SJacob Panthermal conditions are often exception cases that hard to reach in
19*94f69966SJacob Pannormal operations.
20*94f69966SJacob Pan
21*94f69966SJacob PanTMON is conceived as a tool to help visualize, tune, and test the
22*94f69966SJacob Pancomplex thermal subsystem.
23*94f69966SJacob Pan
24*94f69966SJacob PanFiles
25*94f69966SJacob Pan=====
26*94f69966SJacob Pan	tmon.c : main function for set up and configurations.
27*94f69966SJacob Pan	tui.c : handles ncurses based user interface
28*94f69966SJacob Pan	sysfs.c : access to the generic thermal sysfs
29*94f69966SJacob Pan	pid.c : a proportional-integral-derivative (PID) controller
30*94f69966SJacob Pan	that can be used for thermal relationship training.
31*94f69966SJacob Pan
32*94f69966SJacob PanRequirements
33*94f69966SJacob Pan============
34*94f69966SJacob PanDepends on ncurses
35*94f69966SJacob Pan
36*94f69966SJacob PanBuild
37*94f69966SJacob Pan=========
38*94f69966SJacob Pan$ make
39*94f69966SJacob Pan$ sudo ./tmon -h
40*94f69966SJacob PanUsage: tmon [OPTION...]
41*94f69966SJacob Pan  -c, --control         cooling device in control
42*94f69966SJacob Pan  -d, --daemon          run as daemon, no TUI
43*94f69966SJacob Pan  -l, --log             log data to /var/tmp/tmon.log
44*94f69966SJacob Pan  -h, --help            show this help message
45*94f69966SJacob Pan  -t, --time-interval   set time interval for sampling
46*94f69966SJacob Pan  -v, --version         show version
47*94f69966SJacob Pan  -g, --debug           debug message in syslog
48*94f69966SJacob Pan
49*94f69966SJacob Pan1. For monitoring only:
50*94f69966SJacob Pan$ sudo ./tmon
51