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
|
||||
LCDd - LCDproc server daemon
|
||||
.SH SYNOPSIS
|
||||
.B LCDd
|
||||
[\-\-help]
|
||||
[\-\-type <\fIsize\fP>]
|
||||
[\-\-driver <\fIdriver\fP> [\fIargs\fP] ]
|
||||
[\-\-foreground \fI\fP]
|
||||
[\-\-backlight <\fImode\fP>]
|
||||
[\-\-serverinfo off]
|
||||
[\-hfiws]
|
||||
[\-c <\fIconfig\fP>]
|
||||
[\-d <\fIdriver\fP>]
|
||||
[\-a <\fIaddr\fP>]
|
||||
[\-p <\fIport\fP>]
|
||||
[\-u <\fIuser\fP>]
|
||||
[\-w <\fItime\fP>]
|
||||
[\-r <\fIlevel\fP>]
|
||||
.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
|
||||
and sizes of displays.
|
||||
.PP
|
||||
LCDd will attempt to open /dev/lcd by default and will error if this
|
||||
device is not available. In most cases, it should be sufficient to
|
||||
link /dev/lcd to the appropriate serial or parallel device.
|
||||
As of version 0.4.3 of LCDproc most settings are configured through the LCDd configuration
|
||||
file, which is normally /etc/LCDd.conf. Before running LCDd you should carefully read through
|
||||
that file and modify everything neccessary according to your needs. Otherwise you might encounter
|
||||
LCDd not running properly on your system.
|
||||
.PP
|
||||
To make full use of LCDd, a client such as lcdproc(1) is required.
|
||||
.SH OPTIONS
|
||||
@@ -23,41 +26,52 @@ Available
|
||||
.I LCDd
|
||||
options are:
|
||||
.TP 8
|
||||
.B \-h, \-\-help
|
||||
.B \-h
|
||||
Display this help screen
|
||||
.TP 8
|
||||
.B \-t, \-\-type <size>
|
||||
select an LCD size (20x4, 16x2, etc...)
|
||||
.B \-c <config>
|
||||
Use a configuration file other than /etc/LCDd.conf
|
||||
.TP 8
|
||||
.B \-d, \-\-driver <\fIdriver\fP> [\fIargs\fP]
|
||||
Adds (another) driver to use to display information. Any \fIargs\fP specified will be
|
||||
passed to the chosen driver for initialization.
|
||||
.B \-d <driver>
|
||||
Add a driver to use (output only to first)
|
||||
.TP 8
|
||||
.B \-f, \-\-foreground
|
||||
Run in the foreground (no daemon)
|
||||
.B \-f
|
||||
Run in the foreground
|
||||
.TP 8
|
||||
.B \-b\fP,\fB \-\--backlight \fI<mode>\fP
|
||||
Set backlight mode (on, off, open)
|
||||
.B \-i
|
||||
Disable showing of the main LCDproc server screen
|
||||
.TP 8
|
||||
.B \-i, \-\-serverinfo off
|
||||
Set the server screen to low priority
|
||||
.PP
|
||||
Help on each driver's parameters are obtained upon request:
|
||||
"LCDd -d driver --help"
|
||||
.B \-w <waittime>
|
||||
Time to pause at each screen (in seconds)
|
||||
.TP 8
|
||||
.B \-a <addr>
|
||||
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
|
||||
Supported Drivers
|
||||
Supported display drivers include:
|
||||
Currently supported display drivers include:
|
||||
.TP
|
||||
.B CFontz
|
||||
.B CFontz (or CrystalFontz)
|
||||
CrystalFontz LCD displays
|
||||
.TP
|
||||
.B curses
|
||||
.B curses (or ncurses)
|
||||
Standard video display using the ncurses library
|
||||
.TP
|
||||
.B HD44780
|
||||
Hitachi HD44780 LCD displays
|
||||
.TP
|
||||
.B BayRad
|
||||
.B BayRAD
|
||||
EMAC BayRad displays
|
||||
.TP
|
||||
.B irmanin
|
||||
@@ -72,14 +86,17 @@ Wirz SLI driver (unknown)
|
||||
.B joy
|
||||
Joystick driver (input)
|
||||
.TP
|
||||
.B MtxOrb
|
||||
.B MtxOrb (or MatrixOrbital)
|
||||
Matrix Orbital displays (not Matrix Orbital GLK displays)
|
||||
.TP
|
||||
.B glk
|
||||
Matrix Orbital GLK graphical LCD displays
|
||||
.TP
|
||||
.B LB216
|
||||
LB216 LCD display
|
||||
.TP
|
||||
.B glk
|
||||
Matrix Orbital GLK graphical LCD displays
|
||||
.B lcdm001 (or LCDM001)
|
||||
kernelconcepts.de 20x4 serial LCD displays
|
||||
.TP
|
||||
.B text
|
||||
Standard "hard-copy" text display
|
||||
@@ -88,12 +105,13 @@ Standard "hard-copy" text display
|
||||
Undocumented debug driver
|
||||
.PP
|
||||
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
|
||||
.TP
|
||||
LCDd -d MtxOrb "--device /dev/lcd --contrast 200" -d joy
|
||||
Start LCDd with the Matrix Orbital driver and the Joystick input driver,
|
||||
with the /dev/lcd device and a contrast value of 200.
|
||||
LCDd -d MtxOrb -d joy
|
||||
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.
|
||||
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
|
||||
There is a basic sequence:
|
||||
.TP 8
|
||||
@@ -273,7 +291,7 @@ frames per movement; a negative number indicates movements per frame.
|
||||
left top right bottom wid hgt dir speed
|
||||
.sp
|
||||
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,
|
||||
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)
|
||||
@@ -284,23 +302,25 @@ check the order of the options and the quoting involved. Some combinations
|
||||
of options will be misread and thus fail.
|
||||
.PP
|
||||
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
|
||||
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).
|
||||
|
||||
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:
|
||||
|
||||
http://lcdproc.omnipotent.net/
|
||||
|
||||
.SH LEGAL STUFF
|
||||
The lcdproc package is released as "WorksForMe-Ware". In other words, it is free, kinda nea
|
||||
t, and we don't guarantee that it will do anything in particular on any machine
|
||||
except the ones it was developed on.
|
||||
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.
|
||||
.PP
|
||||
It is technically released under the GNU GPL license (you should have received t
|
||||
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.
|
||||
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.
|
||||
.PP
|
||||
For any sort of real legal information, read the GNU GPL (GNU General Public Lic
|
||||
ense). It's worth reading.
|
||||
For any sort of real legal information, read the GNU GPL (GNU General Public License). It's worth reading.
|
||||
|
||||
+2
-1
@@ -1,2 +1,3 @@
|
||||
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"
|
||||
.SH NAME
|
||||
lcdproc - displays system status on LCDproc server
|
||||
lcdproc - displays system status on LCDproc server (LCDd(8))
|
||||
.SH SYNOPSIS
|
||||
.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
|
||||
lcdproc connects to the LCDproc server to display status information about the system.
|
||||
.PP
|
||||
@@ -18,6 +18,9 @@ Set the hostname which LCDproc is running on, assumed to be localhost unless oth
|
||||
.B \-p \fIport\fP
|
||||
Set the port which LCDproc is accepting connections on, assumed to be 13666 unless otherwise set
|
||||
.TP 8
|
||||
.B \-d
|
||||
Daemonize right after startup
|
||||
.TP 8
|
||||
.B \fImode\fP
|
||||
Where mode is one of the following letters:
|
||||
.RS
|
||||
@@ -44,8 +47,12 @@ connects to the LCDproc server and specifies the following modes:
|
||||
.PP
|
||||
|
||||
|
||||
.Sh SEE ALSO
|
||||
.Xr LCDd 8
|
||||
.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:
|
||||
|
||||
|
||||
@@ -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]
|
||||
Add something onscreen
|
||||
Widget types can be any of the following: "string", "hbar",
|
||||
"vbar", "title", "icon", "scroller", "frame", ... more later?
|
||||
Widgets are drawn in the order you create them.
|
||||
"vbar", "title", "icon", "num" "scroller", "frame", ... more
|
||||
later? Widgets are drawn in the order you create them.
|
||||
|
||||
You can put a widget inside a frame by adding "-in #id", where
|
||||
#id is the name of a frame.
|
||||
@@ -182,6 +182,8 @@ widget_set #screen #id data
|
||||
|
||||
icon x y binary_data
|
||||
|
||||
num x number_between_0_and_9
|
||||
|
||||
title text
|
||||
|
||||
scroller left top right bottom direction speed text
|
||||
|
||||
Reference in New Issue
Block a user