1 .TH TMON 8 1 .TH TMON 8 2 # SPDX-License-Identifier: GPL-2.0 2 # SPDX-License-Identifier: GPL-2.0 3 .SH NAME 3 .SH NAME 4 \fBtmon\fP - A monitoring and testing tool for 4 \fBtmon\fP - A monitoring and testing tool for Linux kernel thermal subsystem 5 5 6 .SH SYNOPSIS 6 .SH SYNOPSIS 7 .ft B 7 .ft B 8 .B tmon 8 .B tmon 9 .RB [ Options ] 9 .RB [ Options ] 10 .br 10 .br 11 .SH DESCRIPTION 11 .SH DESCRIPTION 12 \fBtmon \fP can be used to visualize thermal r 12 \fBtmon \fP can be used to visualize thermal relationship and 13 real-time thermal data; tune 13 real-time thermal data; tune 14 and test cooling devices and sensors; collect 14 and test cooling devices and sensors; collect thermal data for offline 15 analysis and plot. \fBtmon\fP must be run as r 15 analysis and plot. \fBtmon\fP must be run as root in order to control device 16 states via sysfs. 16 states via sysfs. 17 .PP 17 .PP 18 \fBFunctions\fP 18 \fBFunctions\fP 19 .PP 19 .PP 20 .nf 20 .nf 21 1. Thermal relationships: 21 1. Thermal relationships: 22 - show thermal zone information 22 - show thermal zone information 23 - show cooling device information 23 - show cooling device information 24 - show trip point binding within each thermal 24 - show trip point binding within each thermal zone 25 - show trip point and cooling device instance 25 - show trip point and cooling device instance bindings 26 .PP 26 .PP 27 2. Real time data display 27 2. Real time data display 28 - show temperature of all thermal zones w.r.t. 28 - show temperature of all thermal zones w.r.t. its trip points and types 29 - show states of all cooling devices 29 - show states of all cooling devices 30 .PP 30 .PP 31 3. Thermal relationship learning and device tu 31 3. Thermal relationship learning and device tuning 32 - with a built-in Proportional Integral Deriva 32 - with a built-in Proportional Integral Derivative (\fBPID\fP) 33 controller, user can pair a cooling device to 33 controller, user can pair a cooling device to a thermal sensor for 34 testing the effectiveness and learn about the 34 testing the effectiveness and learn about the thermal distance between the two 35 - allow manual control of cooling device state 35 - allow manual control of cooling device states and target temperature 36 .PP 36 .PP 37 4. Data logging in /var/tmp/tmon.log 37 4. Data logging in /var/tmp/tmon.log 38 - contains thermal configuration data, i.e. co 38 - contains thermal configuration data, i.e. cooling device, thermal 39 zones, and trip points. Can be used for data 39 zones, and trip points. Can be used for data collection in remote 40 debugging. 40 debugging. 41 - log real-time thermal data into space separa 41 - log real-time thermal data into space separated format that can be 42 directly consumed by plotting tools such as R 42 directly consumed by plotting tools such as Rscript. 43 43 44 .SS Options 44 .SS Options 45 .PP 45 .PP 46 The \fB-c --control\fP option sets a cooling d 46 The \fB-c --control\fP option sets a cooling device type to control temperature 47 of a thermal zone 47 of a thermal zone 48 .PP 48 .PP 49 The \fB-d --daemon\fP option runs \fBtmon \fP 49 The \fB-d --daemon\fP option runs \fBtmon \fP as daemon without user interface 50 .PP 50 .PP 51 The \fB-g --debug\fP option allow debug messag 51 The \fB-g --debug\fP option allow debug messages to be stored in syslog 52 .PP 52 .PP 53 The \fB-h --help\fP option shows help message 53 The \fB-h --help\fP option shows help message 54 .PP 54 .PP 55 The \fB-l --log\fP option write data to /var/t 55 The \fB-l --log\fP option write data to /var/tmp/tmon.log 56 .PP 56 .PP 57 The \fB-t --time-interval\fP option sets the p 57 The \fB-t --time-interval\fP option sets the polling interval in seconds 58 .PP 58 .PP 59 The \fB-T --target-temp\fP option sets the ini 59 The \fB-T --target-temp\fP option sets the initial target temperature 60 .PP 60 .PP 61 The \fB-v --version\fP option shows the versio 61 The \fB-v --version\fP option shows the version of \fBtmon \fP 62 .PP 62 .PP 63 The \fB-z --zone\fP option sets the target the 63 The \fB-z --zone\fP option sets the target therma zone instance to be controlled 64 .PP 64 .PP 65 65 66 .SH FIELD DESCRIPTIONS 66 .SH FIELD DESCRIPTIONS 67 .nf 67 .nf 68 .PP 68 .PP 69 \fBP \fP passive cooling trip point type 69 \fBP \fP passive cooling trip point type 70 \fBA \fP active cooling trip point type (fan) 70 \fBA \fP active cooling trip point type (fan) 71 \fBC \fP critical trip point type 71 \fBC \fP critical trip point type 72 \fBA \fP hot trip point type 72 \fBA \fP hot trip point type 73 \fBkp \fP proportional gain of \fBPID\fP contr 73 \fBkp \fP proportional gain of \fBPID\fP controller 74 \fBki \fP integral gain of \fBPID\fP controlle 74 \fBki \fP integral gain of \fBPID\fP controller 75 \fBkd \fP derivative gain of \fBPID\fP control 75 \fBkd \fP derivative gain of \fBPID\fP controller 76 76 77 .SH REQUIREMENT 77 .SH REQUIREMENT 78 Build depends on ncurses 78 Build depends on ncurses 79 .PP 79 .PP 80 Runtime depends on window size large enough to 80 Runtime depends on window size large enough to show the number of 81 devices found on the system. 81 devices found on the system. 82 82 83 .PP 83 .PP 84 84 85 .SH INTERACTIVE COMMANDS 85 .SH INTERACTIVE COMMANDS 86 .pp 86 .pp 87 .nf 87 .nf 88 \fBCtrl-C, q/Q\fP stops \fBtmon\fP 88 \fBCtrl-C, q/Q\fP stops \fBtmon\fP 89 \fBTAB\fP shows tuning pop up panel, choose a 89 \fBTAB\fP shows tuning pop up panel, choose a letter to modify 90 90 91 .SH EXAMPLES 91 .SH EXAMPLES 92 Without any parameters, tmon is in monitoring 92 Without any parameters, tmon is in monitoring only mode and refresh 93 screen every 1 second. 93 screen every 1 second. 94 .PP 94 .PP 95 1. For monitoring only: 95 1. For monitoring only: 96 .nf 96 .nf 97 $ sudo ./tmon 97 $ sudo ./tmon 98 98 99 2. Use Processor cooling device to control the 99 2. Use Processor cooling device to control thermal zone 0 at default 65C. 100 $ sudo ./tmon -c Processor -z 0 100 $ sudo ./tmon -c Processor -z 0 101 101 102 3. Use intel_powerclamp(idle injection) coolin 102 3. Use intel_powerclamp(idle injection) cooling device to control thermal zone 1 103 $ sudo ./tmon -c intel_powerclamp -z 1 103 $ sudo ./tmon -c intel_powerclamp -z 1 104 104 105 4. Turn on debug and collect data log at /var/ 105 4. Turn on debug and collect data log at /var/tmp/tmon.log 106 $ sudo ./tmon -g -l 106 $ sudo ./tmon -g -l 107 107 108 For example, the log below shows PID controlle 108 For example, the log below shows PID controller was adjusting current states 109 for all cooling devices with "Processor" type 109 for all cooling devices with "Processor" type such that thermal zone 0 110 can stay below 65 dC. 110 can stay below 65 dC. 111 111 112 #---------- THERMAL DATA LOG STARTED --------- 112 #---------- THERMAL DATA LOG STARTED ----------- 113 Samples TargetTemp acpitz0 acpitz1 Fan0 113 Samples TargetTemp acpitz0 acpitz1 Fan0 Fan1 Fan2 Fan3 Fan4 Fan5 114 Fan6 Fan7 Fan8 Fan9 Processor10 Processor11 Pr 114 Fan6 Fan7 Fan8 Fan9 Processor10 Processor11 Processor12 Processor13 115 LCD14 intel_powerclamp15 1 65.0 65 65 0 0 0 0 115 LCD14 intel_powerclamp15 1 65.0 65 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 2 116 65.0 66 65 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 3 6 116 65.0 66 65 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 3 65.0 60 54 0 0 0 0 0 0 0 0 117 0 0 4 4 4 4 6 0 4 65.0 53 53 0 0 0 0 0 0 0 0 0 117 0 0 4 4 4 4 6 0 4 65.0 53 53 0 0 0 0 0 0 0 0 0 0 4 4 4 4 6 0 118 5 65.0 52 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 118 5 65.0 52 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 119 6 65.0 53 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 119 6 65.0 53 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 120 7 65.0 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 120 7 65.0 68 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 121 8 65.0 68 68 0 0 0 0 0 0 0 0 0 0 5 5 5 5 6 0 121 8 65.0 68 68 0 0 0 0 0 0 0 0 0 0 5 5 5 5 6 0 122 9 65.0 68 68 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 0 122 9 65.0 68 68 0 0 0 0 0 0 0 0 0 0 6 6 6 6 6 0 123 10 65.0 67 67 0 0 0 0 0 0 0 0 0 0 7 7 7 7 6 0 123 10 65.0 67 67 0 0 0 0 0 0 0 0 0 0 7 7 7 7 6 0 124 11 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 124 11 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 125 12 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 125 12 65.0 67 67 0 0 0 0 0 0 0 0 0 0 8 8 8 8 6 0 126 13 65.0 67 67 0 0 0 0 0 0 0 0 0 0 9 9 9 9 6 0 126 13 65.0 67 67 0 0 0 0 0 0 0 0 0 0 9 9 9 9 6 0 127 14 65.0 66 66 0 0 0 0 0 0 0 0 0 0 10 10 10 10 127 14 65.0 66 66 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0 128 15 65.0 66 67 0 0 0 0 0 0 0 0 0 0 10 10 10 10 128 15 65.0 66 67 0 0 0 0 0 0 0 0 0 0 10 10 10 10 6 0 129 16 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 129 16 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 130 17 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 130 17 65.0 66 66 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 131 18 65.0 64 61 0 0 0 0 0 0 0 0 0 0 11 11 11 11 131 18 65.0 64 61 0 0 0 0 0 0 0 0 0 0 11 11 11 11 6 0 132 19 65.0 60 59 0 0 0 0 0 0 0 0 0 0 12 12 12 12 132 19 65.0 60 59 0 0 0 0 0 0 0 0 0 0 12 12 12 12 6 0 133 133 134 Data can be read directly into an array by an 134 Data can be read directly into an array by an example R-script below: 135 135 136 #!/usr/bin/Rscript 136 #!/usr/bin/Rscript 137 tdata <- read.table("/var/tmp/tmon.log", heade 137 tdata <- read.table("/var/tmp/tmon.log", header=T, comment.char="#") 138 attach(tdata) 138 attach(tdata) 139 jpeg("tmon.jpg") 139 jpeg("tmon.jpg") 140 X11() 140 X11() 141 g_range <- range(0, intel_powerclamp15, Target 141 g_range <- range(0, intel_powerclamp15, TargetTemp, acpitz0) 142 plot( Samples, intel_powerclamp15, col="blue", 142 plot( Samples, intel_powerclamp15, col="blue", ylim=g_range, axes=FALSE, ann=FALSE) 143 par(new=TRUE) 143 par(new=TRUE) 144 lines(TargetTemp, type="o", pch=22, lty=2, col 144 lines(TargetTemp, type="o", pch=22, lty=2, col="red") 145 dev.off() 145 dev.off()
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.