Drivers are now being loaded as modules.

This commit is contained in:
robijn
2002-02-21 22:50:12 +00:00
parent ca5f3d1f37
commit dba163c4a4
61 changed files with 702 additions and 2270 deletions
+83 -63
View File
@@ -13,45 +13,51 @@ First read the README if you haven't already.
In order to compile LCDproc, you'll need:
an ANSI C compiler, we recommend GCC. Most Linux or BSD systems come
an ANSI C compiler, we recommend GCC. Most Linux or BSD systems come
with GCC.
GNU Make, Most Linux come with GNU Make, on some BSD you will need to
install it. See the PLATFORM SPECIFIC section for more infos.
GNU Make. It is available for all major distributions. If you want to
compile it yourself, see http://www.gnu.org/software/make/make.html .
The GNU autotools, that is automake and autoconf. It is available for
all major distributions. If you want to compile it yourself, see
http://sources.redhat.com/automake/ and
http://sources.redhat.com/autoconf/ .
LCDproc is in fact two things, a client (lcdproc) and a server (LCDd).
The client gathers informations and sends them to the server.
The server displays the informations on an LCD display.
The client and the server use a TCP connection to communicate, so it is
possible to have a client on a box in Sweden showing its stats on a LCD
display in the United States. For hardware reasons, the client is much
more portable than the server. Here's are the prerequistes for both:
display in the United States.
--- Client ---
The client should run on any POSIX compliant system.
It has been sucessfully tested on:
Linux 2.2.x, Linux 2.4.x, NetBSD 1.5, OpenBSD 3.0
In the future want it to run on Windows, MacOS and others.
-- DISPLAYS -----------------------------------------------------------
--- Server ---
The server needs to talk with the LCD display. At this time, it only works
on Intel i386 (PC Compatible) architecture.
It has been sucessfully tested on:
Linux 2.2.x, Linux 2.4.x, NetBSD 1.5, OpenBSD 3.0
Many different displays (or better said: output devices) are supported.
Some of these devices also support input, for example with a keypad.
There are drivers for input-only devices too.
Connecting the display to your system
For LCDd (the server) to use the device, it needs to load a driver. The
drivers are so called 'shared modules', that usually have an extension
of .so . The drivers to be loaded should be specified in the config file
(by one or more Driver= lines), or on the command line. The command line
should only be used to override things in the config file. The drivers
should be in a directory that is indicated by the DriverPath= line in
the configfile.
Depending on what kind of LCD display that you have, there are several
sources for informations. If your LCD display came with a manual, this
is a great place to start. If you don't have a manual, then you must find
out what kind of display this is, and check the related informations:
is a great place to start. If you don't have a manual, then you must
find out what kind of display this is, and check the related
informations:
HD44780 and compatible: http://robijn.net/lcdproc/
HD44780 and compatible: read docs/hd44780-howto.txt
or alternatively see http://www.robijn.net/lcdproc/
STV5730: http://www.adams-online.de/lcd/
SED1520: http://www.adams-online.de/lcd/
Also take a look at the comments in the driver source code in
Also take a look at the comments in the driver source code in
server/drivers. You may have some good indications there.
You may want to take a look at LCDproc's hardware page at
@@ -72,22 +78,22 @@ And read the available options, especially --enable-drivers
Run make to build the server and all clients
make
If you only want to compile the clients, you can omit to compile the
If you only want to compile the clients, you can omit to compile the
server:
cd shared
make
cd ../clients
make
Similarly, if you only want to compile the server, you can omit to
Similarly, if you only want to compile the server, you can omit to
compile the clients:
cd shared
make
cd ../server
make
Depending on your system, LCDproc will build in a few seconds to a
few minutes. It's not very big.
Depending on your system, LCDproc will build in a few seconds to a
few minutes. It's not very big.
If you want, you can install it (if you're root) by typing:
make install
@@ -97,46 +103,59 @@ specified in configure.
-- PLATFORM SPECIFIC ------------------------------------------------
The lcdproc crew has tried to support a number of platforms. Platforms
that are very non-standard are not and will probably never be supported.
Both server & drivers and clients have their own difficulties in
porting. Here's are the prerequistes for both:
--- Client ---
The client should run on any POSIX compliant system.
It has been sucessfully tested on:
Linux 2.2.x, Linux 2.4.x, NetBSD 1.5, OpenBSD 3.0
In the future want it to run on Windows, MacOS and others.
--- Server ---
The server needs to talk with the LCD display. At this time, it works
on very little more than on the Intel i386 (PC Compatible)
architecture. It has been sucessfully tested on:
Linux 2.2.x, Linux 2.4.x, NetBSD 1.5, OpenBSD 3.0
Here are some comments specific to each platform that LCDproc has been
tested on.
--- Linux ---
Nothing special to say, everything should go well.
You may be able to compile the server on something else than i386 if your
linux installation can emulate ioperm, inb and outb commands. I heared
that some Alpha do that.
You may not be able to compile all drivers on something else than i386
if your linux installation does not have ioperm, inb and outb commands.
I heared that some Alpha do that. You can leave all parallel port
drivers out and it should compile again.
--- NetBSD ---
You need to use GUN Make instead of NetBSD's make.
You can find a GNU Make binary package to use with pkg_add at:
ftp://ftp.netbsd.org/pub/NetBSD/packages/pkgsrc/devel/gmake/README.html
Or download the source code at:
http://www.gnu.org/software/make/make.html
You need to use GUN Make instead of NetBSD's make.
Remember to type gmake instead of make to compile LCDproc.
The server will probably only compile on NetBSD/i386.
If you try to run LCDd and you get this error:
Bus error (core dumped)
It is likely that you did not have the right permission to access the ports.
It is likely that you did not have the right permission to access the
ports.
Try starting the program as root.
As said ealier, the server should only compile on NetBSD/i386.
--- OpenBSD ---
You need to use GUN Make instead of OpenBSD's make.
You can find a GNU Make binary package to use with pkg_add at:
ftp://ftp.openbsd.org/pub/OpenBSD/3.0/packages/i386/
Or download the source code at:
http://www.gnu.org/software/make/make.html
As said ealier, the server should only compile on i386.
You need to use GUN Make instead of OpenBSD's make.
Remember to type gmake instead of make to compile LCDproc.
The server will probably only compile on NetBSD/i386.
--- FreeBSD ---
(not tested yet)
It will compile fine on i386.
--- Other platforms ---
If the build process fails, but you do know how to link a loadable
module by hand, you can add the appropriate flags etcetera into
acinclude.m4. Experience required. Please let us know if you got it
working on a previously unsupported system, so we can include it in a
next release.
-- RUNNING LCDPROC -----------------------------------------------------
@@ -152,20 +171,21 @@ to do.
If you're in the LCDproc source directory, and have just built it, run:
server/LCDd -c path/to/config/file
You can find out what drivers were compiled by running "LCDd -h".
Note that you cannot use more than one display driver at the same time.
For some extra options useful while testing things, try "LCDd -h".
For security reasons, LCDd only accept connections from the
localhost, it will not accept connections from other computers on
For security reasons, LCDd only accept connections from the
localhost, it will not accept connections from other computers on
the Internet. You can change this behavior in the configuration file.
--- Starting the client(s) ---
Then, you'll need some clients. LCDproc comes with one:
Then, you'll need some clients. LCDproc comes with a few, of which the
'lcdproc' client is the main client:
clients/lcdproc/lcdproc C M T X &
This will run the main LCDproc client, with the [C]pu, [M]emory,
[T]ime, and [X]load screens. The ampersand (&) puts it in the background.
This will run the LCDproc client, with the [C]pu, [M]emory,
[T]ime, and [X]load screens. The ampersand (&) puts it in the
background.
By default, the client tries to connect to a server located on localhost
and listening to port 13666. To change this, use the -s and -p options.
@@ -184,8 +204,8 @@ In Debian:
- Make a file "/etc/init.d/lcd" which works the same as the
other scripts in that directory. (it should accept "start"
and "stop" as parameters...)
- To start, run "LCDd" with any necessary parameters. It will
put itself in the background as a daemon.
- To start, run "LCDd" with any necessary parameters. If possible
it will put itself in the background as a daemon.
- Also in the "start" section, add "lcdproc" with some
parameters. Be sure to put a "&" on the end, or the system
will get stuck there when you boot.
@@ -194,17 +214,17 @@ In Debian:
started in the "start" section. They will shut down and exit.
I recommend killing the server after all the clients, but it
really doesn't matter much.
- Run (as root): update-rc.d lcd defaults
This will create symlinks to start and stop the daemon, resp.
from /etc/rc[2-5].d/S50lcd to /etc/init.d/lcd, and from
/etc/rc[016].d/K50lcd to /etc/init.d/lcd.
- Now, add symlinks from /etc/rc[2-5].d/S50lcd to /etc/init.d/lcd,
and be sure to get /etc/rc[06].d/K50lcd to /etc/init.d/lcd.
This will cause LCDproc to shut down when your system does.
That's all the distributions we've actually done this with so far..
That's all the OS`s we've actually done this with so far..
-- WEB SITE -------------------------------------------------------------
-- WEB SITE ------------------------------------------------------------
Visit http://lcdproc.omnipotent.net/ for the latest updates and news
for LCDproc. If you've got comments, suggestions, bug fixes, or
for LCDproc. If you've got comments, suggestions, bug fixes, or
problems (related to LCDproc, not women ;), send e-mail to either
William W. Ferrell (willfe@yahoo.com) or Scott Scriven
(toykeeper@cheerful.com).