Control-plugin
Aus VDR Wiki
(Unterschied zwischen Versionen)
Wirbel (Diskussion | Beiträge) (→Aktuelle Version(en)) |
Wirbel (Diskussion | Beiträge) (→Aktuelle Version(en)) |
||
Zeile 94: | Zeile 94: | ||
<!-- ===Snapshot=== --> | <!-- ===Snapshot=== --> | ||
− | ==Aktuelle Version | + | ==Aktuelle Version== |
[http://www.u32.de/vdr.html#control Version für vdr 1.4.7 und 1.6.0] | [http://www.u32.de/vdr.html#control Version für vdr 1.4.7 und 1.6.0] | ||
[http://www.vdr-portal.de/board1-news/board101-news-archiv/114203-vdr-control-ohne-absturz-beenden empfohlener Patch] | [http://www.vdr-portal.de/board1-news/board101-news-archiv/114203-vdr-control-ohne-absturz-beenden empfohlener Patch] |
Version vom 5. August 2013, 17:53 Uhr
Inhaltsverzeichnis |
Beschreibung
Autor: Jan Rieger
Stellt das OSD in einer Telnet-Session dar. Damit kann der VDR von jedem telnet-fähigen Rechner aus ferngesteuert werden.
Patch gegen Absturz beim Beenden des VDR
[Link]
diff -Nru control-0.0.2a-kw3/control.c control-0.0.2a-kw3_0/control.c --- control-0.0.2a-kw3/control.c 2008-09-26 16:19:29.000000000 +0200 +++ control-0.0.2a-kw3_0/control.c 2012-08-04 12:17:08.000000000 +0200 @@ -32,6 +32,7 @@ class cPluginControl : public cPlugin { private: // Add any member variables or functions you may need here. + cCtrlState* _pState; cCtrlGateways* _pReceivers; cCtrlGateway* _pTerminal; @@ -67,6 +68,7 @@ cPluginControl::~cPluginControl() { // Clean up after yourself! + delete(_pState); delete(_pReceivers); delete(_pTerminal); } @@ -120,7 +122,7 @@ // Start any background activities the plugin shall perform. if (glParPort || glParTerminal && *glParTerminal) - new cCtrlState(); + _pState = new cCtrlState(); if (glParPort) { _pReceivers = new cCtrlGateways();
Bilder
Softwareanforderungen
- telnet (Aufruf z. B.: telnet localhost 2002) oder jedes andere telnet-fähige Programm, z. B. PuTTY.
Installation
Das Kompilieren und Installieren erfolgt auf den üblichen Weg der Plugin Installation.
Patches
- vdr >= 1.3.18
Konfiguration
svdrphosts.conf
Es muss noch in der Datei $VDRCONFIG/svdrphosts.conf der Rechner oder das Subnetz freigeschaltet werden, von dem aus die Telnet-Session eröffnet werden soll, z. B. durch Einfügen von 192.168.0.76 für einen Rechner mit dieser IP. Andernfalls erscheint lediglich die Meldung "access denied" im Telnet-Client.
Parameter
Parameter (kurz) | Parameter (lang) | Beschreibung |
---|---|---|
-t <TTY> | --terminal=<TTY> | VDR über ein virtuelles Terminal steuern (Standard: keins) |
-p <PORT> | --port=<PORT> | TCP-Port auf dem die Verbindungen ankommen sollen (Standard: 2002) |
Sonstiges
Probleme
- Speicherzugriffsfehler beim Beenden einer Session
- Beendet man die Sitzung per Ctrl+C, stürzt VDR nach der nächsten OSD-Aktion mit einem Speicherzugriffsfehler ab (weil ein Thread hart beendet wurde, und bei der nächsten OSD-Aktion wird ein nicht mehr existierendes Objekt aufgerufen).
- Beendet man die Sitzung hart durch Beenden des Telnet-Programms, bleibt die Verbindung formal bestehen, es kommt also 'nur' zu einer Endlosschleife, so daß die CPU-Last des zugehörigen VDR-Prozesses auf knapp 100% ansteigt.
- Siehe Sauberes Beenden einer "Control-plugin"-Telnet-Session ?. Eine von diesen Problemen bereinigte Pluginversion findet sich unten unter "Links"
Tipps
- Zugriff mit PuTTY
- Beim Zugriff auf die Konsole mittels PuTTY muss beachtet werden, dass die Funktionstasten im Linux-Format gesendet werden. Die benötigten Einstellungen finden sich im Konfigurationsdialog der Verbindung unter Terminal -> Keyboard und dort "The Function keys and keypad" auf "Linux" stellen.
- Wenn man normale Kommandos von einer Shell aus (also ohne SVDRP) an den vdr senden will, kann man cat > /proc/`pidof vdr`/fd/0 verwenden. Siehe auch Artikel im englischen VDRWiki
Aktuelle Version
Version für vdr 1.4.7 und 1.6.0 empfohlener Patch
Links
- Homepage des Plugins
- Bereinigte Version der Plugins für vdr 1.4.7 und 1.6.0