| 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 |