summaryrefslogtreecommitdiff
path: root/INSTALL
blob: d20bf1a1317d17e529421d5defdbeb4b78b148fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
Installation of the Video Disk Recorder
---------------------------------------

Compiling and running the program:
----------------------------------

Make sure the files from this package are located in a
directory that is "parallel" to the DVB directory of the
driver source for the Siemens DVB-S PCI card (refer to
http://linuxtv.org/dvb/siemens_dvb.html for more information
about that driver). For example, if the DVB driver was 
extracted into the directory /home/kls/vdr/DVB, then this
package should be extracted into /home/kls/vdr/VDR.
If you have the DVB driver source in a different location
you will have to change the definition of DVBDIR in the
Makefile.

If you want to use your DVD drive you will need to compile VDR with

  make DVD=1

to activate DVD support. VDR then also needs the package 'libdvdread'
in order to replay DVDs. This package is expected to be located in the
directory ../DVD (seen from the VDR directory).  Adjust the definition
of DVDDIR in the Makefile if necessary.
You can find 'libdvdread' at

  http://www.dtek.chalmers.se/groups/dvd/downloads.shtml

If you want to replay CSS encrypted DVDs you also need to get the 'libdvdcss'
library from

  http://www.videolan.org/libdvdcss/download.html

VDR requires the Linux-DVB card driver version dated 2001-09-14 or higher
to work properly.

After extracting the package, change into the VDR directory
and type 'make'. This should produce an executable file
named 'vdr', which can be run after the DVB driver has been
installed.

IMPORTANT: See "Configuration files" below for information on how
=========  to set up the configuration files at the proper location!

The 'vdr' program can be controlled via the PC keyboard or
an infrared remote control unit. Define the REMOTE macro to one of the
following values 'make' call to activate the respective control mode:

  REMOTE=KBD    control via the PC keyboard (default)
  REMOTE=RCU    control via the "Remote Control Unit" receiver
                (see http://www.cadsoft.de/people/kls/vdr/remote.htm)
  REMOTE=LIRC   control via the "Linux Infrared Remote Control"
                (see http://www.lirc.org)
  REMOTE=NONE   no remote control (in case only SVDRP shall be used)

Adding "DEBUG_OSD=1" will use the PC screen (or current window)
to display texts instead of the DVB card's on-screen display
interface. These modes are useful when testing new menus if you
only have a remote connection to the VDR (which, in my case, is
located in the living room and has neither a monitor nor a keyboard).

If your video directory will be on a VFAT partition, add the compile
time switch

  VFAT=1

to the 'make' command.

When running, the 'vdr' program writes status information into the
system log file (/var/log/messages). You may want to watch these
messages (tail -f /var/log/mesages) to see if there are any problems.

The program can be controlled via a network connection to its SVDRP
port ("Simple Video Disk Recorder Protocol"). By default, it listens
on port 2001 (use the --port=PORT option to change this). For details
about the SVDRP syntax see the source file 'svdrp.c'.

WARNING: DUE TO THE OPEN SVDRP PORT THIS PROGRAM MAY CONSTITUTE A
=======  POTENTIAL SECURITY HAZARD! IF YOU ARE NOT RUNNING VDR IN
         A CONTROLLED ENVIRONMENT, YOU MAY WANT TO DISABLE SVDRP
         BY USING '--port=0'!

If the program shall run as a daemon, use the --daemon option. This
will completely detach it from the terminal and will continue as a
background process.

When starting the program through an entry in /etc/inittab, use the --terminal
option to set the controlling terminal, as in

vdr:123:respawn:/usr/local/bin/vdr --terminal=/dev/tty8 -w 60

Locale
------

When presenting the list of recordings, VDR sorts the entries according to
the current "locale" settings. This makes sure that special characters (like
the German "umlauts") appear at the expected positions. In order to benefit
from this you may have to set the locale environment variable, for instance

  export LANG=de_DE

for a German locale. If you don't want this to result in German error messages
in the log file, it is sufficient to just set

  export LC_COLLATE=de_DE

which only influences the way strings are sorted and leaves error messages
in English.

Automatic restart in case of hangups:
-------------------------------------

If you run VDR using the 'runvdr' shell script it will use the built-in
watchdog timer to restart the program in case something happens that
causes a program hangup. If you change the command line options for the
call to the VDR program, be sure to NOT use the '-d' option! Otherwise
VDR will go into 'deamon' mode and the initial program call will return
immediately!

Automatic shutdown:
-------------------

If you define a shutdown command via the '-s' command line option, VDR
will call the given command if there is currently no recording or replay
active, the user has been inactive for at least MinUserInactivity minutes
and the next timer event is at least MinEventTimeout minutes in the future
(see the Setup parameters in MANUAL).

The command given in the '-s' option will be called with five parameters.
The first one is the time (in UTC) of the next timer event (as a time_t
type number), and the second one is the number of seconds from the current
time until the next timer event. Your program can choose which one to use
for programming some sort of hardware device that makes sure the computer
will be restarted in time before the next timer event. Your program must
also initiate the actual shutdown procedure of the computer. After this
your program should return to VDR. VDR will not automatically exit after
calling the shutdown program, but will rather continue normally until it
receives a SIGTERM when the computer is actually shut down. So in case
the shutdown fails, or the shutdown program for some reason decides not to
perform a shutdown, VDR will stay up and running and will call the shutdown
program again after another MinUserInactivity minutes.

If there are currently no timers active, both parameters will be '0'.
In that case the program shall not set the hardware for automatic restart
and only perform the system shutdown. A program that uses the second parameter
to set the hardware for restart must therefore also check whether the first
parameter is '0'.

The third parameter contains the number of the channel that will be recorded
by the next timer (or 0 if no timer is present), and the fourth parameter
contains the file name of the recording as defined in the timer (or an empty
string if no timer is present). These can be used by the shutdown program to
show that information on some display interface etc.

The fifth parameter indicates the reason why the shutdown was requested.
'0' means this is an automatic shutdown due to some timeout, while '1' means
that this is a user requested shutdown (resulting from pressing the "Power"
key). The shutdown program may use this information to decide whether or
not to actually perform the system shutdown.

If a timer is currently recording, the parameters will reflect the start
time of that timer. This means that the first parameter will be a time in
the past, and the second parameter will be a negative number. This only
happens if the user presses the "Power" key while a timer is currently
recording.

Before the shutdown program is called, the user will be prompted to inform
him that the system is about to shut down. If any remote control key is
pressed while this prompt is visible, the shutdown will be cancelled (and
tried again after another MinUserInactivity minutes). The shutdown prompt
will be displayed for 5 minutes, which should be enough time for the user
to react.

A sample shell script to be used with the '-s' option might look like this:

#!/bin/sh
setRTCwakeup $(($1 - 300))
sudo halt

Here 'setRTCwakeup' would be some program that uses the first parameter
(which is the absolute time of the next timer event) to set the Real Time
Clock so that it wakes up the computer 5 minutes (i.e. 300 seconds) before
that event. The 'sudo halt' command then shuts down the computer.
You will have to substitute both commands with whatever applies to your
particular hard- and software environment.

If the '-s' option is present, the VDR machine can be turned off by pressing
the "Power" key on the remote control.

Executing commands before and after a recording:
------------------------------------------------

You can use the '-r' option to define a program or script that gets called
before and after a recording is performed, and after an editing process
has finished.

The program will be called with two string parameters. The first parameter
is one of

  before      if this is *before* a recording starts
  after       if this is *after* a recording has finished
  edited      if this is after a recording has been *edited*

and the second parameter contains the full name of the recording's
directory (which may not yet exists at that moment in the "before" case).
In the "edited" case it will be the name of the edited version.

Within this program you can do anything you would like to do before and/or
after a recording or after an editing process. However, the program must return
as soon as possible, because otherwise it will block further execution of VDR.
Be especially careful to make sure the program returns before the watchdog
timeout you may have set up with the '-w' option! If the operation you want to
perform will take longer, you will have to run it as a background job.

An example script for use with the '-r' option could look like this:

#!/bin/sh
case "$1" in
     before)
            echo "Before recording $2"
            ;;
     after)
            echo "After recording $2"
            ;;
     edited)
            echo "Edited recording $2"
            ;;
     *)
            echo "ERROR: unknown state: $1"
            ;;
     esac

Command line options:
---------------------

Use "vdr --help" for a list of available command line options.

Replaying Dolby Digital audio:
------------------------------

To replay Dolby Digital audio you need a program that reads the DD data
from stdin and processes it in a way suitable for your audio hardware.
This program must be given to VDR with the '-a' option, as in

  vdr -a ac3play

Accessing the DVD drive:
------------------------

By default VDR expects the DVD drive to be located at /dev/dvd (which
typically is a symbolic link to the actual device, for instance /dev/hdc).
You can use the '-V' option to overwrite this, as in

  vdr -V /media/dvd

Note that the user id under which VDR runs needs to have write access to
the DVD device in order to replay CSS protected DVDs (which also requires
the presence of the 'libdvdcss' library).

The video data directory:
-------------------------

All recordings are written into directories below "/video". Please
make sure this directory exists, and that the user who runs the 'vdr'
program has read and write access to that directory.
If you prefer a different location for your video files, you can use
the '-v' option to change that. Please make sure that the directory
name you use with '-v' is a clean and absolute path name (no '..' or
multiple slashes).

Note that the file system need not be 64-bit proof, since the 'vdr'
program splits video files into chunks of about 1GB. You should use
a disk with several gigabytes of free space. One GB can store roughly
half an hour of video data.

If you have more than one disk and don't want to combine them to form
one large logical volume, you can set up several video directories as
mount points for these disks. All of these directories must have the
same basic name and must end with a numeric part, which starts at 0 for
the main directory and has increasing values for the rest of the
directories. For example

   /video0
   /video1
   /video2

would be a setup with three directories. You can use more than one
numeric digit, and the directories need not be directly under '/':

   /mnt/MyVideos/vdr.00
   /mnt/MyVideos/vdr.01
   /mnt/MyVideos/vdr.02
   ...
   /mnt/MyVideos/vdr.11

would set up twelve disks (wow, what a machine that would be!).

To use such a multi directory setup, you need to add the '-v' option
with the name of the basic directory when running 'vdr':

   vdr -v /video0

Configuration files:
--------------------

There are three configuration files that hold information about
channels, remote control keys and timers. By default these files are
assumed to be located in the video directory, but a different directory
can be used with the '-c' option. For starters just copy all *.conf files from
the VDR directory into your video directory.

The configuration files can be edited with any text editor, or will be written
by the 'vdr' program if any changes are made inside the on-screen menus.
The meaning of the data entries may still vary in future releases, so for the
moment please look at the source code (config.c) to see the meaning of the
various fields.

The files that come with this package contain the author's selections,
so please make sure you adapt these to your personal taste. Also make sure
that the channels defined in 'channels.conf' are correct before attempting
to record anything. Channel parameters may vary and not all of the channels
listed in the default 'channels.conf' file have been verified by the author.

As a starting point you can copy the 'channels.conf' file that comes with the
VDR archive into your video directory (or into your config directory,
respectively, in case you have redirected it with the -c option).

Setting up DiSEqC:
------------------

If you are using a DVB-S card with a satellite equipment that needs to be
accessed using DiSEqC, you have to go to the "Setup" menu and set the "DiSEqC"
parameter to "on". Also check the "DiSEqC" parameters for the various channels
and set them to the necessary values.

Running VDR with DVB-C (cable):
-------------------------------

VDR automatically recognizes if the DVB card in use is a cable card.
The only things that needs to be different when using digital cable
is the 'channels.conf' file. The distribution archive contains a default
'channels.conf.cable', which cable users can rename or copy to 'channels.conf'
in order to receive cable channels. The format of this file is exactly the
same as for satellite channels (the fields containing "Polarization" and
"Diseqc" data are ignored in case of DVB-C).

Learning the remote control keys:
---------------------------------

There is no default 'keys.conf' file, so if you compile the program
with 'REMOTE=RCU' you will have to go through a "teach-in"
session that allows the program to learn your remote control codes.
It will first attempt to determine the basic data transfer mode and
timing of your remote control unit, and then will ask you to press one
key after the other so that it can learn the various key codes. You will
at least need to provide an "Up" and a "Down" key, so that you can switch
channels. The rest of the key definitions is optional, but the more keys
you define, the more you will be able to navigate through the menus and
control recording/replaying. The program uses only a very small number
of keys which have multiple meanings in the various modes (see MANUAL
for a detailed description).
If the program has been built with "REMOTE=KBD", it will use the
key configuration file 'keys-pc.conf', so that you won't loose data
when switching between remote control and keyboard mode.

The default PC key assignments are:

  Up, Down, Left, Right     Crsr keys in numeric block
  Menu                      'Home' in numeric block
  Ok                        '5' in numeric block
  Back                      'End' in numeric block
  Red, Green, Yellow, Blue  'F1'..'F4'
  0..9                      '0'..'9' in top row
  Power                     'P'
  Volume+/-                 '+', '-'
  Mute                      'm'

If you prefer different key assignments, or if the default doesn't work for
your keyboard, simply delete the file 'keys-pc.conf' and restart 'vdr' to get
into learning mode.

If the program has been compiled with 'REMOTE=LIRC', no 'keys.conf' file
will be used. Instead, the key names as listed in the source file 'config.c'
must be used when setting up LIRC. See http://www.lirc.org for more about LIRC.