-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathINSTALL
300 lines (221 loc) · 10.9 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
-- REALLY-QUICK START --------------------------------------------------
If you're in a desperate hurry type:
./configure --enable-drivers=all
make
And if you start wondering why it doesn't work, come back and read the
rest of the file. 8)
-- PREREQUISITES -----------------------------------------------------
First read the README if you haven't already.
Please take a few minutes to read the user guide located at
http://lcdproc.sourceforge.net/docs/
For the details on supported platforms, see the PLATFORM SPECIFIC section
of this file.
In order to compile LCDproc, you'll need the following programs:
* A C compiler which supports C99, we recommend GCC. Most Linux or BSD systems
come with GCC.
* 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. They are only required
if you want to build LCdproc directory from CVS.
The GNU autotools are available for all major distributions. If you want
to compile them yourself, see
http://www.gnu.org/software/autoconf/ and
http://www.gnu.org/software/automake/.
Depending on the ./configure options and your choice of drivers, you will
need some additional programs or libraries installed:
* DocBook XML converter "xmlto" if you want to create the documentation
or Doxygen when used with --enable-doxygen, also see
http://cyberelk.net/tim/software/xmlto/ and
http://www.stack.nl/~dimitri/doxygen/
* libusb if you --enable-libusb, see http://libusb.sourceforge.net/
* G15daemon, libg15 and libg15render (>= 1.1.1) for use with the 'g15' driver,
see http://www.g15tools.com/
* GraphLCD and GLCDprocDriver for use with the 'glcdlib' driver, see
http://projects.vdr-developer.org/projects/graphlcd/ and
http://lucianm.github.com/GLCDprocDriver/
* libirman for use with the 'irman' driver, see
http://www.evation.com/libirman/libirman.html for the home page and
http://www.lirc.org/software/snapshots/ for current downloads
* LIRC for use with the 'lirc' driver, see http://www.lirc.org/
* ncurses for use with the 'curses' driver, see
http://www.gnu.org/software/ncurses/
* svgalib for use with the 'svga' driver, see http://www.svgalib.org/
* libftdi and libusb for use with the 'ula200', 'lis', and 'i2500vfd' driver,
see http://www.intra2net.com/en/developer/libftdi/ and
http://libusb.sourceforge.net/
* XOSD for use with the 'xosd' driver, see http://sourceforge.net/projects/libxosd/ ,
as well as an x11 implementation, more precisely libX11 and libXext.
-- DISPLAYS -----------------------------------------------------------
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.
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 information. 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
information:
HD44780 and compatible:
read the HD44780 section in the LCDproc User's Guide (docs/lcdproc-user)
or alternatively see http://www.robijn.net/lcdproc/
If you still have problems you could 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
http://lcdproc.org/hardware.php3 for details. Several
different types of displays are now supported.
-- BUILDING LCDPROC -------------------------------------------------
--- Preparing a CVS distro ---
If you retrieved these files from the CVS, you will first need to run:
sh ./autogen.sh
--- Configuration ---
The simplest way of doing it is with:
./configure
But it may not do what you want, so please take a few seconds to type:
./configure --help
And read the available options, especially --enable-drivers
--- Compilation ---
Run make to build the server and all clients
make
If you only want to compile the clients, you can omit to compile the
server:
make clients
Similarly, if you only want to compile the server, you can omit to
compile the clients:
make server
Depending on your system, LCDproc will build in a few seconds to a
few minutes. It's not very big.
If you want to, you can install it (if you're root) by typing:
make install
This will install the binaries and the man pages in the directory you
specified in configure.
You may have to copy the configuration file (LCDd.conf) to /etc
(or /usr/local/etc) manually.
-- CREATING DISTRIBUTION SPECIFIC PACKAGES --------------------------
Instead of manually configuring, compiling and installing LCDproc you
may use the support files in the LCDproc source tree to create an
installation package specific to your distribution
Debian:
- Rename the .tgz file with the sources to lcdproc_VERSION.orig.tar.gz
cp lcdproc-VERSION.tgz lcdproc_VERSION.orig.tar.gz
- Extract the source tar ball
tar xvzf lcdproc_VERSION.orig.tar.gz
- Copy the debian/ directory below scripts/ to the root of the
source tree
cp -a lcdproc-VERSION/scripts/debian lcdproc-VERSION/
- Generate .deb debian package
cd lcdproc-VERSION/
dpkg-buildpackage -rfakeroot -sd
cd ..
This creates a file named lcdproc_VERSION-RELEASE_ARCH.deb
that contains the LCDproc suite as a regular Debian package.
-- PLATFORM SPECIFIC ------------------------------------------------
The lcdproc crew has tried to support a number of platforms. Platforms
that are very non-standard are not and probably will never be supported.
Both, the server with its drivers and the clients, have their own
difficulties in porting. Here's are the prerequisites for both:
--- Client ---
The client should run on any POSIX compliant system.
It has been successfully tested on:
Linux 2.2.x - 2.6.x, FreeBSD 6.x - 8.1, NetBSD 1.5 & 3.x, OpenBSD 3.0,
Darwin, Solaris and MacOS.
--- Server ---
The server needs to talk to the LCD display. At this time, it works
on very little more than on the Intel i386 (PC Compatible)
architecture. It has been successfully tested on:
Linux 2.2.x - 2.6.x, FreeBSD 6.x - 8.1, NetBSD 1.5 & 3.x, OpenBSD 3.0,
Darwin, Solaris and MacOS.
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 not be able to compile all drivers on something else than i386
if your linux installation does not have ioperm, inb and outb commands.
./configure should leave all drivers that need those functions out
(drivers for parallel port displays), so that LCDd should compile anyway.
--- NetBSD ---
You need to use GNU 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.
Try starting the program as root.
--- OpenBSD ---
You need to use GNU Make instead of OpenBSD's make.
Remember to type gmake instead of make to compile LCDproc.
The server will probably only compile on OpenBSD/i386.
--- FreeBSD ---
It should compile fine on i386. Must be started as root to be able to use
parallel and USB ports.
--- 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 et cetera 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 -----------------------------------------------------
--- Configuration file ---
The first thing that you need to do is to modify the configuration file
for your server. A example file (LCDd.conf) is available in the tarball.
The comments present in this file should give you indications on what
to do.
--- Starting the server ---
If you're in the LCDproc source directory, and have just built it, run:
server/LCDd -c path/to/config/file
For security reasons, LCDd by default only accepts connections from
localhost (127.0.0.1), it will not accept connections from other computers on
your network / the Internet. You can change this behaviour in the
configuration file.
--- Starting the client(s) ---
Then, you'll need some clients. LCDproc comes with a few, of which the
'lcdproc' client is the main client:
clients/lcdproc/lcdproc -f C M T L
This will run the LCDproc client, with the [C]pu, [M]emory,
[T]ime, and [L]oad screens. The option "-f" causes it not to daemonize,
but run in the foreground.
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.
-- PUTTING LCDPROC IN SYSTEM STARTUP -----------------------------------
It's nice to have LCDproc start when the computer boots, so here's how
to do it:
WARNING: Make sure you have modified the configuration file (/etc/LCDd.conf)
so that LCDd enters the background mode.
Otherwise LCDd will lock your system.
Slackware:
Add lines to your /etc/rc.d/rc.local, such as the following:
echo "Starting LCDd..."
/usr/local/sbin/LCDd -c /etc/LCDd.conf
echo "Starting lcdproc..."
/usr/local/bin/lcdproc C M X &
Debian: (the hard way)
- Copy (as root) the debian init script from the scripts/ directory of the
sources to /etc/init.d
(cp scripts/init-LCDd.debian /etc/init.d/LCDd && \
cp scripts/init-lcdproc.debian /etc/init.d/lcdproc)
- Run (as root): update-rc.d LCDd defaults
This will create symlinks to start and stop the daemon, resp.
from /etc/rc[2-5].d/S50LCDd to /etc/init.d/LCDd, and from
/etc/rc[016].d/K50LCDd to /etc/init.d/LCDd.
- Run (as root): update-rc.d lcdproc defaults
This will create symlinks to start and stop the lcdproc client, resp.
from /etc/rc[2-5].d/S50lcdproc to /etc/init.d/lcdproc, and from
/etc/rc[016].d/K50lcdproc to /etc/init.d/lcdproc.
Debian: (the easy way)
- Install the previously created .deb package (as root)
dpkg -i lcdproc_VERSION-RELEASE_ARCH.deb
Redhat / Mandrake:
- Copy the scripts:
cp scripts/init-lcdd.rpm /etc/rc.d/init.d/lcdd && \
cp scripts/init-lcdproc.rpm /etc/rc.d/init.d/lcdproc)
- enable the scripts with e.g. linuxconf or create the symlinks manually
FreeBSD:
- If you install from the ports collection startup script are
installed by default.
That's all the OS's we've actually done this with so far.