VDRAdmin-AM unter Windows
Aus open7x0.org
Inhaltsverzeichnis
|
VDRAdmin-AM unter Windows mit cygwin
VDRAdmin ist eine Sammlung von Perl-Skripten, über die man einen VDR administrieren kann. Die Kommunikation mit den VDR läuft über das SVDRP-Protokoll. Da das Ganze für Linux ausgelegt ist und unsere kleine Box etwas zu schwach ist, bleibt für den Einsatz unter Windows als Ausweg cygwin.
Der erste Schritt für VDRAdmin unter Windows ist also die Einrichtung von cygwin:
Den Installer gibt es hier: http://www.cygwin.com/. Das ist nur ein kleines setup-Programm, das die gewünschten Pakete aus dem Internet nachlädt. Die heruntergeladenen Pakete werden automatisch auch lokal gespeichert, sodaß man bei einer nochmaligen Installation auch auf das so aufgebaute lokale Repository zurückgreifen kann. Setup.exe sollte man sich in irgendeinen Ordner sichern, ich nehme jetzt einfach mal C:\Install\cygwin\.
Starte setup.exe, es erscheint ein Begrüßungsfenster -> Weiter
Defaulteinstellung ist "Install from Internet" -> Weiter
Zielverzeichnis (Root Directory) C:\programme\cygwin, den Rest auch auf default lassen -> Weiter
"Local Package Directory" ist per default das Verzeichnis, in dem setup.exe gestartet wurde -> Weiter
Internet Verbindung ist in der Regel "Direct Connection", ansonsten ist der Proxy zu konfigurieren -> Weiter
Aus der Liste der Download Sites habe ich "ftp://ftp.gwdg.de" gewählt -> Weiter
Es wird die Liste der verfügbaren Pakete runtergeladen. Zusätzlich zum Default sind noch die folgenden Pakete auszuwählen (die automatisch durch Abhängigkeiten zusätzlichen Pakete führe ich nicht auf):
- Devel: make
- Net: openssh (nur, wenn VDRAdmin später als Dienst laufen soll, was aber zu empfehlen ist)
- Perl: perl
Es werden dann alle Pakete heruntergeladen und anschließend installiert. Am Ende sollte man sich dann noch eine Verknüpfung im Startmenü erzeugen lassen, ich persönlich mag mir nicht meinen Desktop zupflastern lassen -> Fertig stellen
Beim ersten Start der "Cygwin Bash Shell" werden noch das Homeverzeichnis und ein paar Konfigurationsfiles für den angemeldeten Benutzer angelegt.
Jetzt fehlt perl noch ein vom VDRAdmin benötigtes Modul (Locale::Messages), das so leider nicht in cygwin enthalten ist und separat heruntergeladen und installiert werden muß. Man bekommt es im "Comprehensive Perl Archive Network" (http://www.cpan.org/), hier der direkte Link:
http://search.cpan.org/CPAN/authors/id/G/GU/GUIDO/libintl-perl-1.16.tar.gz
Ansonsten kann man es auch auf http://search.cpan.org/ über die Suche nach "locale messages" finden.
Das Archiv dann im Homeverzeichnis unter cygwin (C:\programme\cygwin\home\<Benutzername>) speichern und auf der "Cygwin Bash Shell" auspacken und installieren:
$ tar xzvf libintl-perl-1.16.tar.gz $ cd libintl-perl-1.16 $ perl Makefile.PL (Warnung kann ignoriert werden) $ make $ make install
Damit ist die cygwin-Umgebung nun bereit für den VDRAdmin-AM:
Das Paket gibt es hier: http://andreas.vdr-developer.org/. Aktuell ist die Version 3.5.3, die man sich am besten wieder ins Homeverzeichnis speichert. Auf der cygwin shell packt man das File dann aus und installiert den VDRAdmin:
$ tar xjvf vdradmin-am-3.5.3.tar.bz2 $ cd vdradmin-am-3.5.3 $ ./make.sh install ********* Installing VDRAdmin-AM ************* *** Required *** Checking for Perl module Template... found Checking for Perl module Compress::Zlib... found Checking for Perl module CGI... found Checking for Perl module IO::Socket... found Checking for Perl module Time::Local... found Checking for Perl module MIME::Base64... found Checking for Perl module File::Temp... found Checking for Perl module URI::Escape... found You need Locale::gettext OR Locale::Messages Checking for Perl module Locale::gettext or Locale::Messages... Locale::Messages found *** Optional *** * Required for AutoTimer email notification Checking for Perl module Net::SMTP... found Checking for Perl module Authen::SASL... MISSING Do you want to install Authen::SASL? [y/N] * Required for AutoTimer email notification and CRAM-MD5 authentication Checking for Perl module Digest::HMAC_MD5... MISSING Do you want to install Digest::HMAC_MD5? [y/N] Configuring VDRAdmin-AM... What's your VDR hostname (e.g video.intra.net)? [localhost]: m740 On which port does VDR listen to SVDRP queries? [2001]: On which address should VDRAdmin-AM listen (0.0.0.0 for any)? [0.0.0.0]: On which port should VDRAdmin-AM listen? [8001]: Username? [linvdr]: m740 Password? [linvdr]: m740 Where are your recordings stored? [/video]: /usb1/vdr/rec Where are your VDR's configuration files located? [/video]: /usb1/vdr/conf-XXX Config file written successfully. VDRAdmin-AM has been installed! Run "/usr/bin/vdradmind.pl" to start VDRAdmin-AM. NOTE: If you want to run VDRAdmin-AM in a different language you must set the LANG environment variable (see README). NOTE2: If you would like VDRAdmin-AM to start at system's boot, please modify your system's init scripts.
Der angegebene "VDR hostname" muß natürlich zu einer IP aufgelöst werden können, alternativ sollte man auch einfach direkt die IP-Adresse angeben dürfen.
Jetzt kann man schon mal in der shell starten und nachsehen, ob soweit alles passt:
$ vdradmind.pl vdradmind.pl 3.5.3 started with pid 3092.
Mit dem Browser geht man dann auf "http://localhost:8001", Benutzername und Passwort wurden ja bei der Installation vergeben (hier m740/m740).
Wenn alles zur Zufriedenheit funktioniert, kann man den VDRAdmin wieder stoppen, um die Einrichtung als Dienst anzugehen:
$ vdradmind.pl -k
Damit der Dienst, der unter einem Systemkonto läuft, temporäre Dateien schreiben kann, muß noch die Berechtigung eines Verzeichnisses und der darin enthaltenen Dateien geändert werden:
$ chmod 777 /tmp/usr/share/vdradmin/template/default $ chmod 666 /tmp/usr/share/vdradmin/template/default/*
Dann wird der Dienst eingerichtet und gestartet:
$ cygrunsrv --install VDRAdmin-AM --path /usr/bin/vdradmind.pl --args --nofork $ cygrunsrv --start VDRAdmin-AM
Dann in cygwin abmelden mit "exit" und wieder den Browser aufrufen. Der Browserzugriff sollte dann jetzt auch von einem externen Rechner aus funktionieren, selbst wenn am VDRAdmin-PC niemand angemeldet ist.
Zwei kleine Einstellungstips noch (Seite "Configuration"):
- Unter "General Settings" den Parameter "Local net (no login required):" auf "127.0.0.1/32" setzen - damit entfällt die Passwortabfrage, wenn Browser und VDRAdmin auf demselben Rechner laufen.
- Unter "VDR" "Number of DVB cards:" auf "2" setzen (sofern man eine M740 AV hat, bei der SAT-Variante stimmt die voreingestellte "1"), sonst werden Timerkonflikte angezeigt, wenn keine existieren.
VDRAdmin-AM unter Windows mit ActivePerl
Von der Firma ActiveState wird ein Perl angeboten, welches naiv (also ohne Umwege über cygwin) unter Windows läuft: ActivePerl. Der VDRAdmin-AM läuft mit minimalen Änderungen auch mit dieser Version von Perl. Diese How-To beschreibt, wie ActivePerl und VDRAdmin-AM installiert und eingerichtet werden. Es sind sehr geringe Vorkenntnisse nötig, Zeitaufwand schätzt der Autor auf evt. 10 Minuten (abhängig von der Geschwindigkeit des Internetzugangs, das lesen dieses Howtos wird davon nicht abgedeckt ;)
Im folgenden wird davon ausgegangen, dass der VDRAdmin-AM bereits geladen und entpackt (zB mit 7-Zip) wurde. Getestet wurde das ganze unter Windows-XP, bei anderen Windows-Versionen ausser Vista sollte der Vorgang ähnlich ablaufen.
ActivePerl installieren
Zunächst muss ActivePerl von den Seiten von ActiveState geladen werden. Die URL dazu ist http://www.activestate.com/Products/ActivePerl/. Auch wenn die Seite anders anmutet, läßt sich die Download-Version von ActivePerl kostenlos, mit Sourcen und ohne Angabe von persönlichen Daten laden. Benötigt wird das MSI-Paket von ActivePerl 5.8.
Installiert wird ActivePerl wie jede andere Software für Windows auch durch einen Doppelklick, anschliessendem abnicken der Lizenz und Auswahl des Installationsordners und der zu installierenden Optionen. Im Zweifelsfall einfach die Vorgaben übernehmen. Die Installation dauert nur einen Moment. Ein Neustart o.Ä. ist nicht nötig.
Benötigte Module installieren
Für VDRAdmin-AM werden mehrer Module benötigt, von denen aber bis auf eines alle bereits in der default-Installation enthalten sind. Zum Nachinstallieren wird bei ActivePerl der ppm (Perl Package Manager) mitinstalliert. Diesen bitte aus dem Startmenü starten.
Als Filter wird in das Eingabefeld libintl eingeben und dann links davon auf den Button View all packages geklickt. Zur Auswahl sollte dann nur ein Package stehen. Dieses bitte mit der rechten Maustaste anklicken und install libintl-perl 1.16 auswählen (die Versionsnummer kann sich mit der Zeit ändern).
Jetzt ist das Package nur zur Installtion vorgemerkt. Die eingentlich Installation wird über den Button Run marked actions rechts vom Eingabefeld gestartet (der Button mit dem grünen Pfeil nach rechts). Die Sicherheitsabfrage mit Ok beantworten und schon gehts los. Der PPM lädt automatisch die benötigenten Dateien aus dem Internet und speichert sie an der benötigten Stelle.
VDRAdmin-AM anpassen
Perl ist jetzt fertig konfiguriert. Nun muss VDRAdmin-AM an Windows angepasst werden. Die Änderungen stehen auch als Download zur Verfügung. Nachteil ist aber, dass der nicht geneigte Leser auf die Version beschränkt ist, die der Autor dieses How-Tos zur Verfügung stellt, während der Leser, der selbst Hand anlegt, auch (wahrscheinlich) jede neuere Version anpassen kann. Die Änderungen sind glücklicherweise sehr simpel.
TMP-Ordner ändern
VDRAdmin-AM verwendet als Speicherort für die temporären Dateien immer /tmp, was unter Linux auch die richtige Wahl ist. Unter Windows & ActivePerl würde das auch funktionieren, allerdings wird dann ein Ordner \tmp auf dem Laufwerk angelegt, auf dem VDRAdmin-AM entpackt wurde. Unter Windows wird der Temp-Ordner über das auslesen einer Umgebungsvariable ermittelt.
Um das dem VDRAdmin-AM beizubringen, muss die Datei vdradmind.pl geändert werden. Einfach die Datei in einen Texteditor wie z.B. Proton oder UltraEdit, Notepad ist keine Option da es nicht mit den Zeilenumbrüchen umgehen kann, laden und nach der Zeichenkette
COMPILE_DIR => '/tmp',
suchen. Diese Zeile auskommentieren (d.h. ein Raute # davor setzten) und direkt darunter eine neue Zeile mit dem Inhalt
COMPILE_DIR => $ENV{'TEMP'},
einfügen. Abspeichern nicht vergessen. Die Datei noch nicht schliessen, den es ist noch eine zweite Änderung nötig.
binmode setzten
Die zweite Änderung ist ähnlich simple. Zunächst nach der Zeichenkette
sub ReadFile {
suchen. In dieser Funktion etwas tiefer im Text findet sich eine Zeile, die mit
open(I18N, $file) || [...]
beginnt. Direkt unterhalb muss eine Zeile eingefügt werden. Als Text bitte
binmode(I18N);
eintippen. Evt. heißt die Variable nicht I18N sondern anders, dann bitte den neuen Text entsprechend anpassen.
Diese Änderung ist nötig, damit auch unter Windows die Dateien binär (also so, wie sie gespeichert sind) geöffnet werden. Abspeichern nicht vergessen, weitere Änderungen an dieser Datei sind nicht nötig. Die dritte Änderung ist optional.
Sprache setzten
Das setzten der Sprache ist Optional und scheint nur zu funktionieren, wenn die entsprechende Variable direkt im Perlscript geändert wird. Das passiert an zwei Stellen. Zunächst bitte die Stelle
# Some users have problems if the LANGUAGE env variable is set # so it's cleared here. $LANGUAGE = "";
suchen. In die Anführungszeichen bitte de_DE setzten. Die Zeile sollte dann wie folgt aussehen:
$LANGUAGE = "de_DE";
Die zweite Stelle ist bei
$CONFIG{LANG} = "";
zu finden. Die Zeile analog zu
$CONFIG{LANG} = "de_DE";
ändern. Werden diese Änderungen nicht durchgeführt, startet die Oberfläche mit englisch. Für andere Sprachen bitte die entsprechenden Abkürzungen einsetzten (zB fr_FR für Französisch). Abspeichern nicht vergessen.
VDRAdmin-AM konfigurieren
Dieser Teil ist (fast) identisch mit der normalen Konfiguration eines VDRAdmin-AMs. Dazu wird eine Eingabeaufforderung benötigt. Bitte in das Verzeichnis wechseln, in der der VDRAdmin-AM entpackt wurde.
Dort bitte
perl vdradmind.pl --config
eingeben und die gewünschten Daten eingeben. Zu beachten ist dabei, dass
- bei jeder Frage was eingegeben werden muss (auch wenn die default-Werte okay sind)
- das gilt vor allem bei "On which adress should VDR-Admin listen to", 0.0.0.0 ist okay.
- es egal ist, was für Pfade eingegeben werden (es wird nur via SVDRP kommuniziert)
- dieser Befehl nicht zweimal aufgerufen werden sollte! Wenn das nötig ist, vorher die vdradmind.conf löschen.
- das ändern der Sprache scheinbar nicht funktioniert
- die Konfiguratonsdatei nicht über die Weboberfläche geändert werden sollte.
VDRAdmin-AM starten und stoppen
Gestartet wird der VDRAdmin-AM ebenfalls über die Kommandozeile mit dem Befehl
perl vdradmind.pl
oder Alternativ (und falls bei der Installation von ActivePerl diese Option nicht abgewählt wurde) mit einem Doppelklick auf vdradmind.pl. Dann wird allerdings im Fehlerfall zwar eine Fehlermeldung ausgegeben, das Fenster wird aber sofort geschlossen, so dass man sie nicht zu Gesicht bekommt.
Wer sich an dem offenen Eingabeaufforderung stört, kann der VDRAdmin-AM auch mit dem Befehl
wperl vdradmind.pl
aufrufen. Dann erscheint aber weder im Erfolgs- noch im Fehlerfall etwas auf dem Bildschirm.
Wird nicht die zum download angebotene Version verwendet, werden zwar einige Fehlermeldungen ausgespuckt, aber letztendlich sollte es funktionieren. Das ist daran zu erkennen, dass in der Eingabeaufforderung
vdradmind.pl 3.5.3 startet with pid -124
oder etwas ähnliches steht. Die pid ist völlig belanglos.
Jetzt einfach mit einem beliebigen Browser einloggen und schon gehts los.
Zum stoppen genügt es, einfach die Eingabeaufforderung zu schliessen. Alternativ geht auch das abschiessen via Taskmanager (da unbedingt den richtigen Prozess erwischen, er (und manch anderer) heißt Perl.exe!).
Mit dem unten zum download angebotenen Paket geht es auch so, wie vom Autor vorgesehen:
perl vdradmind.pl --kill
Falls der Start mit der Fehlermeldung
Can't start server: Unknown error
abbricht, dann ist meist eine defekte Konfigurationsdatei vdradmind.conf daran Schuld. Diese dann einfach mal in einen Texteditor laden (nicht den Notepad verwenden!). Dort sieht man dann auch schnell, dass einige Zeilen doppelt sind, und viele andere Zeilen mit zwei Gleichzeichen = enden. Die doppelten Zeilen und überflüßigen = müssen gelöscht werden. Unbedingt überprüfen, ob in der Zeile SERVERHOST ein sinnvoller Wert steht (sonst wird VDRAdmin-AM nie starten können). Danach sollte es klappen.
Bekannte Probleme und ToDo
Probleme
- Die Konfigurationsdatei sollte nur mit einem Texteditor bearbeitet werden, da es sonst zu Problemen kommt (im aktuellen Paket (Link weiter unten auf der Seite) wahrscheinlich behoben).
- Der Start des VDR-AdminAM kann sehr lange dauern, da erst sehr viele Daten via SVDRP vom VDR ausgelesen werden. Während dieser Zeit läßt sich die Box nur eingeschränkt bedienen.
- Die Windows-Firewall oder ähnliche PFW werden sicherlich rummeckern.
- Es könnten noch weitere Probleme auftauchen, obwohl das ganze bei meinem Tests unauffällig lief.
ToDo
- VDRAdmin-AM als Service starten
- Konfigurationsoberfläche für Windows anpassen (im aktuellen Paket (Link weiter unten auf der Seite) wahrscheinlich behoben)
- Einen Punkt zum beenden des VDRAdmin-AM in die Weboberfläche integrieren
- Testen
Download der für Windows angepassten Version
Unter http://kille.cx/downloads/m740av/vdradmin-am-3.5.3-win32.zip kann eine Version des VDRAdmin-AM geladen werden, in der die beiden Änderungen von oben bereits eingearbeitet sind, ebenso wie ein paar weitere Änderungen, die zum Start zwar nicht nötig sind, aber den VDRAdmin-AM unter Windows & ActivePerl runder laufen lassen. Der Author hat diese Version zwar gewissenhaft erstellt und gestestet, kann aber für nichts garantieren. Die Benutzung erfolgt auf eigene Gefahr.

