0.4.3 -> 0.5 merging
This commit is contained in:
+67
-47
@@ -1,21 +1,24 @@
|
|||||||
.TH LCDd 8 "9 September 2001" LCDproc
|
.TH LCDd 8 "4 March 2002" LCDproc
|
||||||
.SH NAME
|
.SH NAME
|
||||||
LCDd - LCDproc server daemon
|
LCDd - LCDproc server daemon
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B LCDd
|
.B LCDd
|
||||||
[\-\-help]
|
[\-hfiws]
|
||||||
[\-\-type <\fIsize\fP>]
|
[\-c <\fIconfig\fP>]
|
||||||
[\-\-driver <\fIdriver\fP> [\fIargs\fP] ]
|
[\-d <\fIdriver\fP>]
|
||||||
[\-\-foreground \fI\fP]
|
[\-a <\fIaddr\fP>]
|
||||||
[\-\-backlight <\fImode\fP>]
|
[\-p <\fIport\fP>]
|
||||||
[\-\-serverinfo off]
|
[\-u <\fIuser\fP>]
|
||||||
|
[\-w <\fItime\fP>]
|
||||||
|
[\-r <\fIlevel\fP>]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
LCDd is the server portion of LCDproc which listens to a certain port (normally 13666) and displays information on an LCD display. It works with several types
|
LCDd is the server portion of LCDproc which listens to a certain port (normally 13666) and displays information on an LCD display. It works with several types
|
||||||
and sizes of displays.
|
and sizes of displays.
|
||||||
.PP
|
.PP
|
||||||
LCDd will attempt to open /dev/lcd by default and will error if this
|
As of version 0.4.3 of LCDproc most settings are configured through the LCDd configuration
|
||||||
device is not available. In most cases, it should be sufficient to
|
file, which is normally /etc/LCDd.conf. Before running LCDd you should carefully read through
|
||||||
link /dev/lcd to the appropriate serial or parallel device.
|
that file and modify everything neccessary according to your needs. Otherwise you might encounter
|
||||||
|
LCDd not running properly on your system.
|
||||||
.PP
|
.PP
|
||||||
To make full use of LCDd, a client such as lcdproc(1) is required.
|
To make full use of LCDd, a client such as lcdproc(1) is required.
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
@@ -23,41 +26,52 @@ Available
|
|||||||
.I LCDd
|
.I LCDd
|
||||||
options are:
|
options are:
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-h, \-\-help
|
.B \-h
|
||||||
Display this help screen
|
Display this help screen
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-t, \-\-type <size>
|
.B \-c <config>
|
||||||
select an LCD size (20x4, 16x2, etc...)
|
Use a configuration file other than /etc/LCDd.conf
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-d, \-\-driver <\fIdriver\fP> [\fIargs\fP]
|
.B \-d <driver>
|
||||||
Adds (another) driver to use to display information. Any \fIargs\fP specified will be
|
Add a driver to use (output only to first)
|
||||||
passed to the chosen driver for initialization.
|
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-f, \-\-foreground
|
.B \-f
|
||||||
Run in the foreground (no daemon)
|
Run in the foreground
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-b\fP,\fB \-\--backlight \fI<mode>\fP
|
.B \-i
|
||||||
Set backlight mode (on, off, open)
|
Disable showing of the main LCDproc server screen
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-i, \-\-serverinfo off
|
.B \-w <waittime>
|
||||||
Set the server screen to low priority
|
Time to pause at each screen (in seconds)
|
||||||
.PP
|
.TP 8
|
||||||
Help on each driver's parameters are obtained upon request:
|
.B \-a <addr>
|
||||||
"LCDd -d driver --help"
|
Network IP address to bind to
|
||||||
|
.TP 8
|
||||||
|
.B \-p <port>
|
||||||
|
Network port to listen for connections on
|
||||||
|
.TP 8
|
||||||
|
.B \-u <user>
|
||||||
|
User to run as
|
||||||
|
.TP 8
|
||||||
|
.B \-s
|
||||||
|
Output messages to syslog
|
||||||
|
.TP 8
|
||||||
|
.B \-r <level>
|
||||||
|
Report level (default=2)
|
||||||
.SS
|
.SS
|
||||||
Supported Drivers
|
Supported Drivers
|
||||||
Supported display drivers include:
|
Currently supported display drivers include:
|
||||||
.TP
|
.TP
|
||||||
.B CFontz
|
.B CFontz (or CrystalFontz)
|
||||||
CrystalFontz LCD displays
|
CrystalFontz LCD displays
|
||||||
.TP
|
.TP
|
||||||
.B curses
|
.B curses (or ncurses)
|
||||||
Standard video display using the ncurses library
|
Standard video display using the ncurses library
|
||||||
.TP
|
.TP
|
||||||
.B HD44780
|
.B HD44780
|
||||||
Hitachi HD44780 LCD displays
|
Hitachi HD44780 LCD displays
|
||||||
.TP
|
.TP
|
||||||
.B BayRad
|
.B BayRAD
|
||||||
EMAC BayRad displays
|
EMAC BayRad displays
|
||||||
.TP
|
.TP
|
||||||
.B irmanin
|
.B irmanin
|
||||||
@@ -72,14 +86,17 @@ Wirz SLI driver (unknown)
|
|||||||
.B joy
|
.B joy
|
||||||
Joystick driver (input)
|
Joystick driver (input)
|
||||||
.TP
|
.TP
|
||||||
.B MtxOrb
|
.B MtxOrb (or MatrixOrbital)
|
||||||
Matrix Orbital displays (not Matrix Orbital GLK displays)
|
Matrix Orbital displays (not Matrix Orbital GLK displays)
|
||||||
.TP
|
.TP
|
||||||
|
.B glk
|
||||||
|
Matrix Orbital GLK graphical LCD displays
|
||||||
|
.TP
|
||||||
.B LB216
|
.B LB216
|
||||||
LB216 LCD display
|
LB216 LCD display
|
||||||
.TP
|
.TP
|
||||||
.B glk
|
.B lcdm001 (or LCDM001)
|
||||||
Matrix Orbital GLK graphical LCD displays
|
kernelconcepts.de 20x4 serial LCD displays
|
||||||
.TP
|
.TP
|
||||||
.B text
|
.B text
|
||||||
Standard "hard-copy" text display
|
Standard "hard-copy" text display
|
||||||
@@ -88,12 +105,13 @@ Standard "hard-copy" text display
|
|||||||
Undocumented debug driver
|
Undocumented debug driver
|
||||||
.PP
|
.PP
|
||||||
Multiple drivers can be used simultaneously; thus, for example, a Matrix Orbital display (MtxOrb driver)
|
Multiple drivers can be used simultaneously; thus, for example, a Matrix Orbital display (MtxOrb driver)
|
||||||
can be combined with the an infrared driver (irmanin driver).
|
can be combined with an infrared driver (irmanin driver).
|
||||||
.SH INVOCATION
|
.SH INVOCATION
|
||||||
.TP
|
.TP
|
||||||
LCDd -d MtxOrb "--device /dev/lcd --contrast 200" -d joy
|
LCDd -d MtxOrb -d joy
|
||||||
Start LCDd with the Matrix Orbital driver and the Joystick input driver,
|
As of version 0.4.3, driver parameters are read from a configuration file (default location /etc/LCDd.conf) rather than being passed on the command line as arguments.
|
||||||
with the /dev/lcd device and a contrast value of 200.
|
The invocation example above will start LCDd with the Matrix Orbital driver and the Joystick input driver,
|
||||||
|
and attempt to load the driver parameters from the default configuration file.
|
||||||
.SH SERVER PROTOCOL
|
.SH SERVER PROTOCOL
|
||||||
There is a basic sequence:
|
There is a basic sequence:
|
||||||
.TP 8
|
.TP 8
|
||||||
@@ -273,7 +291,7 @@ frames per movement; a negative number indicates movements per frame.
|
|||||||
left top right bottom wid hgt dir speed
|
left top right bottom wid hgt dir speed
|
||||||
.sp
|
.sp
|
||||||
Frames define a visible "box" on screen,
|
Frames define a visible "box" on screen,
|
||||||
from the (\fIleft\fR, \fItop\fR) corner to the
|
>from the (\fIleft\fR, \fItop\fR) corner to the
|
||||||
(\fIright\fR, \fIbottom\fR) corner. The actual data may be bigger,
|
(\fIright\fR, \fIbottom\fR) corner. The actual data may be bigger,
|
||||||
and is defined as \fIwid\fR (width) by \fIhgt\fR (height); if it is
|
and is defined as \fIwid\fR (width) by \fIhgt\fR (height); if it is
|
||||||
bigger, then the frame will scroll in the direction (\fIdir\fR)
|
bigger, then the frame will scroll in the direction (\fIdir\fR)
|
||||||
@@ -284,23 +302,25 @@ check the order of the options and the quoting involved. Some combinations
|
|||||||
of options will be misread and thus fail.
|
of options will be misread and thus fail.
|
||||||
.PP
|
.PP
|
||||||
Try using the -d option last.
|
Try using the -d option last.
|
||||||
|
.SH FILES
|
||||||
|
.na
|
||||||
|
.nf
|
||||||
|
\fB/etc/LCDd.conf\fR, LCDd default configuration file
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr lcdproc 1
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
LCDd was written by William Ferrell (choadster@earthlink.net) and Scott Scriv
|
LCDd was originally written by William Ferrell (wwf@splatwerks.org) and Scott Scriv
|
||||||
en (scriven@cs.colostate.edu).
|
en (scriven@cs.colostate.edu).
|
||||||
|
|
||||||
|
Since that time various people have contributed to LCDproc.
|
||||||
|
|
||||||
The newest version of LCDd should be available from here as part of the lcdproc package:
|
The newest version of LCDd should be available from here as part of the lcdproc package:
|
||||||
|
|
||||||
http://lcdproc.omnipotent.net/
|
http://lcdproc.omnipotent.net/
|
||||||
|
|
||||||
.SH LEGAL STUFF
|
.SH LEGAL STUFF
|
||||||
The lcdproc package is released as "WorksForMe-Ware". In other words, it is free, kinda nea
|
The lcdproc package is released as "WorksForMe-Ware". In other words, it is free, kinda neat, and we don't guarantee that it will do anything in particular on any machine except the ones it was developed on.
|
||||||
t, and we don't guarantee that it will do anything in particular on any machine
|
|
||||||
except the ones it was developed on.
|
|
||||||
.PP
|
.PP
|
||||||
It is technically released under the GNU GPL license (you should have received t
|
It is technically released under the GNU GPL license (you should have received the file, "COPYING", with LCDproc) (also, look on http://www.fsf.org/ for more information), so you can distribute and use it for free -- but you must make the source code freely available to anyone who wants it.
|
||||||
he file, "COPYING", with LCDproc) (also, look on http://www.fsf.org/ for more in
|
|
||||||
formation), so you can distribute and use it for free -- but you must make the s
|
|
||||||
ource code freely available to anyone who wants it.
|
|
||||||
.PP
|
.PP
|
||||||
For any sort of real legal information, read the GNU GPL (GNU General Public Lic
|
For any sort of real legal information, read the GNU GPL (GNU General Public License). It's worth reading.
|
||||||
ense). It's worth reading.
|
|
||||||
|
|||||||
+2
-1
@@ -1,2 +1,3 @@
|
|||||||
man_MANS = lcdproc.1 LCDd.8
|
man_MANS = lcdproc.1 LCDd.8
|
||||||
EXTRA_DIST = README.dg README.dg2 hd44780_howto.txt lcdproc.sgml menustuff.txt netstuff.txt lcdproc.1 LCDd.8
|
SUBDIRS = lcdproc-user
|
||||||
|
EXTRA_DIST = README.dg README.dg2 menustuff.txt netstuff.txt lcdproc.1 LCDd.8
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
SUBDIRS = drivers
|
||||||
|
EXTRA_DIST = bookinfo.docbook configuration.docbook contact.docbook drivers.docbook how-to-obtain.docbook installation.docbook introduction.docbook lcdproc-user.docbook license.docbook README.docbook running.docbook
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
README.docbook
|
||||||
|
|
||||||
|
You can generate the documentation of LCDproc using
|
||||||
|
the Docbook utilities.
|
||||||
|
|
||||||
|
$ docbook2html lcdproc-user.docbook
|
||||||
|
|
||||||
|
should generate ist as HTML.
|
||||||
|
|
||||||
|
On my box (Mdk 8.1) I have to run
|
||||||
|
|
||||||
|
$ docbook2html -c /etc/sgml/catalog lcdproc-user.docbook
|
||||||
|
|
||||||
|
(-c defines the location of the SGML catalog)
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
<bookinfo>
|
||||||
|
|
||||||
|
<title>LCDproc User's Guide</title>
|
||||||
|
<subtitle>The Ultimate Guide to LCDproc 0.4.3</subtitle>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<firstname>Rene</firstname>
|
||||||
|
<surname>Wagner</surname>
|
||||||
|
<affiliation><address><email>reenoo@gmx.de</email></address></affiliation>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<firstname>Guillaume</firstname>
|
||||||
|
<surname>Filion</surname>
|
||||||
|
<affiliation><address><email>gfk@logidac.com</email></address></affiliation>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<firstname>William W.</firstname>
|
||||||
|
<surname>Ferrell</surname>
|
||||||
|
<affiliation><address><email>wwf@splatwerks.org</email></address></affiliation>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
</authorgroup>
|
||||||
|
|
||||||
|
<date>2002-03-01</date>
|
||||||
|
<releaseinfo>0.0.1</releaseinfo>
|
||||||
|
|
||||||
|
<abstract>
|
||||||
|
<para>
|
||||||
|
This document is a guide to LCDproc written for users. It covers LCDproc 0.4.3 ONLY.
|
||||||
|
Some things may be valid for 0.5 as well, but a lot has changed since 0.4.1 and a lot
|
||||||
|
will change for 0.5.
|
||||||
|
</para>
|
||||||
|
</abstract>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2002</year>
|
||||||
|
<holder>Rene Wagner</holder>
|
||||||
|
</copyright>
|
||||||
|
<copyright>
|
||||||
|
<year>2002</year>
|
||||||
|
<holder>Guillaume Filion</holder>
|
||||||
|
</copyright>
|
||||||
|
<copyright>
|
||||||
|
<year>1999</year>
|
||||||
|
<holder>William W. Ferrell</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<legalnotice>
|
||||||
|
<para>
|
||||||
|
Permission is granted to copy, distribute and/or modify this
|
||||||
|
document under the terms of the GNU Free Documentation License, Version
|
||||||
|
1.1 or any later version published by the Free Software Foundation; with
|
||||||
|
no Invariant Sections, with no Front-Cover texts, and with no Back-Cover
|
||||||
|
Texts. A copy of the license is included in the section entitled "GNU
|
||||||
|
Free Documentation License".
|
||||||
|
</para>
|
||||||
|
</legalnotice>
|
||||||
|
|
||||||
|
<keywordset>
|
||||||
|
<keyword>documentation</keyword>
|
||||||
|
<keyword>LCDproc</keyword>
|
||||||
|
<keyword>0.4.3</keyword>
|
||||||
|
<keyword>user's guide</keyword>
|
||||||
|
</keywordset>
|
||||||
|
|
||||||
|
</bookinfo>
|
||||||
@@ -0,0 +1,428 @@
|
|||||||
|
<chapter id="configuration">
|
||||||
|
<title>LCDproc Configuration</title>
|
||||||
|
|
||||||
|
<sect1 id="configure-lcdd">
|
||||||
|
<title>Configure LCDd</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As mentioned in the <link linkend=introduction>introduction</link>
|
||||||
|
LCDd, the LCDproc server, now (with version 0.4.3 of LCDproc) has its
|
||||||
|
own configuration file, which is normally <filename>/etc/LCDd.conf</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
If you have not installed LCDproc from the sources the configuration
|
||||||
|
file might have a different location. You should find it when making
|
||||||
|
your system's package manager list all the files in the LCDproc package.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The format of the <filename>/etc/LCDd.conf</filename> is ini-file-like.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
It is divided into sections that start at
|
||||||
|
markers that look like [section]. Comments are all line-based comments,
|
||||||
|
and are lines that start with '#' or ';'.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The server has a 'central' section named [server]. Further each driver
|
||||||
|
has a section which defines how the driver acts. Those sections start with
|
||||||
|
[drivername].
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<anchor id=which-driver>The drivers are activated by specifiying them in a driver= line in the
|
||||||
|
server section, like:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><filename>LCDd.conf</filename>: Specify which driver to use</title>
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
Driver=curses
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This tells LCDd to use the curses driver. The first driver specified here
|
||||||
|
that is capable of output functionality will be used as 'the' output driver.
|
||||||
|
All extra drivers can only serve as input.
|
||||||
|
The default driver to use is curses.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<warning>
|
||||||
|
<para>
|
||||||
|
If LCDd is started automatically by an init-script using the curses driver
|
||||||
|
will lock <filename>/dev/tty1</filename>! So, be careful about what you are
|
||||||
|
doing here.
|
||||||
|
</para>
|
||||||
|
</warning>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The drivers can read their own options from the config file, but most of
|
||||||
|
them don't do this yet. They expect 'command-line'-format parameters that
|
||||||
|
were previously placed on the command line. These parameters can be
|
||||||
|
given to the driver in the following way:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><filename>LCDd.conf</filename>: Compatibility mode for drivers written for 0.4.1</title>
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
Arguments="place arguments here"
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The arguments between the quotes are passed to the driver.
|
||||||
|
As said before these are the same arguments that would have
|
||||||
|
been passed to the driver using the old command line format of
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<command>LCDd -d driver "driverargs"</command>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The -d option still works, but does not allow driverargs any more.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If -d is specified on the command line, the Driver= options in the
|
||||||
|
config file are ignored.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<sect2 id="server-section">
|
||||||
|
<title><filename>LCDd.conf</filename>: The [server] Section</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The [server] section of the <filename>LCDd.conf</filename> contains the
|
||||||
|
settings for the LCDproc server <application>LCDd</application>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>Driver=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Tells the server which driver(s) to use. See
|
||||||
|
<link linkend=which-driver>above</link> for details
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The default setting is Driver=none which makes the server exit right
|
||||||
|
after the start. This is neccessary to avoid trouble with package installations.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>Bind=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Tells the server to bind to the given interface. Default to Bind=127.0.0.1 which
|
||||||
|
is actually the safest variant.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>Port=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Tells the server to listen to this specified port; defaults to 13666.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>ReportLevel=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the reporting level; defaults to 2 (warnings and errors only).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>ReportToSyslog=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Should we report to syslog instead of stderr ? Defaults to no.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>WaitTime=
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Sets the default time in seconds to display a screen.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>User=
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
User to run as. LCDd will drop its root privileges,
|
||||||
|
if any, and run as this user instead. Defaults to User=nobody.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
If you want to use the server menu, to shutdown or reboot your system,
|
||||||
|
you will have to set this to root. Otherwise LCDd does not have the
|
||||||
|
privileges to run commands like <command>init 6</command>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>ServerScreen=
|
||||||
|
</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
Enables the server screen even when other screens are active. Defaults to
|
||||||
|
no.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>Foreground=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
The server will stay in the foreground if set to true.
|
||||||
|
Otherwise the server will fork to background and report
|
||||||
|
to syslog. Defaults to yes.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="input-section">
|
||||||
|
<title><filename>LCDd.conf</filename>: The [input] Section</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The [input] section enables you to set some general ("global")
|
||||||
|
options related to the way <application>LCDd</application> handles
|
||||||
|
input "events".
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<table>
|
||||||
|
<title>The Standard LCDd Input Keys</title>
|
||||||
|
<tgroup cols="3">
|
||||||
|
<thead>
|
||||||
|
<row>
|
||||||
|
<entry>Keyname</entry>
|
||||||
|
<entry>Function</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>Normal context</entry>
|
||||||
|
<entry>Menu context</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>PauseKey</entry>
|
||||||
|
<entry>Pause/Continue</entry>
|
||||||
|
<entry>Enter/select</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>BackKey</entry>
|
||||||
|
<entry>Back (Go to previous screen)</entry>
|
||||||
|
<entry>Up/Left</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>ForwardKey</entry>
|
||||||
|
<entry>Forward (Go to next screen)</entry>
|
||||||
|
<entry>Down/Right</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>MainMenuKey</entry>
|
||||||
|
<entry>Open main menu</entry>
|
||||||
|
<entry>Exit/Cancel</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The way input keys are handled will change completely in LCDproc 0.5.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
|
||||||
|
<sect3 id="freekeyoptions">
|
||||||
|
<title><filename>LCDd.conf</filename>: [input] Section: The Free*Key Options</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The Free*Key Options are interesting for those users whose keypad (or other input source)
|
||||||
|
has got only four (or less) keys. In this case LCDd would normally use all those
|
||||||
|
keys to enable you to control the server menu and the other server functions (like
|
||||||
|
switching to the next screen). If these keys are used by a client to do anything
|
||||||
|
but noticing that the user has e.g. entered the menu or switched to another screen,
|
||||||
|
this will probably cause trouble, as one keypress has several effects at the same
|
||||||
|
time.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The Free*Key options enable you to influence this behaviour.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>FreePauseKey=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If set to yes, this prevents LCDd from handling the PauseKey itself.
|
||||||
|
Then a client can request the key 'A' and handle it.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>FreeBackKey=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If set to yes, this prevents LCDd from handling the BackKey itself.
|
||||||
|
Then a client can request the key 'B' and handle it.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>FreeForwardKey=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If set to yes, this prevents LCDd from handling the ForwardKey itself.
|
||||||
|
Then a client can request the key 'C' and handle it.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>FreeMainMenuKey=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If set to yes, this prevents LCDd from handling the MainMenuKey itself.
|
||||||
|
Then a client can request the key 'D' and handle it.
|
||||||
|
</para>
|
||||||
|
<tip>
|
||||||
|
<para>
|
||||||
|
Even if you "free" the above keys, you can still use the menu
|
||||||
|
provided you set FreeMainMenuKey to no.
|
||||||
|
</para>
|
||||||
|
</tip>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="drivers-section">
|
||||||
|
<title><filename>LCDd.conf</filename>: The Drivers Section</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As mentioned earlier, each driver has its own section in the
|
||||||
|
<filename>LCDd.conf</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The settings are more or less self-explanatory. So, read through the
|
||||||
|
section of your driver and change everything neccessary.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="init-scripts">
|
||||||
|
<title>The LCDproc Init Scripts</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The LCDproc distribution contains init scripts for RedHat- and Debian-based
|
||||||
|
GNU/Linux distributions. You can find them in the <filename>docs/</filename>
|
||||||
|
directory of the LCDproc sources.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The init scripts are generated using autoconf. So, again it is important that
|
||||||
|
you have run <command>./configure</command> with the correct options for your
|
||||||
|
system.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Refer to your system's manual on how to install the scripts.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2 id="init-lcdd">
|
||||||
|
<title>init-LCDd</title>
|
||||||
|
<para>
|
||||||
|
The file <filename>scripts/init-LCDd.*</filename> is the init script for the
|
||||||
|
LCDproc server LCDd. It does not require modification.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="init-lcdproc">
|
||||||
|
<title>init-lcdproc</title>
|
||||||
|
<para>
|
||||||
|
The file <filename>scripts/init-lcdproc.*</filename> is the init script for the
|
||||||
|
LCDproc "main" client lcdproc. As lcdproc itself does not (yet) have a configuration file
|
||||||
|
you may want to modify the options the init script passes to lcdproc.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
You can retrieve a listing of all options of lcdproc running <command>lcdproc --help</command>.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The lcdproc init script retrieves the options it will pass to lcdproc from the file
|
||||||
|
<filename>/etc/lcdproc.conf</filename> (<filename>scripts/lcdproc.conf</filename> in the
|
||||||
|
sources distribution).
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><filename>lcdproc.conf</filename>: Modify the option passed to lcdproc</title>
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
# /etc/lcdproc.conf
|
||||||
|
#
|
||||||
|
# Configuration file of the main LCDproc client "lcdproc"
|
||||||
|
# NOTE: The configuration file of LCDd is /etc/LCDd.conf
|
||||||
|
|
||||||
|
# Set SCREENS to the screens you want lcdproc to send to LCDd
|
||||||
|
# lcdproc --help will give you a list of the screens available
|
||||||
|
|
||||||
|
SCREENS="C X"
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In this example lcdproc will only send information on the CPU usage [C] and system load [X] to the server.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<chapter id="contact">
|
||||||
|
<title>Contact Us</title>
|
||||||
|
|
||||||
|
<sect1 id="errata">
|
||||||
|
<title>Errata</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Of course LCDproc is not perfect (yet). We do our very best
|
||||||
|
to improve it, but in some cases we are very much restricted
|
||||||
|
in our efforts.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The main reason for that is the fact that we do NOT have all
|
||||||
|
the hardware people have writte. drivers for. Unfortunately
|
||||||
|
some developers have kind of vanished and don't react to mails
|
||||||
|
from the mailing list any more.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
So, as far as drivers are concerned we rely on YOU as testers.
|
||||||
|
We have developed elaborate "coding in the dark" skills over the
|
||||||
|
time. E.g. the CFontz driver has been updated and ported to 0.4.3
|
||||||
|
without the developers having the hardware.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="mailing-list">
|
||||||
|
<title>The LCDproc Mailing List</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
We are a bit lazy about the bug-tracking and whatever stuff
|
||||||
|
on SourceForge. So, please contact us directly through the mailing
|
||||||
|
list.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For details on how to subscribe to the list see
|
||||||
|
<ulink url="http://lcdproc.omnipotent.net/mail.php3">http://lcdproc.omnipotent.net/mail.php3</ulink>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
We like people to subscribe to the list with their real names.
|
||||||
|
Of course we cannot and do not want to force you to do so.
|
||||||
|
Anyway, we need to know your name, if you want to contribute code
|
||||||
|
to LCDproc (legal issues of copyrights).
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="reporting-bugs">
|
||||||
|
<title>Reporting Bugs</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Possibly you will find a bug in the LCDproc distribution.
|
||||||
|
Before reporting this to the mailing list, please respect the following:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>Your system should be more or less up to date. This does not mean
|
||||||
|
that you have to update from GNU/Linux kernel 2.0.x to 2.2.x or from 2.2.x to
|
||||||
|
2.4.x. But we would like to make sure that your problem is not related to a
|
||||||
|
known bug in the kernel or maybe your compiler.
|
||||||
|
</para></listitem>
|
||||||
|
<listitem><para>Especially LCDd might need certain privileges to execute
|
||||||
|
a command. Make sure LCDd HAS the rights to do so.</para></listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When experiencing problems with LCDd, make sure that your hardware is OK.
|
||||||
|
E.g. you should make sure that the wireing for your (in this case most
|
||||||
|
likely parallel) device is correct.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem><para>Make sure that you use the correct speed settings for your device.
|
||||||
|
Incorrect speed settings (baud rate) are most likely to produce garbage
|
||||||
|
scrolling on your display.
|
||||||
|
Refer to the specifications of your device. If your device needs a speed
|
||||||
|
setting that is not supported by LCDd send us a mail.</para></listitem>
|
||||||
|
<listitem><para>Make sure that you have modified the configuration file according
|
||||||
|
to your needs and that LCDd actually uses the configuration file. I.e. you might
|
||||||
|
have to run LCDd with the -c <link linkend="lcdd-commandline-options">option</link>
|
||||||
|
</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Anyway, no question is too stupid to ask ;) Feel free to ask whatever you want.
|
||||||
|
Unfortunately replying to mails takes time as well (a damn lot of time). So, if
|
||||||
|
you want LCDproc to develop faster, please try to solve a problem yourself first.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
BUT if you have actually FOUND A BUG we will be quite happy if you let us know.
|
||||||
|
We NEED YOU as testers and appreciate any feedback.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<chapter id="drivers">
|
||||||
|
<title>LCDproc Drivers</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This chapter contains the documentation of each LCDproc driver,
|
||||||
|
which may include the installation process of the hardware as
|
||||||
|
well as the configuration of LCDd.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
&hd44780;
|
||||||
|
&ppttrouble;
|
||||||
|
&mtxorb;
|
||||||
|
&lircin;
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
EXTRA_DIST = hd44780.docbook lircin.docbook mtxorb.docbook ppttrouble.docbook
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,172 @@
|
|||||||
|
<sect1 id="lircin">
|
||||||
|
<title>The lircin Driver</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The lircin driver enables you to use any IR remote control
|
||||||
|
that works with LIRC to control the LCDproc server
|
||||||
|
(<application>LCDd</application>)
|
||||||
|
and/or clients that can handle input.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Of course you need a working LIRC setup. Refer to
|
||||||
|
<ulink url="http://www.lirc.org">http://www.lirc.org</ulink> for more
|
||||||
|
information on LIRC itself.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2 id="lirc-install">
|
||||||
|
<title>Checking Your LIRC Setup</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Basically all you need is a running <application>lircd</application>.
|
||||||
|
And of course you have to start <application>lircd</application>
|
||||||
|
as root.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Also, make sure that the permission of <filename>/dev/lircd</filename>
|
||||||
|
are correct.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="lircin-configure">
|
||||||
|
<title>Build LCDd with the lircin Driver</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You need to add lircin to the --enable-drivers=... list.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Then simply run make.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="lircin-config">
|
||||||
|
<title>Configure LCDd to Use the lircin Driver</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
First of all you need to activate the driver by adding a Driver=lircin line
|
||||||
|
to your <filename>LCDd.conf</filename>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><filename>LCDd.conf</filename>: Activate the lircin driver</title>
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
Driver=mtxorb
|
||||||
|
Driver=lircin
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This activates the mtxorb driver as the output driver and the lirc driver
|
||||||
|
as the input driver.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Then you have to modify the [lircin] section of your
|
||||||
|
<filename>LCDd.conf</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect3 id="lircin-section">
|
||||||
|
<title><filename>LCDd.conf</filename>: The [lircin] Section</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The [lircin] section of the <filename>LCDd.conf</filename> contains the
|
||||||
|
settings for the lircin LCDproc driver.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
<varlistentry>
|
||||||
|
<term>lircrc=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<anchor id=which-lircrc>Normally all LIRC clients scan the file <filename>~/.lircrc</filename>.
|
||||||
|
However, you might want to have a separate file to configure the
|
||||||
|
LCDproc lircin driver only.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
This option enables you to specify the file you want the lircin
|
||||||
|
driver to scan.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
<varlistentry>
|
||||||
|
<term>prog=</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
All LIRC keys are assigned to a program using the prog=... option
|
||||||
|
in the <filename>~/.lircrc</filename> (or the file you have specified
|
||||||
|
with lircrc=...).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The prog=... line must be the same as in your <filename>~/.lircrc</filename>
|
||||||
|
(or the file you have specified with lircrc=...).
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect3>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="lircrc">
|
||||||
|
<title>Modify Your <filename>~/.lircrc</filename></title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As mentioned above you can either modify the <filename>~/.lircrc</filename>
|
||||||
|
or use a separate file for the lircin LCDproc driver (See
|
||||||
|
<link linkend=which-lircrc>above</link> for details).
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
No matter which file you use, you have to add at least the following
|
||||||
|
lines to the file:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><filename>~/.lircrc</filename>: Specify the keys for the lircin driver</title>
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
begin
|
||||||
|
prog = lcdd
|
||||||
|
button = 2
|
||||||
|
config = A
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
prog = lcdd
|
||||||
|
button = 4
|
||||||
|
config = B
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
prog = lcdd
|
||||||
|
button = 6
|
||||||
|
config = C
|
||||||
|
end
|
||||||
|
|
||||||
|
begin
|
||||||
|
prog = lcdd
|
||||||
|
button = 8
|
||||||
|
config = D
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Which buttons you specify here depends on your RC and your LIRC configuration.
|
||||||
|
Anyways, config=A/B/C/D is neccessary to control the server menu of LCDd.
|
||||||
|
Of course you can define other keys. Those keys will not be handled by the
|
||||||
|
server but sent to a client. Refer to the documentation of the client you want
|
||||||
|
to use, to find out which keys are neccessary for that client.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
@@ -0,0 +1,221 @@
|
|||||||
|
<sect1 id="mtxorb">
|
||||||
|
<title>The Matrix Orbital Driver (MtxOrb)</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This section covers the installation process for the Matrix Orbital LCD
|
||||||
|
module intended for use with LCDproc.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
We will examine the installation process of the hardware in
|
||||||
|
small steps, as it is vitally important to pay close attention to detail during
|
||||||
|
hardware installation to avoid damaging equipment.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Matrix Orbital LCD Modules</title>
|
||||||
|
<para>
|
||||||
|
LCDproc was born out of original tinkering by William Ferrell with
|
||||||
|
one of these LCD modules. Their ease of installation and use (as well
|
||||||
|
as the amazing amount of patience demonstrated by the folks at
|
||||||
|
Matrix Orbital whilst William figured things out) meant one less thing
|
||||||
|
to worry about during the early stages of LCDproc's life.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
These 20x4 alphanumeric modules are connected via standard DB-9 cabling and
|
||||||
|
connectors. They draw either 5V or 12V, depending on the module purchased,
|
||||||
|
and are attached with a standard floppy cable connector (with a slightly
|
||||||
|
modified wire configuration).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Once connected, using them is a breeze. They can operate at any number of
|
||||||
|
different baud rates and serial configurations, but normally they run at
|
||||||
|
19,200 baud, 8-N-1, making them quite quick. Sending ASCII to the module
|
||||||
|
will make it simply display that text at its current cursor position. The
|
||||||
|
module has a built-in BIOS that recognizes commands (sent by transmitting a
|
||||||
|
single-byte "marker" signifying that a command is on the way, followed by
|
||||||
|
the single-byte command character itself along with any parameters, if needed)
|
||||||
|
allowing the programmer to clear the screen, position the cursor anywhere,
|
||||||
|
define custom characters (up to 8 at a time), draw bar graphs and large numbers,
|
||||||
|
change the LCD's contrast, and so on.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The BIOS included also implements line-wrapping (i.e. writing past the
|
||||||
|
twentieth character on the first row will automatically move the cursor
|
||||||
|
to the first character on the second row), and screen scrolling (i.e.
|
||||||
|
writing past the twentieth character on the fourth row causes the whole
|
||||||
|
screen to scroll up one row, clearing the fourth line and positioning the
|
||||||
|
cursor at the first character on that line).
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
These modules are fast. Using the auto-line-wrap feature and disabling
|
||||||
|
the auto-scrolling feature, the screen can be updated thirty times per
|
||||||
|
second if *every* character on the screen is changed. If updating less
|
||||||
|
than the whole screen, the LCD can update faster than can be seen by
|
||||||
|
the human eye. This, of course, more than meets LCDproc's needs.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2>
|
||||||
|
<title>Matrix Orbital Hardware Installation</title>
|
||||||
|
<para>
|
||||||
|
Regardless of what specific type of hardware you intend to use with LCDproc,
|
||||||
|
installation is usually straightforward, and requires only a few steps. Regardless,
|
||||||
|
you must use caution while working inside your computer system or with any hardware
|
||||||
|
attachments.
|
||||||
|
</para>
|
||||||
|
<warning>
|
||||||
|
<para>
|
||||||
|
Installing new hardware inside a computer system can be dangerous to both
|
||||||
|
system components and the installer. Use caution whenever adding a component
|
||||||
|
to the inside of your system, altering a power cable, or physically mounting
|
||||||
|
a device inside a computer system.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
When installing hardware inside a computer, make sure it's turned off and that
|
||||||
|
its power is disconnected. This is especially important when making changes to
|
||||||
|
power cables (as some LCD modules require).
|
||||||
|
</para>
|
||||||
|
</warning>
|
||||||
|
<sect3>
|
||||||
|
<title>Matrix Orbital LCD/VFD Module Installation</title>
|
||||||
|
<para>
|
||||||
|
The LCD and VFD modules from Matrix Orbital are relatively straightforward
|
||||||
|
to install. With a small, regular (flat-head) screwdriver, a spare floppy drive
|
||||||
|
power cable, and a bit of luck, installation will take less than an hour.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
These installation instructions assume that you are installing the module into
|
||||||
|
a PC or PC-style system (one with AT- or ATX-compliant power cabling) and that
|
||||||
|
you have some idea of where you intend to permanently mount the module. For
|
||||||
|
mounting ideas and tips, refer to the section "Mounting" below.
|
||||||
|
</para>
|
||||||
|
<Tip>
|
||||||
|
<Title>Before you start</title>
|
||||||
|
<para>
|
||||||
|
Your Matrix Orbital LCD or VFD module should be clearly marked with an
|
||||||
|
indication of the module's power requirements. It should be either a 5 volt
|
||||||
|
or 12 volt unit. You should have this information available before proceeding.
|
||||||
|
</para>
|
||||||
|
</tip>
|
||||||
|
<sect4>
|
||||||
|
<title>Power Cable Modification</title>
|
||||||
|
<para>
|
||||||
|
The first step in installing the module is making the necessary modifications
|
||||||
|
to a floppy drive power cable in order to provide power to the module. The
|
||||||
|
modifications must be made based on the module's power requirements -- either
|
||||||
|
5V or 12V -- depending on which module you purchased.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
A standard floppy drive power cable has a smaller connection than a "normal"
|
||||||
|
PC power connector. However, like a "normal" power connector, it has four
|
||||||
|
wires: one yellow, one red, and two black. The red wire provides +5V power, and
|
||||||
|
is "hot" or live when the system is powered up. The yellow wire provides +12V
|
||||||
|
power, and is also hot when the system is powered up. Both black wires are
|
||||||
|
ground.
|
||||||
|
[TODO: INCLUDE A FIGURE HERE SHOWING A "STANDARD" FLOPPY CONNECTOR]
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
One of the hot wires and one of the black wires will not be needed for your
|
||||||
|
module's power connection; they will be completely removed when the power cable
|
||||||
|
modification is complete.
|
||||||
|
</para>
|
||||||
|
<warning>
|
||||||
|
<para>
|
||||||
|
Do NOT make this modification to a power cable attached to a running
|
||||||
|
system! Electrocution resulting in personal injury and/or damage to the
|
||||||
|
system can result.
|
||||||
|
</para>
|
||||||
|
</warning>
|
||||||
|
<para>
|
||||||
|
Using a regular screwdriver, press down the small metal locking flap of one
|
||||||
|
of the two black wires on the small end of the cable, and pull the black wire
|
||||||
|
from the connector. Using a pair of needle-nose pliers, squeeze the other end
|
||||||
|
of the same black wire, and pull it out of the large end of the cable. This
|
||||||
|
black wire can be set aside; it will not be used for the module's power
|
||||||
|
connection. Either wire can be safely removed; you may safely remove either
|
||||||
|
wire.
|
||||||
|
[TODO: INCLUDE A FIGURE HERE SHOWING THIS PROCESS]
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Next, using the same procedure, remove the unneeded hot wire. If your module
|
||||||
|
is 5V, you do not need the yellow (+12V) wire. Conversely, if your module is
|
||||||
|
12V, you do not need the red (+5V) wire. The removed wire can be set aside;
|
||||||
|
it will not be used for the module's power connection.
|
||||||
|
[TODO: INCLUDE A FIGURE HERE]
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The floppy power connector should now have only two wires attached to it.
|
||||||
|
Leave the larger end alone from now on; these connections are correct (the
|
||||||
|
larger end connects to your system's power mains). Move the two remaining wires
|
||||||
|
to the outside connectors on the small end of the cable. Orientation does not
|
||||||
|
particularly matter here; the connector will fit on the module's receptacle
|
||||||
|
in either orientation.
|
||||||
|
[TODO: A FIGURE HERE]
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
You should now have a properly modified power connector. When physically
|
||||||
|
attaching this connector to the module, the black (ground) lead should be
|
||||||
|
connected to the pin labelled GND, while the colored (+5V/+12V) lead should
|
||||||
|
be connected to the pin labelled +5V/+12V.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Test the power connection before connecting the data line or mounting the
|
||||||
|
module. Connect the module to the power connector, and the connector to your
|
||||||
|
system's power mains. Turn the system on.
|
||||||
|
</para>
|
||||||
|
<caution>
|
||||||
|
<para>
|
||||||
|
If the module does not immediately display its initial BIOS screen and light
|
||||||
|
up its backlight (or light up the screen if a VFD module is being used),
|
||||||
|
<EMPHASIS>immediately</EMPHASIS> power down the system, disconnect the module
|
||||||
|
and connector, and double-check the modification before trying again. Do NOT
|
||||||
|
leave the system on if the module does not immediately respond; module or
|
||||||
|
system damage could result.
|
||||||
|
</para>
|
||||||
|
</caution>
|
||||||
|
<para>
|
||||||
|
When the LCD powers up and displays its initial BIOS screen, you've gotten the
|
||||||
|
power connection wired properly and can now properly mount the module and make
|
||||||
|
its final connections. Matrix Orbital Corporation sells a PC bay insert mount
|
||||||
|
for the 20x4 and 20x2 modules (LCDproc, however, only supports the 20x4 at
|
||||||
|
present). The inserts provide an easy means of mounting the LCD modules inside
|
||||||
|
a PC using one (for the 20x2) or two (for the 20x4) 5 1/4" bays.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
Describing how to physically mount the module in a PC case is beyond the
|
||||||
|
scope of this document; LCDproc's website contains more detailed mounting
|
||||||
|
information and examples.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</sect4>
|
||||||
|
<sect4>
|
||||||
|
<title>Serial Connection</title>
|
||||||
|
<para>
|
||||||
|
The LCD module uses a standard DB9 serial connector. You can attach the module
|
||||||
|
to your system using a direct cable to the motherboard, or by removing one of
|
||||||
|
your system's serial ports from the back of the case, then connecting it to a
|
||||||
|
standard serial cable to the module.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
While connecting the serial cable to the module, be sure to configure the
|
||||||
|
module's serial interface settings. Typically, setting the module to its fastest
|
||||||
|
setting (19,200 baud, 8-N-1) is recommended. The speed settings can
|
||||||
|
be configured from the config file <filename>/etc/LCDd.conf</filename>. If not specified in the config file,
|
||||||
|
the Matrix Orbital module driver in LCDproc default to use these settings.
|
||||||
|
</para>
|
||||||
|
</sect4>
|
||||||
|
</sect3>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="mtxorb-copy">
|
||||||
|
<title>Copyright</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This section was originally part of the lcdproc.sgml file by William W. Ferrell <email>wwf@splatwerks.org</email>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Slightly modified in order to include it in this document March 2002, Rene Wagner <email>reenoo@gmx.de</email>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
@@ -0,0 +1,187 @@
|
|||||||
|
<sect1 id="ppttrouble">
|
||||||
|
<title>Parallel Port Troubleshooting</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Unfortunately attaching an LCD module to a parallel port is not
|
||||||
|
trivial.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
In most cases it requires soldering abilities and basic knowledge
|
||||||
|
of electronics.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The following hints might be helpful:
|
||||||
|
</para>
|
||||||
|
<sect2 id="ppt-check-wiring">
|
||||||
|
<title>Check The Wiring</title>
|
||||||
|
<para>
|
||||||
|
Wiring errors can easily be made. If you are unexperienced
|
||||||
|
with the soldering iron better have someone solder it for
|
||||||
|
you. Display modules are sensitive to electro static
|
||||||
|
discharges, so touch an earthed surface (computer case,
|
||||||
|
water pipes...) before you handle these.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-power">
|
||||||
|
<title>Power Source Unregulated / Noisy</title>
|
||||||
|
<para>
|
||||||
|
Make sure your power supply delivers steady 5 Volts with-
|
||||||
|
out noise or interruptions. The bare wall plug in trans-
|
||||||
|
former is not suitable, though you can make it stabilized
|
||||||
|
by adding an 7805 and a few capacitors.
|
||||||
|
Some noise induced in the supply lines my be tricky to
|
||||||
|
track, even if you have an oscilloscope.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-GND-lift">
|
||||||
|
<title>Ground Lift</title>
|
||||||
|
<para>
|
||||||
|
The power supply wires and especially the GND wires should
|
||||||
|
be a little thicker than the other wires. If GND is not
|
||||||
|
thick enough (or not existent, see 1) the resistance of the
|
||||||
|
wire may cause differing GND potentials in the circuit.
|
||||||
|
This may lead to strange display behaviour. It may also be
|
||||||
|
wise to solder a 100nF capacitor directly to the GND and
|
||||||
|
VDD pins of the display.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-latchup">
|
||||||
|
<title>Latchup</title>
|
||||||
|
<para>
|
||||||
|
Never let the supply voltage get much below the io signal
|
||||||
|
voltage. It may lead to a latchup condition which will
|
||||||
|
destroy the controller chip on the display.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-contrast">
|
||||||
|
<title>Contrast</title>
|
||||||
|
<para>
|
||||||
|
If you don't see anything on your display it may be that
|
||||||
|
your contrast voltage is set wrong. Turn your contrast
|
||||||
|
potentiometer all the way to the end connected to GND.
|
||||||
|
Contrast is highest then.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<title>Beware</title>
|
||||||
|
<para>
|
||||||
|
The module you got so ultra cheap may be an
|
||||||
|
enhanced temperature model which needs a negative
|
||||||
|
contrast voltage for sufficient contrast - see chapter
|
||||||
|
99 on how to make negative voltage.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-voltage">
|
||||||
|
<title>Parallel Port Voltage</title>
|
||||||
|
<para>
|
||||||
|
Many modern mainboards and especially notebooks will not
|
||||||
|
nearly output 5V for a logic H as the older parallel ports
|
||||||
|
did, because the operating voltage of computers is lower than
|
||||||
|
5V these days. I have measured voltages between 2.5V and 4V
|
||||||
|
for logic H, which is barely within specification of the
|
||||||
|
HD44780. If you account RCL of your cable, this may not be
|
||||||
|
enough and can cause unreliable operation.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-signal-rise-timing">
|
||||||
|
<title>Enable Signal Rise Time</title>
|
||||||
|
<para>
|
||||||
|
If you ever read the HD44780 datasheet you will notice that
|
||||||
|
somewhere in the 'signal timing' table is written: 'Enable
|
||||||
|
Signal Rise Time max. 20nS'. That means the Voltage on the
|
||||||
|
HD44780 pin called 'Enable' has to rise from 0 Volts to 5
|
||||||
|
Volts within 20 Nanoseconds and the other way round. They
|
||||||
|
should better print that in big fat red letters, because
|
||||||
|
most HD44780s are really picky about the enable signal rise
|
||||||
|
time.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
That is a Problem: If you count together the bad driving
|
||||||
|
characteristics of the parallel port combined with the
|
||||||
|
capacitance of flat ribbon cable you may easily get an
|
||||||
|
order of magnitude slower rise time.
|
||||||
|
Therefore you should only use really short cable ( shorter
|
||||||
|
than 50cm) for connecting the display to the parallel port.
|
||||||
|
It may also be useful to use pull-up resistors on the display
|
||||||
|
module or a schmitt-trigger.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The rise time of a digital output can (usually) not be
|
||||||
|
altered by Software.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-emi">
|
||||||
|
<title>EMI</title>
|
||||||
|
<para>
|
||||||
|
The cable from the parallel port to the display may
|
||||||
|
be sensible to electromagnetic interference and may emit
|
||||||
|
electromagnetic radiation. If you place your cellphone near
|
||||||
|
the cable, you may get unexpected display readings, on
|
||||||
|
the other hand your house neighbour may not be able to listen
|
||||||
|
to his/her favourite radio station any more - so better use
|
||||||
|
shielded cable and put the display in a metallic case, perhaps
|
||||||
|
a computer case.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-black-lines">
|
||||||
|
<title>One or Two Black Lines</title>
|
||||||
|
<para>
|
||||||
|
If you see one or two black lines on the display it means
|
||||||
|
nothing more than that the display is powered and contrast
|
||||||
|
voltage is present. If one or two black lines appear the
|
||||||
|
controller has not been reset properly by the on chip power
|
||||||
|
on reset generator. No need to worry - it will be reset by
|
||||||
|
the <application>LCDd</application> software. But if the
|
||||||
|
black line will not disappear
|
||||||
|
although the wiring is working, the controller on the display
|
||||||
|
may be defective.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-too-fast">
|
||||||
|
<title>Software Too Fast</title>
|
||||||
|
<para>
|
||||||
|
If you have a super GHz computer it may happen that the signal
|
||||||
|
timing generated by <application>LCDd</application> is too fast.
|
||||||
|
Adjust DELAYMULT in the
|
||||||
|
source file to a bigger value. Parallel port wirings usually
|
||||||
|
don't permit to read back the busy flag of the controller chip,
|
||||||
|
so timing must be adjust so that the controller never is busy.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-backlight">
|
||||||
|
<title>LED Backlight</title>
|
||||||
|
<para>
|
||||||
|
Check whether you need a resistor for your LED Backlight and
|
||||||
|
which value it should have. If you forget the required resistor
|
||||||
|
the backlighting LEDs might become hot and draw excessive
|
||||||
|
current.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-hd44780-compatible">
|
||||||
|
<title>HD44780 Compatible</title>
|
||||||
|
<para>
|
||||||
|
The original HD44780 controller that we advertise to support
|
||||||
|
has become the industry standard for alphanumeric character
|
||||||
|
displays. The original HD44780 is out of production. It has
|
||||||
|
many successors from many manufactures, which sometimes won't
|
||||||
|
tell you that their chips are 'compatible'.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
To name a few: KS 0066, KS 0070, KS 0076, LC 7985, NT 3881,
|
||||||
|
SED 1278, ST 7066 ...
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="ppt-misc">
|
||||||
|
<title>Miscellania</title>
|
||||||
|
<para>
|
||||||
|
This text has originally been taken from a <ulink url="http://lists.omnipotent.net/pipermail/lcdproc/2002-May/005832.html">message</ulink> by
|
||||||
|
Robin Adams <email>robin@adams-online.de</email>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Converted to docbook and slightly modified May 2002, Rene Wagner <email>reenoo@gmx.de</email>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
@@ -0,0 +1,220 @@
|
|||||||
|
<chapter id="how-to-obtain">
|
||||||
|
<title>How to Obtain LCDproc</title>
|
||||||
|
|
||||||
|
<sect1 id="versioning">
|
||||||
|
<title>Versioning</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
At the time of writing there were four versions of LCDproc floating around on the
|
||||||
|
Internet.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<variablelist>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>LCDproc 0.4.1</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
LCDproc 0.4.1 was the last "stable" release of LCDproc. It still uses the old
|
||||||
|
command line configuration.
|
||||||
|
</para>
|
||||||
|
<warning>
|
||||||
|
<para>
|
||||||
|
There are known security problems with LCDproc 0.4.1. A remote exploit is possible.
|
||||||
|
An attacker can make use of some buffer-overflows in the client communication
|
||||||
|
code of LCDd, in order to get root access to your system.
|
||||||
|
Therefore running LCDproc 0.4.1 is NOT RECOMMENDED!
|
||||||
|
</para>
|
||||||
|
</warning>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>LCDproc 0.4.2</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
LCDproc 0.4.2 was meant to be the next stable release of LCDproc. As 0.4.1
|
||||||
|
it uses the old command line configuration.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The known issues about 0.4.1 had been fixed. Unfortunately the guy who had the last pending
|
||||||
|
patches on his box kind of "vanished" from the LCDproc mailing list.
|
||||||
|
Of course you can get 0.4.2 from CVS. BUT its current state is unknown.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>LCDproc 0.4.3</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
LCDproc 0.4.3 is the current stable release of LCDproc. It no longer uses the old
|
||||||
|
command line configuration, but introduces the configuration file <filename>/etc/LCDd.conf</filename>.
|
||||||
|
As well the driver API has slightly changed, which should not
|
||||||
|
make older drivers incompatible, but might cause some trouble. As well the way
|
||||||
|
<application>LCDd</application> reports messages (including error messages) has changed.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
Even though LCDproc 0.4.3 is the most stable version we can offer, it is still not perfect.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>LCDproc 0.4.4</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
LCDproc 0.4.4 will be the next stable release of LCDproc.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
The 0.4.x branch will only be slightly updated. E.g. we plan better support
|
||||||
|
of lcdproc (the client) for *BSD. Yet, the active development will move to
|
||||||
|
0.5 now.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
As 0.5 will not be stable in the near future, we may also work on porting drivers
|
||||||
|
from 0.4.1 to 0.4.4 on demand. We do not have all the hardware LCDd supports. So, we
|
||||||
|
only work on drivers that can be tested by YOU.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
As well, the development and inclusion of new drivers is possible.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term>LCDproc 0.5</term>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
LCDproc 0.5 is the developement version of LCDproc. Everything is possible ;) Drivers can already be
|
||||||
|
loaded at runtime. We will also work on client supplied menus and other nifty stuff.
|
||||||
|
</para>
|
||||||
|
<warning>
|
||||||
|
<para>
|
||||||
|
From time to time LCDproc 0.5 might not even compile due to drastic changes.
|
||||||
|
You have been warned!
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Furthermore older drivers will NOT work with LCDproc 0.5 AT ALL!
|
||||||
|
Feel free to port a driver that has not been ported to 0.5 yet ;)
|
||||||
|
</para>
|
||||||
|
</warning>
|
||||||
|
</listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
|
</variablelist>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="tar">
|
||||||
|
<title>Download Last Day's CVS Version of LCDproc as a Tarball</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
There are nightly distributions of the CVS branches of LCDproc. You can download them from
|
||||||
|
<ulink url="http://lcdproc.sourceforge.net/nightly/">http://lcdproc.sourceforge.net/nightly/</ulink>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To extract the files run either
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>tar xvfz lcdproc-CVS-*.tar.gz</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
or
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>bunzip2 -c lcdproc-CVS-*.tar.bz2 | tar xv</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="cvs">
|
||||||
|
<title>Download The Latest Version of LCDproc from CVS</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Of course you can download the latest stuff from CVS via anonymous login.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Create a "cvs" directory somewhere on your machine (not really neccessary but useful):
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>mkdir ~/cvs</userinput>
|
||||||
|
<prompt>$</prompt> <userinput>cd ~/cvs</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Login to CVS:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>cvs -d:pserver:anonymous@cvs.lcdproc.sourceforge.net:/cvsroot/lcdproc login</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
(Hit enter when prompted for a password.)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Get the files from CVS:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>cvs -d:pserver:anonymous@cvs.lcdproc.sourceforge.net:/cvsroot/lcdproc checkout -r stable-0-4-3 lcdproc</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Once you've done that and want to update the downloaded files to the latest stuff
|
||||||
|
you can use the "update" command of CVS (Make sure you have logged in to CVS first.):
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>cvs -d:pserver:anonymous@cvs.lcdproc.sourceforge.net:/cvsroot/lcdproc update -r stable-0-4-3 lcdproc</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Now that you have downloaded the files you can prepare them for compiling, but first
|
||||||
|
you should (you don't have to) copy them to another place on your machine:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>mkdir ~/lcdproc-cvs</userinput>
|
||||||
|
<prompt>$</prompt> <userinput>cp -f -R ~/cvs/lcdproc ~/lcdproc-cvs/`date +%Y%m%d`</userinput>
|
||||||
|
<prompt>$</prompt> <userinput>cd ~/lcdproc-cvs/`date +%Y%m%d`</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="apt-get">
|
||||||
|
<title>apt-get</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Debian GNU/Linux users can get the debian package of LCDproc, which is in the unstable and testing distributions.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Provided apt-get is configured properly. You should be able to install the package running:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>su</userinput>
|
||||||
|
<prompt>Password:</prompt> <userinput>top secret</userinput>
|
||||||
|
<prompt>#</prompt> <userinput>apt-get install lcdproc</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1,188 @@
|
|||||||
|
<chapter id="installation">
|
||||||
|
<title>Installation</title>
|
||||||
|
|
||||||
|
<sect1 id="build-and-install">
|
||||||
|
<title>Build LCDproc</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Now that you have downloaded the LCDproc distribution you can
|
||||||
|
start building it.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
If you have installed the debian package with apt-get (or another
|
||||||
|
debian tool), you can skip this this chapter.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you're building this version from CVS, you'll need
|
||||||
|
autoconf, automake, aclocal & autoheader installed.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you have autoconf and friends, run:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>sh autogen.sh</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This produces the configure script and supporting files. It has allready
|
||||||
|
been run if you using the tarball distribution.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Once the above command has run, the rest is pretty standard:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>./configure --help</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Read about the options, figure out what to use.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>./configure --prefix=/usr/local --enable-drivers=ncurses,cfontz</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Be sure to replace /usr/local with the prefixdir you want (e.g. /usr
|
||||||
|
for RedHat) and ncurses,cfontz with comma-separated list
|
||||||
|
of drivers you want.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>make</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Congratulations: You have just compiled your version of LCDproc ;)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="direct-install">
|
||||||
|
<title>Install LCDproc Directly From The Sources </title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you want to install LCDproc more or less permanently you
|
||||||
|
can run:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>su</userinput>
|
||||||
|
<prompt>Password:</prompt> <userinput>top secret</userinput>
|
||||||
|
<prompt>#</prompt> <userinput>make install</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
make install is absolutely OPTIONAL
|
||||||
|
You can also run LCDproc directly from the source directory. See
|
||||||
|
<link linkend="lcdd-commandline">below</link> for details.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="package-install">
|
||||||
|
<title>Generate And Install Packages of LCDproc</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As an alternative (which is actually better ;) to installing
|
||||||
|
directly from the sources you can generate packages using the
|
||||||
|
packaging tool EPM.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
First of all you may need to download EPM from
|
||||||
|
<ulink url="http://www.easysw.com/epm/">http://www.easysw.com/epm/</ulink>
|
||||||
|
and install it according to the instructions that are included
|
||||||
|
in its source distribution.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Debian users (who do not want to download the official debs via apt-get)
|
||||||
|
can of course use the debian package of epm:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>#</prompt> <userinput>apt-get install epm</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
There are of course other and maybe better ways to generate
|
||||||
|
packages for your system. The reason for us to choose EPM
|
||||||
|
was that it provide the developers with a tool that makes it
|
||||||
|
possible to write one list file for all platforms defining
|
||||||
|
what the resulting package is meant to look like. This way we
|
||||||
|
do not have to learn all the package managing tools of the
|
||||||
|
different platforms that are supported by LCDproc.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
To generate an LCDproc package follow these instructions:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<tip>
|
||||||
|
<para>
|
||||||
|
It is of certain importance that you have run ./configure with
|
||||||
|
the correct pathname settings for your system. Otherwise the
|
||||||
|
resulting package will install the files in the wrong directories.
|
||||||
|
</para>
|
||||||
|
</tip>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>epm -v -f native LCDproc</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
Generating an RPM package as a non-root user will fail, RPM wants
|
||||||
|
to generate the files from the tree under <filename>/usr/src/RPM</filename>,
|
||||||
|
which you do not have write access to as a non-root user.
|
||||||
|
If you want to generate the package as a non-root user anyway, you may
|
||||||
|
want to follow these instructions.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
A workaround for the described problem is creating a file named
|
||||||
|
<filename>~/.rpmmacros</filename>
|
||||||
|
which contains:
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<![CDATA[
|
||||||
|
%_topdir ~/rpm
|
||||||
|
]]>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
<important>
|
||||||
|
<para>
|
||||||
|
<filename>~/rpm</filename> must contain the same tree usually found under
|
||||||
|
<filename>/usr/src/RPM</filename>
|
||||||
|
</para>
|
||||||
|
</important>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Unfortunately epm does not read <filename>~/.rpmmacros</filename>
|
||||||
|
and of course returns warnings.
|
||||||
|
Don't worry! That's OK ;)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In order to actually install the generated package follow the instructions
|
||||||
|
in your system's manual.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
<chapter id="introduction">
|
||||||
|
<title>Introduction</title>
|
||||||
|
|
||||||
|
<sect1 id="what-is-this">
|
||||||
|
<title>About this Document</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This document was meant as a tutorial for LCDproc users. It tries to introduce
|
||||||
|
you into the world of LCDproc giving you an overview of the project.
|
||||||
|
After reading this document you will be able to set up your own LCDproc'ed system.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note><para>
|
||||||
|
Please note that this document is still "under construction". We hope to finish it
|
||||||
|
until the final release of LCDproc, which will probably take place in May or June 2002.
|
||||||
|
If you run into any trouble feel free to write to the LCDproc mailing list.
|
||||||
|
See <ulink url="http://lcdproc.omnipotent.net/mail.php3">http://lcdproc.omnipotent.net/mail.php3</ulink>
|
||||||
|
for details on how to subscribe to the list.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Therefore you might want to have a look at <ulink url="http://lcdproc.sourceforge.net/docs/">http://lcdproc.sourceforge.net/docs/</ulink>,
|
||||||
|
to get the latest version of this document (, unless you want to generate it yourself from the
|
||||||
|
docbook files in the CVS).
|
||||||
|
</para></note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
This document was written for LCDproc 0.4.3. At the time of writing there had already
|
||||||
|
been the "LCDproc User's Guide" written by William W. Ferrel in 1999. His version covered
|
||||||
|
an early version of LCDproc and therefore concentrated on Matrix Orbital displays.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
William's document was "recycled" for the description of the Matrix Orbital display driver
|
||||||
|
and for other parts of this document.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
In several other places e-mails and other documents have been included in this
|
||||||
|
document. The authors of those are listed below every such document.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="what-is-lcdproc">
|
||||||
|
<title>What is LCDproc?</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
LCDproc is a client/server suite including drivers for all kinds of
|
||||||
|
nifty LCD displays.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
The server 'LCDd' makes it possible to display text and other data on
|
||||||
|
an LCD display. As well LCDd can handle certain input devices.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Support for devices is added by drivers. We distinguish between output
|
||||||
|
and input drivers.
|
||||||
|
LCDd currently supports only one single output driver, which may at the
|
||||||
|
same time handle input. Nevertheless several input (only) drivers are
|
||||||
|
supported.
|
||||||
|
</para>
|
||||||
|
<para>Currently there are drivers for several serial devices:
|
||||||
|
Matrix Orbital, Crystal Fontz, Bayrad, LB216, LCDM001 (kernelconcepts.de),
|
||||||
|
Wirz-SLI and PIC-an-LCD; and some devices connected to the LPT port:
|
||||||
|
HD44780, STV5730, T6963, SED1520 and SED1330.
|
||||||
|
There are input (only) drivers for LIRC and joysticks.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Clients can connect to LCDd through common sockets.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Various clients are available. The "main" client
|
||||||
|
<application>lcdproc</application>, which is shipped with the LCDproc
|
||||||
|
distribution, can display things like CPU load, system load, memory
|
||||||
|
usage, uptime, and a lot more.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="lcdd">
|
||||||
|
<title>The LCDproc Server - LCDd</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>LCDd</application> is one of those well known *NIX daemons.
|
||||||
|
BUT it's not just *one* daemon. It's the one that is supposed to drive
|
||||||
|
your LCD ;)
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>LCDd</application> can either be run from the command line
|
||||||
|
or automatically by the init scripts shipped with the distribution.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As other daemons, <application>LCDd</application> has to be configured.
|
||||||
|
In this respect a lot has changed since LCDproc 0.4.1. While LCDd retrieved
|
||||||
|
all its configuration settings from the command line in 0.4.1, it now has a
|
||||||
|
configuration file, which is normally <filename>/etc/LCDd.conf</filename>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="lcdproc">
|
||||||
|
<title>The LCDproc "Main" Client - lcdproc</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
While <application>LCDd</application> only offer the functionality of
|
||||||
|
displaying text on a display, <application>lcdproc</application> actually
|
||||||
|
retrieves data worth displaying.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>lcdproc</application> gets its information from the
|
||||||
|
<filename>/proc</filename> filesystem.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<application>lcdproc</application> can connect to an LCDproc
|
||||||
|
server either on the local system or on a remote system as long as it
|
||||||
|
is reachable. It extracts the same statistics regardless of where it
|
||||||
|
sends this information. The statistics it gathers include CPU
|
||||||
|
utilization, memory utilization, disk utilization, network utilization,
|
||||||
|
system uptime, time, and date, and so on. It displays this information
|
||||||
|
in assorted ways, and can be tailored to taste.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="other-clients">
|
||||||
|
<title>Other LCDproc Clients</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
As it is rather simple to write an LCDproc client, you can find various
|
||||||
|
clients on the Internet.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Unfortunately we cannot provide a list of LCDproc clients (yet). So, have
|
||||||
|
fun searching <ulink url="http://www.google.com">google</ulink> or
|
||||||
|
<ulink url="http://freshmeat.net">freshmeat</ulink>. Simply type 'lcdproc'
|
||||||
|
for the keyword.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
</chapter>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
|
||||||
|
|
||||||
|
<!ENTITY bookinfo SYSTEM "bookinfo.docbook">
|
||||||
|
<!ENTITY introduction SYSTEM "introduction.docbook">
|
||||||
|
<!ENTITY how-to-obtain SYSTEM "how-to-obtain.docbook">
|
||||||
|
<!ENTITY installation SYSTEM "installation.docbook">
|
||||||
|
<!ENTITY configuration SYSTEM "configuration.docbook">
|
||||||
|
<!ENTITY drivers SYSTEM "drivers.docbook">
|
||||||
|
<!ENTITY running SYSTEM "running.docbook">
|
||||||
|
<!ENTITY contact SYSTEM "contact.docbook">
|
||||||
|
<!ENTITY license SYSTEM "license.docbook">
|
||||||
|
|
||||||
|
<!ENTITY hd44780 SYSTEM "drivers/hd44780.docbook">
|
||||||
|
<!ENTITY ppttrouble SYSTEM "drivers/ppttrouble.docbook">
|
||||||
|
<!ENTITY mtxorb SYSTEM "drivers/mtxorb.docbook">
|
||||||
|
<!ENTITY lircin SYSTEM "drivers/lircin.docbook">
|
||||||
|
]>
|
||||||
|
|
||||||
|
<book id="lcdproc-user" lang="en">
|
||||||
|
|
||||||
|
&bookinfo;
|
||||||
|
|
||||||
|
&introduction;
|
||||||
|
&how-to-obtain;
|
||||||
|
&installation;
|
||||||
|
&configuration;
|
||||||
|
&drivers;
|
||||||
|
&running;
|
||||||
|
&contact;
|
||||||
|
&license;
|
||||||
|
|
||||||
|
</book>
|
||||||
@@ -0,0 +1,464 @@
|
|||||||
|
<appendix id="gfdl">
|
||||||
|
<title>GNU Free Documentation License</title>
|
||||||
|
<!-- - GNU Project - Free Software Foundation (FSF) -->
|
||||||
|
<!-- LINK REV="made" HREF="mailto:webmasters@gnu.org" -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- sect1>
|
||||||
|
<title>GNU Free Documentation License</title -->
|
||||||
|
|
||||||
|
<para>Version 1.1, March 2000</para>
|
||||||
|
|
||||||
|
<blockquote>
|
||||||
|
<para>Copyright (C) 2000 Free Software Foundation, Inc.
|
||||||
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.</para>
|
||||||
|
</blockquote>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-0">
|
||||||
|
<title>PREAMBLE</title>
|
||||||
|
|
||||||
|
<para>The purpose of this License is to make a manual, textbook,
|
||||||
|
or other written document "free" in the sense of freedom: to
|
||||||
|
assure everyone the effective freedom to copy and redistribute it,
|
||||||
|
with or without modifying it, either commercially or
|
||||||
|
noncommercially. Secondarily, this License preserves for the
|
||||||
|
author and publisher a way to get credit for their work, while not
|
||||||
|
being considered responsible for modifications made by
|
||||||
|
others.</para>
|
||||||
|
|
||||||
|
<para>This License is a kind of "copyleft", which means that
|
||||||
|
derivative works of the document must themselves be free in the
|
||||||
|
same sense. It complements the GNU General Public License, which
|
||||||
|
is a copyleft license designed for free software.</para>
|
||||||
|
|
||||||
|
<para>We have designed this License in order to use it for manuals
|
||||||
|
for free software, because free software needs free documentation:
|
||||||
|
a free program should come with manuals providing the same
|
||||||
|
freedoms that the software does. But this License is not limited
|
||||||
|
to software manuals; it can be used for any textual work,
|
||||||
|
regardless of subject matter or whether it is published as a
|
||||||
|
printed book. We recommend this License principally for works
|
||||||
|
whose purpose is instruction or reference.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-1">
|
||||||
|
<title>APPLICABILITY AND DEFINITIONS</title>
|
||||||
|
|
||||||
|
<para>This License applies to any manual or other work that
|
||||||
|
contains a notice placed by the copyright holder saying it can be
|
||||||
|
distributed under the terms of this License. The "Document",
|
||||||
|
below, refers to any such manual or work. Any member of the
|
||||||
|
public is a licensee, and is addressed as "you".</para>
|
||||||
|
|
||||||
|
<para>A "Modified Version" of the Document means any work
|
||||||
|
containing the Document or a portion of it, either copied
|
||||||
|
verbatim, or with modifications and/or translated into another
|
||||||
|
language.</para>
|
||||||
|
|
||||||
|
<para>A "Secondary Section" is a named appendix or a front-matter
|
||||||
|
section of the Document that deals exclusively with the
|
||||||
|
relationship of the publishers or authors of the Document to the
|
||||||
|
Document's overall subject (or to related matters) and contains
|
||||||
|
nothing that could fall directly within that overall subject.
|
||||||
|
(For example, if the Document is in part a textbook of
|
||||||
|
mathematics, a Secondary Section may not explain any mathematics.)
|
||||||
|
The relationship could be a matter of historical connection with
|
||||||
|
the subject or with related matters, or of legal, commercial,
|
||||||
|
philosophical, ethical or political position regarding
|
||||||
|
them.</para>
|
||||||
|
|
||||||
|
<para>The "Invariant Sections" are certain Secondary Sections
|
||||||
|
whose titles are designated, as being those of Invariant Sections,
|
||||||
|
in the notice that says that the Document is released under this
|
||||||
|
License.</para>
|
||||||
|
|
||||||
|
<para>The "Cover Texts" are certain short passages of text that
|
||||||
|
are listed, as Front-Cover Texts or Back-Cover Texts, in the
|
||||||
|
notice that says that the Document is released under this
|
||||||
|
License.</para>
|
||||||
|
|
||||||
|
<para>A "Transparent" copy of the Document means a
|
||||||
|
machine-readable copy, represented in a format whose specification
|
||||||
|
is available to the general public, whose contents can be viewed
|
||||||
|
and edited directly and straightforwardly with generic text
|
||||||
|
editors or (for images composed of pixels) generic paint programs
|
||||||
|
or (for drawings) some widely available drawing editor, and that
|
||||||
|
is suitable for input to text formatters or for automatic
|
||||||
|
translation to a variety of formats suitable for input to text
|
||||||
|
formatters. A copy made in an otherwise Transparent file format
|
||||||
|
whose markup has been designed to thwart or discourage subsequent
|
||||||
|
modification by readers is not Transparent. A copy that is not
|
||||||
|
"Transparent" is called "Opaque".</para>
|
||||||
|
|
||||||
|
<para>Examples of suitable formats for Transparent copies include
|
||||||
|
plain ASCII without markup, Texinfo input format, LaTeX input
|
||||||
|
format, SGML or XML using a publicly available DTD, and
|
||||||
|
standard-conforming simple HTML designed for human modification.
|
||||||
|
Opaque formats include PostScript, PDF, proprietary formats that
|
||||||
|
can be read and edited only by proprietary word processors, SGML
|
||||||
|
or XML for which the DTD and/or processing tools are not generally
|
||||||
|
available, and the machine-generated HTML produced by some word
|
||||||
|
processors for output purposes only.</para>
|
||||||
|
|
||||||
|
<para>The "Title Page" means, for a printed book, the title page
|
||||||
|
itself, plus such following pages as are needed to hold, legibly,
|
||||||
|
the material this License requires to appear in the title page.
|
||||||
|
For works in formats which do not have any title page as such,
|
||||||
|
"Title Page" means the text near the most prominent appearance of
|
||||||
|
the work's title, preceding the beginning of the body of the
|
||||||
|
text.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-2">
|
||||||
|
<title>VERBATIM COPYING</title>
|
||||||
|
|
||||||
|
<para>You may copy and distribute the Document in any medium,
|
||||||
|
either commercially or noncommercially, provided that this
|
||||||
|
License, the copyright notices, and the license notice saying this
|
||||||
|
License applies to the Document are reproduced in all copies, and
|
||||||
|
that you add no other conditions whatsoever to those of this
|
||||||
|
License. You may not use technical measures to obstruct or
|
||||||
|
control the reading or further copying of the copies you make or
|
||||||
|
distribute. However, you may accept compensation in exchange for
|
||||||
|
copies. If you distribute a large enough number of copies you
|
||||||
|
must also follow the conditions in section 3.</para>
|
||||||
|
|
||||||
|
<para>You may also lend copies, under the same conditions stated
|
||||||
|
above, and you may publicly display copies.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-3">
|
||||||
|
<title>COPYING IN QUANTITY</title>
|
||||||
|
|
||||||
|
<para>If you publish printed copies of the Document numbering more
|
||||||
|
than 100, and the Document's license notice requires Cover Texts,
|
||||||
|
you must enclose the copies in covers that carry, clearly and
|
||||||
|
legibly, all these Cover Texts: Front-Cover Texts on the front
|
||||||
|
cover, and Back-Cover Texts on the back cover. Both covers must
|
||||||
|
also clearly and legibly identify you as the publisher of these
|
||||||
|
copies. The front cover must present the full title with all
|
||||||
|
words of the title equally prominent and visible. You may add
|
||||||
|
other material on the covers in addition. Copying with changes
|
||||||
|
limited to the covers, as long as they preserve the title of the
|
||||||
|
Document and satisfy these conditions, can be treated as verbatim
|
||||||
|
copying in other respects.</para>
|
||||||
|
|
||||||
|
<para>If the required texts for either cover are too voluminous to
|
||||||
|
fit legibly, you should put the first ones listed (as many as fit
|
||||||
|
reasonably) on the actual cover, and continue the rest onto
|
||||||
|
adjacent pages.</para>
|
||||||
|
|
||||||
|
<para>If you publish or distribute Opaque copies of the Document
|
||||||
|
numbering more than 100, you must either include a
|
||||||
|
machine-readable Transparent copy along with each Opaque copy, or
|
||||||
|
state in or with each Opaque copy a publicly-accessible
|
||||||
|
computer-network location containing a complete Transparent copy
|
||||||
|
of the Document, free of added material, which the general
|
||||||
|
network-using public has access to download anonymously at no
|
||||||
|
charge using public-standard network protocols. If you use the
|
||||||
|
latter option, you must take reasonably prudent steps, when you
|
||||||
|
begin distribution of Opaque copies in quantity, to ensure that
|
||||||
|
this Transparent copy will remain thus accessible at the stated
|
||||||
|
location until at least one year after the last time you
|
||||||
|
distribute an Opaque copy (directly or through your agents or
|
||||||
|
retailers) of that edition to the public.</para>
|
||||||
|
|
||||||
|
<para>It is requested, but not required, that you contact the
|
||||||
|
authors of the Document well before redistributing any large
|
||||||
|
number of copies, to give them a chance to provide you with an
|
||||||
|
updated version of the Document.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-4">
|
||||||
|
<title>MODIFICATIONS</title>
|
||||||
|
|
||||||
|
<para>You may copy and distribute a Modified Version of the
|
||||||
|
Document under the conditions of sections 2 and 3 above, provided
|
||||||
|
that you release the Modified Version under precisely this
|
||||||
|
License, with the Modified Version filling the role of the
|
||||||
|
Document, thus licensing distribution and modification of the
|
||||||
|
Modified Version to whoever possesses a copy of it. In addition,
|
||||||
|
you must do these things in the Modified Version:</para>
|
||||||
|
|
||||||
|
<orderedlist numeration="upperalpha">
|
||||||
|
<listitem><para>Use in the Title Page
|
||||||
|
(and on the covers, if any) a title distinct from that of the
|
||||||
|
Document, and from those of previous versions (which should, if
|
||||||
|
there were any, be listed in the History section of the
|
||||||
|
Document). You may use the same title as a previous version if
|
||||||
|
the original publisher of that version gives permission.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>List on the Title Page,
|
||||||
|
as authors, one or more persons or entities responsible for
|
||||||
|
authorship of the modifications in the Modified Version,
|
||||||
|
together with at least five of the principal authors of the
|
||||||
|
Document (all of its principal authors, if it has less than
|
||||||
|
five).</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>State on the Title page
|
||||||
|
the name of the publisher of the Modified Version, as the
|
||||||
|
publisher.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Preserve all the
|
||||||
|
copyright notices of the Document.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Add an appropriate
|
||||||
|
copyright notice for your modifications adjacent to the other
|
||||||
|
copyright notices.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Include, immediately
|
||||||
|
after the copyright notices, a license notice giving the public
|
||||||
|
permission to use the Modified Version under the terms of this
|
||||||
|
License, in the form shown in the Addendum below.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Preserve in that license
|
||||||
|
notice the full lists of Invariant Sections and required Cover
|
||||||
|
Texts given in the Document's license notice.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Include an unaltered
|
||||||
|
copy of this License.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Preserve the section
|
||||||
|
entitled "History", and its title, and add to it an item stating
|
||||||
|
at least the title, year, new authors, and publisher of the
|
||||||
|
Modified Version as given on the Title Page. If there is no
|
||||||
|
section entitled "History" in the Document, create one stating
|
||||||
|
the title, year, authors, and publisher of the Document as given
|
||||||
|
on its Title Page, then add an item describing the Modified
|
||||||
|
Version as stated in the previous sentence.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Preserve the network
|
||||||
|
location, if any, given in the Document for public access to a
|
||||||
|
Transparent copy of the Document, and likewise the network
|
||||||
|
locations given in the Document for previous versions it was
|
||||||
|
based on. These may be placed in the "History" section. You
|
||||||
|
may omit a network location for a work that was published at
|
||||||
|
least four years before the Document itself, or if the original
|
||||||
|
publisher of the version it refers to gives permission.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>In any section entitled
|
||||||
|
"Acknowledgements" or "Dedications", preserve the section's
|
||||||
|
title, and preserve in the section all the substance and tone of
|
||||||
|
each of the contributor acknowledgements and/or dedications
|
||||||
|
given therein.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Preserve all the
|
||||||
|
Invariant Sections of the Document, unaltered in their text and
|
||||||
|
in their titles. Section numbers or the equivalent are not
|
||||||
|
considered part of the section titles.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Delete any section
|
||||||
|
entitled "Endorsements". Such a section may not be included in
|
||||||
|
the Modified Version.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem><para>Do not retitle any
|
||||||
|
existing section as "Endorsements" or to conflict in title with
|
||||||
|
any Invariant Section.</para>
|
||||||
|
</listitem>
|
||||||
|
</orderedlist>
|
||||||
|
<para>If the Modified Version includes new front-matter sections
|
||||||
|
or appendices that qualify as Secondary Sections and contain no
|
||||||
|
material copied from the Document, you may at your option
|
||||||
|
designate some or all of these sections as invariant. To do this,
|
||||||
|
add their titles to the list of Invariant Sections in the Modified
|
||||||
|
Version's license notice. These titles must be distinct from any
|
||||||
|
other section titles.</para>
|
||||||
|
|
||||||
|
<para>You may add a section entitled "Endorsements", provided it
|
||||||
|
contains nothing but endorsements of your Modified Version by
|
||||||
|
various parties--for example, statements of peer review or that
|
||||||
|
the text has been approved by an organization as the authoritative
|
||||||
|
definition of a standard.</para>
|
||||||
|
|
||||||
|
<para>You may add a passage of up to five words as a Front-Cover
|
||||||
|
Text, and a passage of up to 25 words as a Back-Cover Text, to the
|
||||||
|
end of the list of Cover Texts in the Modified Version. Only one
|
||||||
|
passage of Front-Cover Text and one of Back-Cover Text may be
|
||||||
|
added by (or through arrangements made by) any one entity. If the
|
||||||
|
Document already includes a cover text for the same cover,
|
||||||
|
previously added by you or by arrangement made by the same entity
|
||||||
|
you are acting on behalf of, you may not add another; but you may
|
||||||
|
replace the old one, on explicit permission from the previous
|
||||||
|
publisher that added the old one.</para>
|
||||||
|
|
||||||
|
<para>The author(s) and publisher(s) of the Document do not by
|
||||||
|
this License give permission to use their names for publicity for
|
||||||
|
or to assert or imply endorsement of any Modified Version.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-5">
|
||||||
|
<title>COMBINING DOCUMENTS</title>
|
||||||
|
|
||||||
|
<para>You may combine the Document with other documents released
|
||||||
|
under this License, under the terms defined in section 4 above for
|
||||||
|
modified versions, provided that you include in the combination
|
||||||
|
all of the Invariant Sections of all of the original documents,
|
||||||
|
unmodified, and list them all as Invariant Sections of your
|
||||||
|
combined work in its license notice.</para>
|
||||||
|
|
||||||
|
<para>The combined work need only contain one copy of this
|
||||||
|
License, and multiple identical Invariant Sections may be replaced
|
||||||
|
with a single copy. If there are multiple Invariant Sections with
|
||||||
|
the same name but different contents, make the title of each such
|
||||||
|
section unique by adding at the end of it, in parentheses, the
|
||||||
|
name of the original author or publisher of that section if known,
|
||||||
|
or else a unique number. Make the same adjustment to the section
|
||||||
|
titles in the list of Invariant Sections in the license notice of
|
||||||
|
the combined work.</para>
|
||||||
|
|
||||||
|
<para>In the combination, you must combine any sections entitled
|
||||||
|
"History" in the various original documents, forming one section
|
||||||
|
entitled "History"; likewise combine any sections entitled
|
||||||
|
"Acknowledgements", and any sections entitled "Dedications". You
|
||||||
|
must delete all sections entitled "Endorsements."</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-6">
|
||||||
|
<title>COLLECTIONS OF DOCUMENTS</title>
|
||||||
|
|
||||||
|
<para>You may make a collection consisting of the Document and
|
||||||
|
other documents released under this License, and replace the
|
||||||
|
individual copies of this License in the various documents with a
|
||||||
|
single copy that is included in the collection, provided that you
|
||||||
|
follow the rules of this License for verbatim copying of each of
|
||||||
|
the documents in all other respects.</para>
|
||||||
|
|
||||||
|
<para>You may extract a single document from such a collection,
|
||||||
|
and distribute it individually under this License, provided you
|
||||||
|
insert a copy of this License into the extracted document, and
|
||||||
|
follow this License in all other respects regarding verbatim
|
||||||
|
copying of that document.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-7">
|
||||||
|
<title>AGGREGATION WITH INDEPENDENT WORKS</title>
|
||||||
|
<para>A compilation of the Document or its derivatives with other
|
||||||
|
separate and independent documents or works, in or on a volume of
|
||||||
|
a storage or distribution medium, does not as a whole count as a
|
||||||
|
Modified Version of the Document, provided no compilation
|
||||||
|
copyright is claimed for the compilation. Such a compilation is
|
||||||
|
called an "aggregate", and this License does not apply to the
|
||||||
|
other self-contained works thus compiled with the Document, on
|
||||||
|
account of their being thus compiled, if they are not themselves
|
||||||
|
derivative works of the Document.</para>
|
||||||
|
|
||||||
|
<para>If the Cover Text requirement of section 3 is applicable to
|
||||||
|
these copies of the Document, then if the Document is less than
|
||||||
|
one quarter of the entire aggregate, the Document's Cover Texts
|
||||||
|
may be placed on covers that surround only the Document within the
|
||||||
|
aggregate. Otherwise they must appear on covers around the whole
|
||||||
|
aggregate.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-8">
|
||||||
|
<title>TRANSLATION</title>
|
||||||
|
|
||||||
|
<para>Translation is considered a kind of modification, so you may
|
||||||
|
distribute translations of the Document under the terms of section
|
||||||
|
4. Replacing Invariant Sections with translations requires
|
||||||
|
special permission from their copyright holders, but you may
|
||||||
|
include translations of some or all Invariant Sections in addition
|
||||||
|
to the original versions of these Invariant Sections. You may
|
||||||
|
include a translation of this License provided that you also
|
||||||
|
include the original English version of this License. In case of
|
||||||
|
a disagreement between the translation and the original English
|
||||||
|
version of this License, the original English version will
|
||||||
|
prevail.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-9">
|
||||||
|
<title>TERMINATION</title>
|
||||||
|
<para>You may not copy, modify, sublicense, or distribute the
|
||||||
|
Document except as expressly provided for under this License. Any
|
||||||
|
other attempt to copy, modify, sublicense or distribute the
|
||||||
|
Document is void, and will automatically terminate your rights
|
||||||
|
under this License. However, parties who have received copies, or
|
||||||
|
rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full
|
||||||
|
compliance.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-10">
|
||||||
|
<title>FUTURE REVISIONS OF THIS LICENSE</title>
|
||||||
|
|
||||||
|
<para>The Free Software Foundation may publish new, revised
|
||||||
|
versions of the GNU Free Documentation License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present
|
||||||
|
version, but may differ in detail to address new problems or
|
||||||
|
concerns. See <ulink
|
||||||
|
url="http://www.gnu.org/copyleft/">http://www.gnu.org/copyleft/</ulink>.</para>
|
||||||
|
|
||||||
|
<para>Each version of the License is given a distinguishing
|
||||||
|
version number. If the Document specifies that a particular
|
||||||
|
numbered version of this License "or any later version" applies to
|
||||||
|
it, you have the option of following the terms and conditions
|
||||||
|
either of that specified version or of any later version that has
|
||||||
|
been published (not as a draft) by the Free Software Foundation.
|
||||||
|
If the Document does not specify a version number of this License,
|
||||||
|
you may choose any version ever published (not as a draft) by the
|
||||||
|
Free Software Foundation.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="gfdl-11">
|
||||||
|
<title>How to use this License for your documents</title>
|
||||||
|
|
||||||
|
<para>To use this License in a document you have written, include
|
||||||
|
a copy of the License in the document and put the following
|
||||||
|
copyright and license notices just after the title page:</para>
|
||||||
|
|
||||||
|
<blockquote><para>
|
||||||
|
Copyright (c) YEAR YOUR NAME.
|
||||||
|
Permission is granted to copy, distribute and/or modify this document
|
||||||
|
under the terms of the GNU Free Documentation License, Version 1.1
|
||||||
|
or any later version published by the Free Software Foundation;
|
||||||
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
||||||
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
||||||
|
A copy of the license is included in the section entitled "GNU
|
||||||
|
Free Documentation License".
|
||||||
|
</para></blockquote>
|
||||||
|
|
||||||
|
<para>If you have no Invariant Sections, write "with no Invariant
|
||||||
|
Sections" instead of saying which ones are invariant. If you have
|
||||||
|
no Front-Cover Texts, write "no Front-Cover Texts" instead of
|
||||||
|
"Front-Cover Texts being LIST"; likewise for Back-Cover
|
||||||
|
Texts.</para>
|
||||||
|
|
||||||
|
<para>If your document contains nontrivial examples of program
|
||||||
|
code, we recommend releasing these examples in parallel under your
|
||||||
|
choice of free software license, such as the GNU General Public
|
||||||
|
License, to permit their use in free software.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
</appendix>
|
||||||
|
<!-- Keep this comment at the end of the file
|
||||||
|
Local variables:
|
||||||
|
mode: sgml
|
||||||
|
sgml-omittag:nil
|
||||||
|
sgml-shorttag:t
|
||||||
|
sgml-minimize-attributes:nil
|
||||||
|
sgml-always-quote-attributes:t
|
||||||
|
sgml-indent-step:2
|
||||||
|
sgml-parent-document: ("referenz.sgml" "appendix")
|
||||||
|
sgml-exposed-tags:nil
|
||||||
|
sgml-local-ecat-files:nil
|
||||||
|
sgml-local-catalogs: CATALOG
|
||||||
|
sgml-validate-command: "nsgmls -s referenz.sgml"
|
||||||
|
ispell-skip-sgml: t
|
||||||
|
End:
|
||||||
|
-->
|
||||||
|
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
<chapter id="running">
|
||||||
|
<title>Running LCDproc</title>
|
||||||
|
|
||||||
|
<sect1 id="running-lcdd">
|
||||||
|
<title>Running LCDd</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
If you have installed the init-scripts you can simply start, stop
|
||||||
|
and restart LCDd with the init-script.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2 id="lcdd-commandline">
|
||||||
|
<title>Running LCDd from the command line</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
There are several reasons for running LCDd from the command line
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem><para>You don't want to install LCDd but run it from the source directory.</para></listitem>
|
||||||
|
<listitem><para>You want to do some debugging.</para></listitem>
|
||||||
|
<listitem><para>You want to get the output directly on stderr.</para></listitem>
|
||||||
|
<listitem><para>...</para></listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
If you run LCDd as a "normal" user, it will not change to the user
|
||||||
|
specified in the config file.
|
||||||
|
For parallel port devices you will need root privileges anyway ;)
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
The simplest command that will run LCDd is the following. It is useful for
|
||||||
|
running LCDd from the source directory, e.g. after building.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<screen>
|
||||||
|
<prompt>$</prompt> <userinput>server/LCDd -c LCDd.conf</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="lcdd-commandline-options">
|
||||||
|
<title>The Command Line Options of LCDd</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Running <command>LCDd -h</command> gives you an overview of the currently available
|
||||||
|
command line options, including a list of the compiled in drivers.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><command>LCDd -h</command></title>
|
||||||
|
<screen> <![CDATA[
|
||||||
|
LCDd Server Daemon (part of lcdproc), 0.4.3dev
|
||||||
|
Copyright (c) 1999 Scott Scriven, William Ferrell, and misc contributors
|
||||||
|
This program is freely redistributable under the terms of the GNU Public License
|
||||||
|
Usage: LCDd [ -hfiws ] [ -c <config> ] [ -d <driver> ] [ -a <addr> ] \
|
||||||
|
[ -p <port> ] [ -u <user> ] [ -w <time> ] [ -r <level> ]
|
||||||
|
|
||||||
|
Available options are:
|
||||||
|
-h Display this help screen
|
||||||
|
-c <config> Use a configuration file other than /etc/LCDd.conf
|
||||||
|
-d <driver> Add a driver to use (output only to first)
|
||||||
|
-f Run in the foreground
|
||||||
|
-i Disable showing of the main LCDproc server screen
|
||||||
|
-w <waittime> Time to pause at each screen (in seconds)
|
||||||
|
-a <addr> Network (IP) address to bind to
|
||||||
|
-p <port> Network port to listen for connections on
|
||||||
|
-u <user> User to run as
|
||||||
|
-s Output messages to syslog
|
||||||
|
-r <level> Report level (default=2)
|
||||||
|
|
||||||
|
Currently available drivers:
|
||||||
|
lcdm001, LCDM001, MtxOrb, MatrixOrbital, CFontz, CrystalFontz, LB216, text,
|
||||||
|
curses, ncurses, BayRAD, glk, glc
|
||||||
|
|
||||||
|
|
||||||
|
]]>
|
||||||
|
</screen>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="running-lcdproc">
|
||||||
|
<title>Running lcdproc</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You will probably more often run <command>lcdproc</command> from the command line than
|
||||||
|
you will run LCDd.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<sect2 id="lcdproc-commandline-options">
|
||||||
|
<title>The Command Line Options of lcdproc</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Running <command>lcdproc -h</command> gives you an overview of the currently available
|
||||||
|
command line options.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><command>lcdproc -h</command></title>
|
||||||
|
<screen> <![CDATA[
|
||||||
|
|
||||||
|
LCDproc, 0.4.3dev
|
||||||
|
Usage: lcdproc [-s server] [-p port] [modelist]
|
||||||
|
Options in []'s are optional.
|
||||||
|
modelist is "mode [mode mode ...]"
|
||||||
|
Mode letters: [C]pu [G]raph [T]ime [M]emory [X]load [D]isk [B]attery
|
||||||
|
proc_[S]izes [O]ld_time big_cloc[K] [U]ptime CPU_SM[P]
|
||||||
|
[A]bout
|
||||||
|
|
||||||
|
Use "man lcdproc" for more info.
|
||||||
|
Example:
|
||||||
|
lcdproc -s my.lcdproc.server.com C M X -p 13666
|
||||||
|
|
||||||
|
]]>
|
||||||
|
</screen>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>
|
||||||
|
You will not be able to connect to a remote server, unless it listens to
|
||||||
|
the correct interface and port! See <link linkend="server-section">
|
||||||
|
<filename>LCDd.conf</filename>: The [server] Section</link>
|
||||||
|
for details on the server setup.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
|
</chapter>
|
||||||
+10
-3
@@ -1,9 +1,9 @@
|
|||||||
.TH lcdproc 1 "1-aug-01" "LCDproc"
|
.TH lcdproc 1 "1-aug-01" "LCDproc"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
lcdproc - displays system status on LCDproc server
|
lcdproc - displays system status on LCDproc server (LCDd(8))
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.B lcdproc
|
.B lcdproc
|
||||||
[\-s \fIserver\fP] [\-p \fIport\fP] [\fImode\fP [\fImode\fP ...]]
|
[\-s \fIserver\fP] [\-p \fIport\fP] [\-d] [\fImode\fP [\fImode\fP ...]]
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
lcdproc connects to the LCDproc server to display status information about the system.
|
lcdproc connects to the LCDproc server to display status information about the system.
|
||||||
.PP
|
.PP
|
||||||
@@ -18,6 +18,9 @@ Set the hostname which LCDproc is running on, assumed to be localhost unless oth
|
|||||||
.B \-p \fIport\fP
|
.B \-p \fIport\fP
|
||||||
Set the port which LCDproc is accepting connections on, assumed to be 13666 unless otherwise set
|
Set the port which LCDproc is accepting connections on, assumed to be 13666 unless otherwise set
|
||||||
.TP 8
|
.TP 8
|
||||||
|
.B \-d
|
||||||
|
Daemonize right after startup
|
||||||
|
.TP 8
|
||||||
.B \fImode\fP
|
.B \fImode\fP
|
||||||
Where mode is one of the following letters:
|
Where mode is one of the following letters:
|
||||||
.RS
|
.RS
|
||||||
@@ -44,8 +47,12 @@ connects to the LCDproc server and specifies the following modes:
|
|||||||
.PP
|
.PP
|
||||||
|
|
||||||
|
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr LCDd 8
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
LCDproc was written by William Ferrell (wwf@splatwerks.org) and Scott Scriven (scriven@cs.colostate.edu).
|
LCDproc was originally written by William Ferrell (wwf@splatwerks.org) and Scott Scriven (scriven@cs.colostate.edu).
|
||||||
|
|
||||||
|
Since that time various people have contributed to LCDproc.
|
||||||
|
|
||||||
The newest version of LCDproc should be available from here:
|
The newest version of LCDproc should be available from here:
|
||||||
|
|
||||||
|
|||||||
@@ -1,674 +0,0 @@
|
|||||||
<!DOCTYPE book PUBLIC "-//Davenport//DTD DocBook V3.0//EN">
|
|
||||||
|
|
||||||
<book>
|
|
||||||
<bookinfo>
|
|
||||||
<date>1999-02-08</date>
|
|
||||||
<title>LCDproc User's Guide</title>
|
|
||||||
<subtitle>Installation and Client Development Guide</subtitle>
|
|
||||||
</bookinfo>
|
|
||||||
<toc></toc>
|
|
||||||
|
|
||||||
<chapter>
|
|
||||||
<title>Introduction</title>
|
|
||||||
<para>LCDproc is a system status monitoring application that drives a
|
|
||||||
variety of different LCD-based display devices. It provides a powerful
|
|
||||||
framework for networked statistic gathering, adding new monitors or
|
|
||||||
LCD-aware applications, and adding new devices.
|
|
||||||
</para>
|
|
||||||
<para>The client shipped with LCDproc v0.4 can connect to an LCDproc
|
|
||||||
server either on the local system or on a remote system as long as it
|
|
||||||
is reachable. It extracts the same statistics regardless of where it
|
|
||||||
sends this information. The statistics it gathers include CPU
|
|
||||||
utilization, memory utilization, disk utilization, network utilization,
|
|
||||||
system uptime, time, and date, and so on. It displays this information
|
|
||||||
in assorted ways, and can be tailored to taste.
|
|
||||||
</para>
|
|
||||||
<sect1>
|
|
||||||
<title>Supported Hardware</title>
|
|
||||||
<para>As shipped, LCDproc v0.4 supports LCD modules from Matrix
|
|
||||||
Orbital Corporation, HD447800-controlled LCDs, and can emulate an LCD with
|
|
||||||
the curses library or plain, raw, ugly text.
|
|
||||||
</para>
|
|
||||||
<sect2>
|
|
||||||
<title>Matrix Orbital LCD Modules</title>
|
|
||||||
<para>
|
|
||||||
LCDproc was born out of original tinkering by William Ferrell with
|
|
||||||
one of these LCD modules. Their ease of installation and use (as well
|
|
||||||
as the amazing amount of patience demonstrated by the folks at
|
|
||||||
Matrix Orbital whilst William figured things out) meant one less thing
|
|
||||||
to worry about during the early stages of LCDproc's life.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
These 20x4 alphanumeric modules are connected via standard DB-9 cabling and
|
|
||||||
connectors. They draw either 5V or 12V, depending on the module purchased,
|
|
||||||
and are attached with a standard floppy cable connector (with a slightly
|
|
||||||
modified wire configuration).
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Once connected, using them is a breeze. They can operate at any number of
|
|
||||||
different baud rates and serial configurations, but normally they run at
|
|
||||||
19,200 baud, 8-N-1, making them quite quick. Sending ASCII to the module
|
|
||||||
will make it simply display that text at its current cursor position. The
|
|
||||||
module has a built-in BIOS that recognizes commands (sent by transmitting a
|
|
||||||
single-byte "marker" signifying that a command is on the way, followed by
|
|
||||||
the single-byte command character itself along with any parameters, if needed)
|
|
||||||
allowing the programmer to clear the screen, position the cursor anywhere,
|
|
||||||
define custom characters (up to 8 at a time), draw bar graphs and large numbers,
|
|
||||||
change the LCD's contrast, and so on.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The BIOS included also implements line-wrapping (i.e. writing past the
|
|
||||||
twentieth character on the first row will automatically move the cursor
|
|
||||||
to the first character on the second row), and screen scrolling (i.e.
|
|
||||||
writing past the twentieth character on the fourth row causes the whole
|
|
||||||
screen to scroll up one row, clearing the fourth line and positioning the
|
|
||||||
cursor at the first character on that line).
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
These modules are fast. Using the auto-line-wrap feature and disabling
|
|
||||||
the auto-scrolling feature, the screen can be updated thirty times per
|
|
||||||
second if *every* character on the screen is changed. If updating less
|
|
||||||
than the whole screen, the LCD can update faster than can be seen by
|
|
||||||
the human eye. This, of course, more than meets LCDproc's needs.
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>HD44780 Controller-Based LCDs</title>
|
|
||||||
<para>
|
|
||||||
These LCDs are controlled by the Hitachi HD44780 LCD controller, and
|
|
||||||
connect to a system's parallel port. Not much else is known about these
|
|
||||||
devices at this time. [Update this section].
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>LCD Emulation</title>
|
|
||||||
<para>
|
|
||||||
LCDproc can emulate an LCD on a curses terminal (or even on a dumb terminal
|
|
||||||
by writing raw text out, if you're that desperate). The output is confined to
|
|
||||||
a 20x4 character area, just like on a real LCD, and can be "swallowed" into
|
|
||||||
window manager panels such as fvwmbuttons.
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
<sect1>
|
|
||||||
<title>LCDproc Documentation</title>
|
|
||||||
<para>
|
|
||||||
This document is intended to be full, complete documentation for
|
|
||||||
LCDproc. While some information presented in this document is present
|
|
||||||
in assorted files scattered across the LCDproc distribution tarball,
|
|
||||||
this document is meant to encompass all aspects of dealing with
|
|
||||||
LCDproc, from installation, all the way to developing custom clients
|
|
||||||
using LCDproc's client/server API.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
README and INSTALL files will always be distributed with LCDproc, along
|
|
||||||
with the requisite copyright and licensing information, but this document
|
|
||||||
will eventually replace the content of the README and INSTALL files.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This documentation was written in SGML and
|
|
||||||
<ULINK URL="http://www.oasis-open.org/docbook/">DocBook</ULINK>. SGML is a
|
|
||||||
generalized markup language (of which HTML is a subset), and DocBook is a set of
|
|
||||||
layout tools and markups using SGML that lends itself quite nicely to the publishing
|
|
||||||
of technical manuals and software documentation like this.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
In Linux, one can produce DVI, PostScript, HTML, Unix Manual Pages and Info
|
|
||||||
pages from the same SGML/DocBook source using
|
|
||||||
<ULINK URL="http://www.sgmltools.org/">SGMLtools</ULINK>. Take a look at this set
|
|
||||||
of tools if you have any large-scale documentation to write. It might have a bit of
|
|
||||||
a steep learning curve, but it's certainly worth the effort.
|
|
||||||
</para>
|
|
||||||
</sect1>
|
|
||||||
</chapter>
|
|
||||||
|
|
||||||
<chapter>
|
|
||||||
<title>Installation</title>
|
|
||||||
<para>
|
|
||||||
This chapter covers the installation process for both LCDproc, and the actual LCD
|
|
||||||
module intended for use with LCDproc. Since our experience has involved almost
|
|
||||||
exclusively the Matrix Orbital modules, we will spend little time on installation
|
|
||||||
instructions for other hardware.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
If you have successfully installed LCDproc-compatible hardware and would care to
|
|
||||||
document how you did so, please e-mail the author of this book
|
|
||||||
(choadster@earthlink.net).
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
We will examine the installation process of LCDproc and the hardware it drives in
|
|
||||||
small steps, as it is vitally important to pay close attention to detail during
|
|
||||||
hardware installation to avoid damaging equipment, as well as during LCDproc's
|
|
||||||
installation, since things have become a little more complicated since LCDproc's
|
|
||||||
split into a client and server model.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
First, hardware installation is discussed. If you are not using physical LCD
|
|
||||||
hardware to run LCDproc, you can safely skip the hardware installation sections and
|
|
||||||
move on to the software installation sections.
|
|
||||||
</para>
|
|
||||||
<sect1>
|
|
||||||
<title>Hardware Installation</title>
|
|
||||||
<para>
|
|
||||||
Regardless of what specific type of hardware you intend to use with LCDproc,
|
|
||||||
installation is usually straightforward, and requires only a few steps. Regardless,
|
|
||||||
you must use caution while working inside your computer system or with any hardware
|
|
||||||
attachments.
|
|
||||||
</para>
|
|
||||||
<Warning>
|
|
||||||
<Title>Warning!</Title>
|
|
||||||
<para>
|
|
||||||
Installing new hardware inside a computer system can be dangerous to both
|
|
||||||
system components and the installer. Use caution whenever adding a component
|
|
||||||
to the inside of your system, altering a power cable, or physically mounting
|
|
||||||
a device inside a computer system.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
When installing hardware inside a computer, make sure it's turned off and that
|
|
||||||
its power is disconnected. This is especially important when making changes to
|
|
||||||
power cables (as some LCD modules require).
|
|
||||||
</para>
|
|
||||||
</Warning>
|
|
||||||
<sect2>
|
|
||||||
<title>Matrix Orbital LCD/VFD Module Installation</title>
|
|
||||||
<para>
|
|
||||||
The LCD and VFD modules from Matrix Orbital are relatively straightforward
|
|
||||||
to install. With a small, regular (flat-head) screwdriver, a spare floppy drive
|
|
||||||
power cable, and a bit of luck, installation will take less than an hour.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
These installation instructions assume that you are installing the module into
|
|
||||||
a PC or PC-style system (one with AT- or ATX-compliant power cabling) and that
|
|
||||||
you have some idea of where you intend to permanently mount the module. For
|
|
||||||
mounting ideas and tips, refer to the section "Mounting" below.
|
|
||||||
</para>
|
|
||||||
<Tip>
|
|
||||||
<Title>Before you start</title>
|
|
||||||
<para>
|
|
||||||
Your Matrix Orbital LCD or VFD module should be clearly marked with an
|
|
||||||
indication of the module's power requirements. It should be either a 5 volt
|
|
||||||
or 12 volt unit. You should have this information available before proceeding.
|
|
||||||
</para>
|
|
||||||
</tip>
|
|
||||||
<sect3>
|
|
||||||
<title>Power Cable Modification</title>
|
|
||||||
<para>
|
|
||||||
The first step in installing the module is making the necessary modifications
|
|
||||||
to a floppy drive power cable in order to provide power to the module. The
|
|
||||||
modifications must be made based on the module's power requirements -- either
|
|
||||||
5V or 12V -- depending on which module you purchased.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
A standard floppy drive power cable has a smaller connection than a "normal"
|
|
||||||
PC power connector. However, like a "normal" power connector, it has four
|
|
||||||
wires: one yellow, one red, and two black. The red wire provides +5V power, and
|
|
||||||
is "hot" or live when the system is powered up. The yellow wire provides +12V
|
|
||||||
power, and is also hot when the system is powered up. Both black wires are
|
|
||||||
ground.
|
|
||||||
[TODO: INCLUDE A FIGURE HERE SHOWING A "STANDARD" FLOPPY CONNECTOR]
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
One of the hot wires and one of the black wires will not be needed for your
|
|
||||||
module's power connection; they will be completely removed when the power cable
|
|
||||||
modification is complete.
|
|
||||||
</para>
|
|
||||||
<Warning>
|
|
||||||
<title>Warning!</title>
|
|
||||||
<para>
|
|
||||||
Do NOT make this modification to a power cable attached to a running
|
|
||||||
system! Electrocution resulting in personal injury and/or damage to the
|
|
||||||
system can result.
|
|
||||||
</para>
|
|
||||||
</Warning>
|
|
||||||
<para>
|
|
||||||
Using a regular screwdriver, press down the small metal locking flap of one
|
|
||||||
of the two black wires on the small end of the cable, and pull the black wire
|
|
||||||
from the connector. Using a pair of needle-nose pliers, squeeze the other end
|
|
||||||
of the same black wire, and pull it out of the large end of the cable. This
|
|
||||||
black wire can be set aside; it will not be used for the module's power
|
|
||||||
connection. Either wire can be safely removed; you may safely remove either
|
|
||||||
wire.
|
|
||||||
[TODO: INCLUDE A FIGURE HERE SHOWING THIS PROCESS]
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Next, using the same procedure, remove the unneeded hot wire. If your module
|
|
||||||
is 5V, you do not need the yellow (+12V) wire. Conversely, if your module is
|
|
||||||
12V, you do not need the red (+5V) wire. The removed wire can be set aside;
|
|
||||||
it will not be used for the module's power connection.
|
|
||||||
[TODO: INCLUDE A FIGURE HERE]
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The floppy power connector should now have only two wires attached to it.
|
|
||||||
Leave the larger end alone from now on; these connections are correct (the
|
|
||||||
larger end connects to your system's power mains). Move the two remaining wires
|
|
||||||
to the outside connectors on the small end of the cable. Orientation does not
|
|
||||||
particularly matter here; the connector will fit on the module's receptacle
|
|
||||||
in either orientation.
|
|
||||||
[TODO: A FIGURE HERE]
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
You should now have a properly modified power connector. When physically
|
|
||||||
attaching this connector to the module, the black (ground) lead should be
|
|
||||||
connected to the pin labelled GND, while the colored (+5V/+12V) lead should
|
|
||||||
be connected to the pin labelled +5V/+12V.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Test the power connection before connecting the data line or mounting the
|
|
||||||
module. Connect the module to the power connector, and the connector to your
|
|
||||||
system's power mains. Turn the system on.
|
|
||||||
</para>
|
|
||||||
<Caution>
|
|
||||||
<Title>Caution</Title>
|
|
||||||
<para>
|
|
||||||
If the module does not immediately display its initial BIOS screen and light
|
|
||||||
up its backlight (or light up the screen if a VFD module is being used),
|
|
||||||
<EMPHASIS>immediately</EMPHASIS> power down the system, disconnect the module
|
|
||||||
and connector, and double-check the modification before trying again. Do NOT
|
|
||||||
leave the system on if the module does not immediately respond; module or
|
|
||||||
system damage could result.
|
|
||||||
</para>
|
|
||||||
</Caution>
|
|
||||||
<para>
|
|
||||||
When the LCD powers up and displays its initial BIOS screen, you've gotten the
|
|
||||||
power connection wired properly and can now properly mount the module and make
|
|
||||||
its final connections. Matrix Orbital Corporation sells a PC bay insert mount
|
|
||||||
for the 20x4 and 20x2 modules (LCDproc, however, only supports the 20x4 at
|
|
||||||
present). The inserts provide an easy means of mounting the LCD modules inside
|
|
||||||
a PC using one (for the 20x2) or two (for the 20x4) 5 1/4" bays.
|
|
||||||
</para>
|
|
||||||
<Note>
|
|
||||||
<title>Note</title>
|
|
||||||
<para>
|
|
||||||
Describing how to physically mount the module in a PC case is beyond the
|
|
||||||
scope of this document; LCDproc's website contains more detailed mounting
|
|
||||||
information and examples.
|
|
||||||
</para>
|
|
||||||
</Note>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>Serial Connection</title>
|
|
||||||
<para>
|
|
||||||
The LCD module uses a standard DB9 serial connector. You can attach the module
|
|
||||||
to your system using a direct cable to the motherboard, or by removing one of
|
|
||||||
your system's serial ports from the back of the case, then connecting it to a
|
|
||||||
standard serial cable to the module.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
While connecting the serial cable to the module, be sure to configure the
|
|
||||||
module's serial interface settings. Typically, setting the module to its fastest
|
|
||||||
setting (19,200 baud, 8-N-1) is recommended. At present, the Matrix Orbital
|
|
||||||
module driver in LCDproc is hardwired to use these settings; using different
|
|
||||||
ones will require minor changes to the driver's code.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>Other Display Types</title>
|
|
||||||
<para>
|
|
||||||
At present, we do not have any detailed information regarding the installation
|
|
||||||
of other types of LCDs. If you have any information that would be useful to
|
|
||||||
include here, please contact William Ferrell
|
|
||||||
(<ULINK URL="mailto:choadster@earthlink.net">choadster@earthlink.net</ULINK>).
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
</chapter>
|
|
||||||
<chapter>
|
|
||||||
<title>LCDproc Distribution Layout</title>
|
|
||||||
<para>The current LCDproc distribution contains both the LCDproc server
|
|
||||||
and the LCDproc client. It also contains sparse documentation (this
|
|
||||||
document will hopefully solve this problem), and a sample Perl client.
|
|
||||||
[THIS WILL CHANGE -- REWRITE THIS PARAGRAPH]</para>
|
|
||||||
|
|
||||||
<sect1>
|
|
||||||
<title>Basic Layout</title>
|
|
||||||
<para>
|
|
||||||
LCDproc is distributed in a single archive containing both the client(s)
|
|
||||||
and the server:
|
|
||||||
<SimpleList columns=2>
|
|
||||||
<Member>clients/</Member>
|
|
||||||
<Member>docs/</Member>
|
|
||||||
<Member>old/</Member>
|
|
||||||
<Member>server/</Member>
|
|
||||||
<Member>server/drivers/</Member>
|
|
||||||
<Member>shared/</Member>
|
|
||||||
<Member>tests/</Member>
|
|
||||||
<Member>BUGS</Member>
|
|
||||||
<Member>COPYING</Member>
|
|
||||||
<Member>INSTALL</Member>
|
|
||||||
<Member>Makefile</Member>
|
|
||||||
<Member>Makefile.config</Member>
|
|
||||||
<Member>README</Member>
|
|
||||||
<Member>TODO</Member>
|
|
||||||
<Member>WHATSNEW</Member>
|
|
||||||
<Member>Contains the LCDproc client and the sample Perl client</Member>
|
|
||||||
<Member>Documentation (sparse at the moment)</Member>
|
|
||||||
<Member>Contains older source code, unused in compiling v0.4</Member>
|
|
||||||
<Member>Contains the LCDproc server</Member>
|
|
||||||
<Member>Contains LCDproc's device drivers</Member>
|
|
||||||
<Member>Contains shared code</Member>
|
|
||||||
<Member>Contains test code not used in compiling</Member>
|
|
||||||
<Member>A list of known bugs in the current version</Member>
|
|
||||||
<Member>The GNU General Public License</Member>
|
|
||||||
<Member>Installation Instructions</Member>
|
|
||||||
<Member>File for the "make" utility, used to compile LCDproc</Member>
|
|
||||||
<Member>Contains compile-time user-tunable defaults for LCDproc</Member>
|
|
||||||
<Member>Read this file first! Contains basic information regarding LCDproc,
|
|
||||||
what it does, how it works, and how to start building it.</Member>
|
|
||||||
<Member>List of planned changes and improvements.</Member>
|
|
||||||
<Member>List of revisions that have been made to LCDproc throughout its
|
|
||||||
development. [This should be changed to ChangeLog]</Member>
|
|
||||||
</Simplelist>
|
|
||||||
</para>
|
|
||||||
</sect1>
|
|
||||||
<sect1>
|
|
||||||
<title>A Stroll Through the Code</title>
|
|
||||||
<para>
|
|
||||||
This section attempts to document how LCDproc works. Both the server and
|
|
||||||
the client are explored at the source code level. This section was written
|
|
||||||
as an exercise for the author to help him better understand LCDproc's
|
|
||||||
inner workings, allowing him to better document LCDproc for end users and
|
|
||||||
developers. Feel free to skip past this entire section unless you really
|
|
||||||
feel like reading how LCDproc renders screens, manages clients, deals with
|
|
||||||
input, and handles trouble.
|
|
||||||
</para>
|
|
||||||
<sect2>
|
|
||||||
<title>The LCDproc Server, LCDd</title>
|
|
||||||
<para>
|
|
||||||
LCDd is the central component of LCDproc. It is responsible for several
|
|
||||||
different activities:
|
|
||||||
|
|
||||||
<SimpleList>
|
|
||||||
<Member>Initializing the output device</Member>
|
|
||||||
<Member>Initializing the incoming socket</Member>
|
|
||||||
<Member>Listening for client connections and accepting them</Member>
|
|
||||||
<Member>Storing screens provided by clients</Member>
|
|
||||||
<Member>Storing stats provided by clients</Member>
|
|
||||||
<Member>Choose the best screen to display on the LCD based on order of
|
|
||||||
client and screen arrival, and by priority</Member>
|
|
||||||
<Member>Provide a rich screen-drawing widget set for clients to use</Member>
|
|
||||||
<Member>Render screens to the LCD</Member>
|
|
||||||
<Member>Gracefully handle dead sockets and clients</Member>
|
|
||||||
<Member>Gracefully remove screens and clients when asked to by clients or
|
|
||||||
the user</Member>
|
|
||||||
</SimpleList>
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
To accomplish all this, LCDd splits into dozens of source files to handle
|
|
||||||
different bits of the job. We will examine each of these source files one by
|
|
||||||
one (and, to make things easier, in alphabetical order). Header files (*.h)
|
|
||||||
will not be included in this discussion.
|
|
||||||
</para>
|
|
||||||
<sect3>
|
|
||||||
<title>server/client_data.c</title>
|
|
||||||
<para>
|
|
||||||
This file appears to contain code that handles the creation and destruction
|
|
||||||
of linked lists for client data.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/client_functions.c</title>
|
|
||||||
<para>
|
|
||||||
This file actually describes itself as its first comment! It contains
|
|
||||||
definitions for all the functions that the clients can run. They are to
|
|
||||||
be called only from server/parse.c.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Here the functions that clients call when connected to LCDd are actually
|
|
||||||
defined and performed.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/clients.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains code allowing LCDd to handle client connections and
|
|
||||||
data structures. It contains functions to initialize the internal list
|
|
||||||
of clients, terminate client connections, add new clients to the list,
|
|
||||||
add, remove, and retrieve messages to clients' message queues, and
|
|
||||||
locating a client's socket.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/input.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains functions that handle input from keypads, joysticks,
|
|
||||||
etc.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/main.c</title>
|
|
||||||
<para>
|
|
||||||
Where the action is.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This file contains LCDd's main() function and supporting code. It begins
|
|
||||||
life by configuring signal handlers, then by immediately initializing the
|
|
||||||
LCD drivers. (Huh?) It then parses the command line, configuring the
|
|
||||||
LCD driver appropriately, then initializes its internal lists and the
|
|
||||||
socket.</para>
|
|
||||||
<para>
|
|
||||||
Next, it forks into a daemon process (shedding its controlling terminal)
|
|
||||||
and enters the main loop. The main loop: listens for connections from
|
|
||||||
new clients and for input from already connected ones, parses all input
|
|
||||||
from connected clients, checks for input, then updates the screen list
|
|
||||||
and updates the LCD.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Also present are functions to handle graceful exits when various signals
|
|
||||||
are received, and a help screen.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/menu.c</title>
|
|
||||||
<para>
|
|
||||||
This appears to be code to handle server-generated menu screens on the LCD.
|
|
||||||
[I don't understand this file in the slightest ... study this harder later]
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/parse.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains code that parses input from the clients.
|
|
||||||
parse_all_client_messages() is called once each time through main()'s loop.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/render.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains code that actually generates the full screen data to
|
|
||||||
send to the LCD. draw_screen() takes a screen definition and a counter as its
|
|
||||||
arguments. It builds the screen according to the definition, and using the
|
|
||||||
counter as a reference.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/screen.c</title>
|
|
||||||
<para>
|
|
||||||
This file stores all the screen definition-handling code. Functions here
|
|
||||||
provide means to create new screens and destroy existing ones. Screens are
|
|
||||||
identified by client and by the client's own identifiers for screens.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/screenlist.c</title>
|
|
||||||
<para>
|
|
||||||
This appears to be the screenlist handler that decides which screen to
|
|
||||||
display based on priorities and screen creation order.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/serverscreens.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains code to allow the server to generate its own screens.
|
|
||||||
Currently, only the server status screen is provided, showing total number
|
|
||||||
of connected clients, and the combined total of screens they provide (this
|
|
||||||
count does not include the server's screens).
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
It is interesting to note that the server creates a special screen
|
|
||||||
definition for its screens, but uses the same widget set made available
|
|
||||||
to clients.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/sock.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains all the sockets code used by the server. This contains
|
|
||||||
the code called upon by main() to initialize the listening socket, as well
|
|
||||||
as code to deal with sending messages to clients, maintaining connections,
|
|
||||||
accepting new connections, closing dead connections (or connections
|
|
||||||
associated with dying/exiting clients), etc.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/widget.c</title>
|
|
||||||
<para>
|
|
||||||
This file houses code that handles the creation and destruction of widget
|
|
||||||
objects for the server. These functions are called using the arguments
|
|
||||||
passed by the client, then they store the specified widget into a generic
|
|
||||||
container that is parsed later by the screen renderer.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>server/drivers/*</title>
|
|
||||||
<para>
|
|
||||||
These are the individual driver files. Each driver allows LCDproc to display
|
|
||||||
its output on a different device. A driver is responsible for accepting
|
|
||||||
LCD-like handling instructions from LCDd, and for returning input from the
|
|
||||||
device to LCDd.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Currently, drivers provided are MtxOrb, hd44780, curses, and joy. The
|
|
||||||
joystick (joy) driver doesn't provide output, but only input.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>The LCDproc Client</title>
|
|
||||||
<para>
|
|
||||||
The client shipped with LCDproc performs all of the statistic gathering
|
|
||||||
previously performed by LCDproc v0.3.x. Instead of driving the LCD directly,
|
|
||||||
in this version it now connects to LCDd and sends its screens and data there.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
In this implementation of the statistic-gathering portions of LCDproc, the
|
|
||||||
layout departs substantially from the older v0.3.x code. Each screen is
|
|
||||||
generated by functions stored in separate files -- one file per screen.
|
|
||||||
This keeps files smaller, and code much simpler to maintain and update.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The client appears to use files from the share/ tree as well.
|
|
||||||
</para>
|
|
||||||
<sect3>
|
|
||||||
<title>clients/lcdproc/batt.c, chrono.c, cpu.c, disk.c, load.c, mem.c</title>
|
|
||||||
<para>
|
|
||||||
These files contain the functions implementing all the screens provided by
|
|
||||||
LCDproc.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Each contains several functions, mostly related to actual statistic gathering.
|
|
||||||
They are also apparently responsible for actually transmitting their screen
|
|
||||||
definitions to the server and answering the server's requests for statistic
|
|
||||||
updates. The functions here do *no* checking to determine if they are being
|
|
||||||
asked for. They *do* check to see if they need to create a new screen
|
|
||||||
definition or merely update it. It would appear that the client's main() or
|
|
||||||
other higher-level function is responsible for calling this function when the
|
|
||||||
server asks for an update.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>clients/lcdproc/main.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains the LCDproc client's main() function, as well as a few
|
|
||||||
supporting functions.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
It first declares and fills a modelist (used only internally by this client)
|
|
||||||
that determines which screens will run by default (if the user doesn't
|
|
||||||
specify a custom modelist on the command line). The first thing main() itself
|
|
||||||
does is configure the signal handlers.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Next, it parses the command line for options, yelling at the user if an
|
|
||||||
invalid or nonsensical argument has been specified. After it has done this,
|
|
||||||
it tries to open a socket connection to LCDd. If successful, execution
|
|
||||||
continues. If unsuccessful, the client exits gracefully.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Assuming a valid socket connection is established, it sends the "hello"
|
|
||||||
command to the server, introducing itself and convincing the server that yes,
|
|
||||||
it really *should* serve this client. Next, it calls the mode_init() function
|
|
||||||
which appears to set up data structures for the various modes, and then finally
|
|
||||||
the main_loop() function which executes indefinitely until the client is
|
|
||||||
killed or is asked to stop. Then the program exits cleanly.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
main_loop() is defined in this file as well. The main loop listens for any
|
|
||||||
input from the server, and reacts on what it receives. It appears capable of
|
|
||||||
dealing with keypresses, listen/ignore signals, and menu activity. After it
|
|
||||||
has reacted appropriately to inputs, it runs the screen asked for by the
|
|
||||||
server.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The old main() is commented out, but included here for reference. Eventually,
|
|
||||||
this will be removed from LCDproc's source. For now, however, it serves as a
|
|
||||||
useful reference.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>clients/lcdproc/mode.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains functions responsible for initializing mode screens and
|
|
||||||
calling the appropriate mode screen update function when asked to do so.
|
|
||||||
main_loop() passes the server's parsed messages to this function to enable it
|
|
||||||
to select which screen is called for.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
This file also contains reread() and getentry() functions which are used by
|
|
||||||
many of the mode screens.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
<sect2>
|
|
||||||
<title>Shared Files</title>
|
|
||||||
<para>
|
|
||||||
Both LCDd and the LCDproc client make extensive use of linked lists and sockets
|
|
||||||
code. Much of that code is shared, and stored in the shared/ tree.
|
|
||||||
</para>
|
|
||||||
<sect3>
|
|
||||||
<title>shared/config.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains the beginnings of configuration file code.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>shared/LL.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains all of the functions used in implementing LCDproc's
|
|
||||||
linked lists. Functions exist here to create new lists, destroy lists,
|
|
||||||
remove an entry from a list, add an entry to a list, move a pointer to
|
|
||||||
the beginning or end of a list, move a pointer to the next item in a
|
|
||||||
list, the previous item of a list, or to retrieve individual items from
|
|
||||||
a list.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>shared/sockets.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains all the functions used in implementing LCDproc's socket
|
|
||||||
handling capabilities. Full bi-directional communication is implemented by
|
|
||||||
these functions.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
<sect3>
|
|
||||||
<title>shared/str.c</title>
|
|
||||||
<para>
|
|
||||||
This file contains only one function, get_args(). It appears to parse
|
|
||||||
command lines (or command line-like strings) for arguments, and returns them
|
|
||||||
in a more useful form.
|
|
||||||
</para>
|
|
||||||
</sect3>
|
|
||||||
</sect2>
|
|
||||||
</sect1>
|
|
||||||
</chapter>
|
|
||||||
</book>
|
|
||||||
+4
-2
@@ -159,8 +159,8 @@ screen_set #id [-priority integer] [-name "my_name"] [-duration integer]
|
|||||||
widget_add #screen #id type [-in #id]
|
widget_add #screen #id type [-in #id]
|
||||||
Add something onscreen
|
Add something onscreen
|
||||||
Widget types can be any of the following: "string", "hbar",
|
Widget types can be any of the following: "string", "hbar",
|
||||||
"vbar", "title", "icon", "scroller", "frame", ... more later?
|
"vbar", "title", "icon", "num" "scroller", "frame", ... more
|
||||||
Widgets are drawn in the order you create them.
|
later? Widgets are drawn in the order you create them.
|
||||||
|
|
||||||
You can put a widget inside a frame by adding "-in #id", where
|
You can put a widget inside a frame by adding "-in #id", where
|
||||||
#id is the name of a frame.
|
#id is the name of a frame.
|
||||||
@@ -182,6 +182,8 @@ widget_set #screen #id data
|
|||||||
|
|
||||||
icon x y binary_data
|
icon x y binary_data
|
||||||
|
|
||||||
|
num x number_between_0_and_9
|
||||||
|
|
||||||
title text
|
title text
|
||||||
|
|
||||||
scroller left top right bottom direction speed text
|
scroller left top right bottom direction speed text
|
||||||
|
|||||||
Reference in New Issue
Block a user