mirror of https://gitee.com/openkylin/linux.git
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
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
|