aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: 3d236e82e5ff5afe23531809700e0a0e9c750cd2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
#
# $Id: README,v 1.23 2002/04/29 11:00:26 reinelt Exp $
#

This is the README file for lcd4linux


INTRODUCTION 

lcd4linux is a small program that reads various information from the kernel
(and from other subsystems, especially ISDN) and displays them on a LCD or
other display device.

It supports displaying text values and different types of bars: Horizontal and
vertical bars, logarithmic bars, split bars (two independent bars in one row).


USAGE

lcd4linux -h  
  print version number and a small help text, then exit

lcd4linux -l 
  list available drivers

#ifdef USE_OLD_UDELAY
lcd4linux -d
  calibrate delay loop (necessary for some drivers)
#endif

lcd4linux [-c key=val] [-F] [-f config-file] [-o output] [-q] [-v]
  run lcd4linux 
  overwrite entries from the config-file with '-c'
  do not fork and detach with '-F'
  use configuration from 'config-file' instead of /etc/lcd4linux.conf
  write picture to 'output' (raster driver only)
  suppress startup splash screen with '-q'
  generate info messages with '-v'
  generate debugging messages with '-vv'
  debug socket traffic too, with '-vvv'
  
  
DIAGNOSTICS

  lcd4linux on foreground writes (depending on level) to stdout or stderr.
  The Text-Driver has ist's own diagnostics window.
  
  Started in the background (the default), lcd4linux uses your syslog daemon
  for logging. Facility is USER, levels are ERR, INFO and DEBUG.


SUPPORTED DISPLAYS

* Matrox Orbital: <http://www.matrixorbital.com>
	
  "LCD0821": 2 lines by  8 characters
  "LCD1621": 2 lines by 16 characters
  "LCD2021": 2 lines by 20 characters
  "LCD2041": 4 lines by 20 characters (tested)
  "LCD4021": 2 lines by 40 characters


* CrystalFontz <http://www.crystalfontz.com>

  any of 626, 632, 634 and 636.


* HD44780-based displays

  This driver supports display modules based on the Hitachi HD44780 chip,
  connected to a parallel port. These displays are made by different 
  manufactures, and come in various sizes.

* Beckmann+Egle mini-terminal

  thanks to Helmut A. Bender <hab@arcanum.inka.de>


* Mitsubishi M50530

  I got a real cool display (8 lines by 24 characters!) from 
  Udo Altmann (udo.altmann@web.de) Thanks again!
  Unfortunately, the driver is not finished yet.


* Toshiba T6963

  I got another real cool display (240x128 pixel!) from 
  Carsten Nau (info@cnau.de). Thanks again!
  Unfortunately, the driver is not finished yet.


* PalmOrb

  I was told that lcd4linux works fine with PalmOrb, a small program that 
  emulates a Matrox Orbital display on the Palm Pilot.


* X11
  thanks to Herbert Rosmanith <herp@wildsau.idv.uni-linz.ac.at> a driver
  for the X Window System is available. It supports any size at any
  resolution. A very small XLCD4Linux-Window can even swallow on the KDE
  Panel!


* Raster formats:
  a generic raster driver (which is used by the X11-driver, too) is availiable,
  it supports:
     PPM (portable pixmap)
     PNG (with libgd)

* Text:
  This is a ncurses based text driver, mainly intended for debugging.

* other displays: lcd4linux and especially the display driver code is very
  modular, so it should be quite easy to write a driver for any display. See
  README.driver for details. Contributors are welcome!!!


CONFIGURATION

The configuration file (default: /etc/lcd4linux.conf) has a very simple
format: Every line consists of a key and a value, seperated by whitespace
(blanks or tabs). Values can contain whitespace, and can be enclosed in
single or double quotes. A key must not contain whitespace. Keys are NOT
case-sensitive. Order doesn't matter. Empty lines and all text on a line
after a '#' will be ignored. If you want to use '#' in a value (think of
X11-colors), you have to quote it with a backslash.

NOTE:

Because of security reasons the config file is assured to be:
   * - file is a normal file (or /dev/null)
   * - file owner is owner of program
   * - file is not accessible by group
   * - file is not accessible by other
   
So if you run lcd4linux as root, /etc/lcd4linux has to be:
  chmod 600
  chown root.root


The configuration file contains information for different modules of
lcd4linux:

Global options:

  tick: time in milliseconds between bar updates
  tack: time in milliseconds between text updates (text can be updated less 
        often than bars, so you get a smooth bar display and readable text)
  tau:  time constant (in milliseconds) for damping function (not used by now)

Data-specific options:

  overload: load average threshold and bar scaling. The '%L' token (see below)
            displays a '!' instead of a blank if the current load average 
	    exceeds this value. 
            load bars are scaled by this value (load=overload gives 100%)
  sensor1: path to the 1st temperature file 
           (e.g. /proc/sys/dev/sensors/w83781d-isa-0290/temp1)
           it is important that you use the isa sensors, because the i2c 
	   sensors are very slow!
  sensor1_min: temperature where the corresponding bar starts
  sensor1_max: temperature where bar ends
  sensor[2..9], -_min, -_max: entries for the 2nd to 9th temperature sensor
  
  exec:
     x1 ... x9: command to execute, PATH=/usr/local/bin:/usr/bin:/bin
                $X1 ... $X8 is result of command 1..8 in environment
     Tick_x1 .. 9 delay in ticks (overrides delay_x)
     Delay_x1 ..9 delay in seconds (default 1)
     Max_x1 ..9 max value for bars (default 100)
     Min_x1 ..9 min value for bars (default 0)
     
  battery: Battwarning 10 (default 10)
  
  Mailbox:
     The option string may be a plain mbox file or a pop3/imap4/nntp server
     string with the following format:
     
       pop3:[user[:pass]@]machine[:port]
       imap4:[user[:pass]@]machine[:port][/dir]
       nntp:[user[:pass]@]machine[:port][/dir]
       
     Port defaults to 110 and 143 respectively.
     If /dir is not given, INBOX is assumed.
     If dir is given for nntp: it should be a valid group name
       with '.' separating items
     If dir is not given for nntp: all/unread news of subscribed groups
     from Newsrc are calcualted.
       
     Delay_e1..e9 delay in seconds for querying the MailboxN (default 5)  
     Newsrc ... path/name of your .newsrc file containing subscribed news
     
     Note: authorization on newsservers is untested.
     Note: user and pass may not contain a '/' with above syntax, I hope
           that's ok.
   
  SetiDir: directory where seti@home stores its data files

 
Driver-specific options:
  
  Display: the name of a display model (see "supported displays" above)
  every driver has its own configuration options (e.g. 'Port', 'Speed', ...)
  see README.<Drivername> for details!
  
  
Display options:
  
  row1: Text to display in row 1
  row[2-max]: Text to display in other rows

  The text to be displayed can contain specific directives, which will be
  replaced by the appropriate values, or will create bars:

  '\nnn` will write the ASCII-character nnn (octal)
  '%<token>' will be replaced by the value of <token>
  '%%' will write a '%'
  '%$' will write a '$'

  '$<direction><length><token>[+<token>] will create a bar with the
  specified direction and length (in characters) with the value of <token>.
  If the driver supports dual bars, you can specify the second value with
  '+<token>'. <direction> can be 'l' (left), 'r' (right), 'u' (up) or 'd'
  (down). If you specify the direction in upper case, a logarithmic bar will
  be created. note that the space occupied by a bar always grows from left
  to right or from top to bottom, regardless of the direction!
  
  '$t<height><token>,<width> will create a time series bar. The data are 
  displayed like '$u', but are shifted every second 1 pixel to the 
  left. Currently only displays based on the pixel-driver support this 
  bar type.

Tokens:

  'o'  operating system name ('Linux')
  'v'  operating system release ('2.0.38')
  'p'  processor ('i686')
  'r'  total amount of memory installed (MB)
  'mt' total memory from /proc/meminfo (kB)
  'mu' used memory (kB)  
  'mf' free memory (kB)
  'ms' shared memory (kB)
  'mb' buffers (kB)
  'mc' page cache (kB)  
  'ma' application memory (kB) = used - buffer - cache
  'l1' load average for the past 1 minute
  'l2' load average for the past 5 minutes
  'l3' load average for the past 15 minutes
  'L'  '!' if load > overload (from config)   
  'cu' percentage of CPU in user mode
  'cn' percentage of CPU in niced tasks
  'cs' percentage of CPU in system mode
  'cb' percentage of CPU busy (=100-idle)
  'ci' percentage of CPU idle
  'dr' disk blocks read
  'dw' disk blocks written
  'dt' disk blocks total (read+write)
  'dm' disk blocks max (read, write)
  'nr' network bytes received
  'nw' network bytes transmitted
  'nt' network bytes total (receive+transmit)
  'nm' network bytes max (receive, transmit)
  'ii' ISDN bytes received
  'io' ISDN bytes sent
  'it' ISDN bytes total (received+send)
  'im' ISDN bytes max (received, send)
  'ic' ISDN connected (0=offline, 1=online)
  'ti' PPP bytes received
  'to' PPP bytes sent
  'tt' PPP bytes total (received+send)
  'tm' PPP bytes max (received, send)
  's1' temperature of sensor 1
  's2' temperature of sensor 2 (up to s9)
  'bp' battery percentage (APM by now)
  'bs' battery status ('=' = online, '+' = charging, '-' discharging)
  'bd' battery duration in s{econds}, m{ins}, h{ours} or d{ays}
  'hc' seti@home % completed
  'ht' seti@home time spent on workunit
  'e*' mails in mailbox 1-9, total mail
  'u*' mails in mailbox 1-9, unseen mail
  'x*' output of command 1-9
  
Please have a look at lcd4linux.conf.sample, where you can find examples
of all options and there usage.