• Home
Name Date Size #Lines LOC

..--

.gitignoreD08-May-20246 21

MakefileD08-May-20241.7 KiB5940

READMED08-May-20241.7 KiB5142

pid.cD08-May-20242.9 KiB12162

sysfs.cD08-May-202414.3 KiB590446

tmon.8D08-May-20244.8 KiB146131

tmon.cD08-May-20248.4 KiB377309

tmon.hD08-May-20245 KiB196139

tui.cD08-May-202416.2 KiB657500

README

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