summaryrefslogtreecommitdiff
path: root/README.de
blob: b936de96ac97213adf4a2940c57633a08ccca5e5 (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
        
                       runvdr extreme


Geschrieben von:          Udo Richter <udo_richter(a)gmx.de>
Projekt Homepage:         http://www.udo-richter.de/vdr/scripts.html#runvdr
Siehe Datei COPYING für Lizenz-Informationen



Über
--------------------------------------------------------------------------
runvdr extreme ist ein runvdr-Skript, genau wie das runvdr-Skript aus
der VDR-Distribution. Es ist nur rund 17 mal größer.

Einige der Features von runvdr extreme:

- Lädt die Grundkonfiguration aus runvdr.conf
- Die gesamte Konfiguration kann per Kommandozeile gesetzt werden
- Alle VDR-Optionen werden unterstützt
- Verwaltet runvdr.pid Datei, reagiert auf Signale
- Startet VDR im Falle von Fehlern neu
- Kommandos, um VDR neu zu starten und DVB-Treiber neu zu laden
- Beim VDR-Neustart wird die Konfiguration erneut gelesen
- Vermeidet endlose Schleifen, wenn VDR sofort stirbt
- Setzt Terminal zurück nachdem VDR beendet wurde
- Starten von Wrapper-Programmen zum Debuggen
- Wartet bis der VDR-Prozess beendet wurde, 
  hartes Beenden nach Timeout
- Kommandozeilenhilfe
- Kann Konsole umschalten
- Kann Landessprache für VDR setzen
- Unterstützt Pluginsetup-Plugin optional

Dazu kommt runvdr-conf.d:

- Lädt Konfigurationsdateien alphabetisch aus einem Verzeichnis, 
  vergleichbar mit init.d-Verzeichnissen.
- Kommandozeilentool zum Aktivieren/Deaktivieren von Plugins
- Festlegen der Ladereihenfolge
- Optional: Menüsteuerung per osdserver-Plugin



Schnellstart
--------------------------------------------------------------------------
- Kopiere runvdr nach /usr/local/bin/ oder wo-auch-immer-du-magst
- Kopiere runvdr.conf.example nach /etc/runvdr.conf, wenn runvdr als 
  Server laufen soll, oder nach ~/.runvdr.conf, wenn runvdr durch
  einen Benutzer gestartet werden soll.
- Bearbeite /etc/runvdr.conf nach deinem Bedarf

Die runvdr.conf ist größtenteils selbsterklärend. Alle Optionen sind auch
per Kommandozeile verfügbar, siehe runvdr --help.

Für das init-Skript (Debian):
- Kopiere init.d.runvdr.Debian nach /etc/init.d/runvdr
- Benutze update-rc.d um die Start-Runlevel zu konfigurieren.

Für runvdr-conf.d:
- Kopiere runvdr-conf.d nach /usr/local/bin/
- /etc/runvdr/ anlegen und mit Dateien nach Vorbild der skeleton.example
  füllen
- INCLUDE /etc/runvdr/conf.d/* in runvdr.conf aufnehmen
- runvdr-conf.d show|enable|disable zum Konfigurieren der Plugins verwenden
- (Optional) "runvdr-conf.d osdserver" in commands.conf hinzufügen.



Details
--------------------------------------------------------------------------

Die Optionen werden in dieser Reihenfolge ausgewertet:

1. Kommandozeilenoptionen haben höchste Priorität.
2. runvdr.conf auf Kommandozeile mit -C oder --runvdr-conf angegeben
3. Wenn kein -C und kein --runvdr-conf angegeben, benutze ~/.runvdr.conf
4. Wenn kein -C und kein --runvdr-conf un kein ~/.runvdr.conf, benutze 
   /etc/runvdr.conf
5. Wenn keine der obigen Dateien existiert, benutze runvdr-Defaults

Nur eine runvdr.conf wird normalerweise geladen, und nur eine -C Option
wird ausgewertet. Man kann aber den Inhalt einer runvdr.conf in einer anderen
runvdr.conf laden, wenn man die INCLUDE-Direktive verwendet. Man kann zum 
Beispiel /etc/runvdr.conf aus der Datei ~/.runvdr.conf heraus laden, um 
für den aktuellen Benutzer einige Einstellungen zu überschreiben.

Die INCLUDE-Direktive kann auch mehrere Konfigurationsdateien laden. So kann
man z.B. mit INCLUDE /etc/runvdr/conf.d/* ein ganzes Verzeichnis von
Konfigurationsdateien laden. Beispielsweise könnten in so einem Verzeichnis
für jedes zu ladende Plugin eine Datei (oder Symlink) mit dem Einzeiler 
"AddPlugin xxx" liegen.

Plugins, die durch die AddPlugin-Direktive in der conf-Datei oder die
--plugin oder -P Option geladen werden, können von der Plugin-Liste wieder
entfernt werden, wenn man "AddPlugin -name", --plugin="-name" oder -P-name
verwendet. Der name-Teil wird dabei als Muster für den Anfangsteil des Plugin-
Namens verwendet, alle Plugins, die auf "name*" passen, werden entfernt.
Insbesondere hebt "AddPlugin -" und -P- die gesamte bisherige Plugin-Liste 
auf. Der selbe Mechanismus funktioniert auch beim -D Device-Parameter.

Um Parameter an VDR direkt weiter zu geben, ohne dass runvdr sie 
interpretiert, kann -- als Parameter angegeben werden. Alle Parameter nach 
-- werden unverändert an VDR weiter gegeben. So gibt "runvdr -- --help" 
die Hilfestellung von VDR aus, und nicht die Hilfestellung von runvdr.



runvdr-conf.d
--------------------------------------------------------------------------

Mit runvdr-conf.d steht ein (optionales) Tool zur Verfügung, das das 
Verwalten der Plugins erleichtern soll. Es funktioniert nach dem init.d
Prinzip, bei dem in einem Verzeichnis mehrere symbolische Links auf Dateien
abgelegt werden, die in alphabetischer Reihenfolge abgearbeitet werden.

Im Falle von runvdr-conf.d legt man pro zu ladendem Plugin eine eigene
Konfigurationsdatei nach Vorbild der skeleton.example in /etc/runvdr/ ab.
Geladen werden Plugins, deren symbolischer Link unter /etc/runvdr/conf.d
liegt. Dazu muss in der runvdr.conf die passende INCLUDE-Zeile aktiviert 
werden.

Folgende Befehle stehen zur Verfügung, um die aktiven Plugins zu verwalten:

runvdr-conf.d show [name]
  Zeigt alle Plugins bzw. ein Plugin an, inklusive Name und Ladepriorität. 
  'name' ist der Dateiname im Verzeichnis /etc/runvdr/.

runvdr-conf.d enable name [--prio XX]
  Aktiviere Plugin für nächsten Neustart. Verwendet Default-Priorität oder
  die angegebene Priorität. Dazu wird ein symbolischer Link auf die Datei
  /etc/runvdr/name unter /etc/runvdr/conf.d/XXname abgelegt.

runvdr-conf.d disable name
  Deaktiviert ein Plugin ab dem nächsten Neustart, d.h. löscht den Link
  unter /etc/runvdr/conf.d/XXname.

runvdr-conf.d osdserver [--debug]
  Verbindet mit OSD-Server Plugin und erlaubt das Konfigurieren der Plugins
  per VDR OSD. Von dort können Plugins aktiviert und deaktivert werden, und
  die Ladepriorität gesetzt werden.
  Ohne --debug kehrt runvdr-conf.d sofort zurück und trennt sich von der 
  Standard-Ein/Ausgabe, kann also von der commands.conf direkt aufgerufen
  werden. Mit --debug wird die OSD-Server Kommunikation ausgegeben.



Voraussetzungen
--------------------------------------------------------------------------
Unix-Kommandos, die runvdr benutzt:

Kommando      Debian-Paket
 pgrep         procps
 ps            procps
 kill          procps
 sleep         coreutils
 date          coreutils
 chvt          console-tools
 getopt        util-linux
 setterm       util-linux



Beispiele
--------------------------------------------------------------------------
Wenn die Standardeinstellungen in /etc/runvdr.conf vorgenommen sind, hier
ein paar coole Dinge, die man tun kann:


Starte VDR im Hintergrund (zum Beispiel mit TERMINAL=/dev/tty8 in conf-Datei):

  runvdr &

Stoppe VDR und das runvdr-Skript:

  runvdr --terminate

Dito, aber warte bis VDR beendet ist:

  runvdr --terminate --wait

Starte den bereits laufenden VDR-Prozess neu, weil er hängt, oder
weil die runvdr.conf geändert wurde:

  runvdr --restart

Dito, aber lade auch die DVB-Treiber neu:

  runvdr --dvb-restart

Benutze den frich neu übersetzten VDR zum ersten mal:

  runvdr --vdr=/usr/src/vdr-1.5.0/vdr --lib=/usr/src/vdr-1.5.0/PLUGINS/lib

Zum Debuggen, starte VDR ohne Terminalumlenkung:

  runvdr --terminal="" --switchterminal=""

Lade alle Plugins, und zusätzlich das hello-Plugin:

  runvdr -P hello

Lade nur das hello-Plugin:

  runvdr -P- -P hello

Lade alle Plugins, aber nicht das hello-Plugin:

  runvdr -P-hello

Starte einen Testlauf von runvdr, um zu sehen was passiert:

  runvdr --wrapper=echo
  
Starte eine Debugging-Session:

  runvdr --wrapper="gdb --args"
  
Starte mit einer komplett abweichenden Konfiguration:

  runvdr --runvdr-conf="/etc/runvdr-debugging.conf"