Xxv
Beschreibung
XXV steht für "Xtreme eXtension for VDR" und ist ein zentraler Dienst zur Administrierung des VDR und dessen Umgebung, bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen können.
Einen zusätzlichen Port über ein Plugin einzurichten sollte genauso einfach sein, wie auch einen bestimmten Service bereitzustellen. Das Schreiben eines Plugins geht sehr schnell, da der Input (Vdr, DB usw) sowie der Output (Telnet, HTTP, ... ) generisch realisiert wurde. Es soll also z.B. möglich sein, mit einer TelnetConsole, HttpBrowser, WapTelefon, etc. einen Autotimer einzutragen. Dieser sollte wesentlich schneller die EPG-Daten durchsuchen können (MySQL-Datenbank) und über ein Interface dem VDR den neuen Timer mitteilen. Dabei wird natürlich auch dem singleModus des SVdrP Rechnung getragen und nur ein Befehl abgesendet. Danach wird der Port sofort wieder geschlossen, damit andere Programme wieder auf den svdrp zugreifen können.
Lange Rede kurzer Sinn, hier ein kleiner Überblick der derzeitigen Funktionen:
- komplett in Perl realisiert
- sehr generisches Frontend
- Plugin system
- Datenbank Unterstützung
- Epg-Daten werden regelmäßig geparst und eingetragen
- sehr einfaches Pluginkonzept für zukünftige Erweiterungen
- mehrere Services aus einem Dienst (Telnet, HTTP, ...)
- Dump-Interface fuer externe Programme
Bilder
Softwareanforderungen
- mysql-server
- verschiedene Perl::Module (siehe Installation)
- vdr2jpeg (optional)
- mplayer (optional), Installation siehe mplayer-plugin
Installation
Für die Installation ist der Download der letzten Version erforderlich. Beim letzten Update dieser Seite war dies die Version 0.80. Wichtige Informationen stehen in der im Archiv enthaltenen Datei README.txt.
Nach dem Download der Archivdatei muss dieses Archiv entpackt werden:
cd $SOURCEDIR tar xvzf xxv-<VERSION>.tar.gz cd xxv-<VERSION>
Es ist aber auch möglich den letzten Entwicklerstand per subversion herunterzuladen:
cd $SOURCEDIR svn checkout http://bandt.dyndns.org/repos/XXV cd XXV
MySQL / GD
Falls MySQL noch nicht installiert ist, kann dies auf einem dieser Wege erfolgen:
per Source
cd $SOURCEDIR tar xvzf mysql-<VERSION>.tar.gz ./configure --prefix=/usr/local \ --libexecdir=/usr/local/bin \ --without-extra-tools \ --without-bench make make install cd /usr/local/lib ln -s mysql/libmysqlclient.so* . groupadd mysql useradd -g mysql mysql chown -R mysql var mysql_install_db --user=mysql & ldconfig
Arch-Linux
pacman -S mysql gd <BITTE ERGÄNZEN>
Crux
prt-get depinst mysql libgd sed -i "1i/usr/lib/mysql" /etc/ld.so.conf ldconfig
Debian
apt-get install mysql-server libgd2-dev <BITTE ERGÄNZEN>
Gentoo
emerge mysql gd
SuSE
yast -i mysql-devel gd-devel
Tips zu Vermeidung von großen Logfiles von mysql
Bei normaler Installation von mysql kann es passieren, daß mysql riesige Logfiles ( x mal 1 Gbyte ) schreibt, die nach und nach die HD füllen.
Das verhindert man durch Änderung in der mysql.conf :
Logging abschalten: die log_bin-Zeile auskommentieren
oder Parameter expire_logs_days runtersetzen.
- Beispieleintrag :
# The following can be used as easy to replay backup logs or for replication. #server-id = 1 log_bin = /var/log/mysql/mysql-bin.log # WARNING: Using expire_logs_days without bin_log crashes the server! See README.Debian! expireexpire_logs_days_logs_days = 3 max_binlog_size = 100M
Nach Änderung in der mysql.conf, mysql neu starten nicht vergessen.
Siehe hierzu : http://www.vdr-portal.de/board/thread.php?threadid=58420
Perl Module
Nun folgen einige Perl Module, da gibt es wieder 2 Wege, über die Distributions eigenen Packete, oder über cpan, letzteres kann über das Installations-Skript von xxv erfolgen.
Debian
woody
apt-get install libdbi-perl \ libevent-perl \ libtimedate-perl \ libtime-hires-perl \ libmime-base64-perl \ libproc-process-perl \ liblocale-gettext-perl \ libgd-perl \ libwww-mechanize-perl \ libwww-mechanize-formfiller-perl \ libproc-process-perl \ liblog-log4perl-perl \ libio-zlib-perl \ libxml-simple-perl
Sarge
apt-get install libdbi-perl \ libevent-perl \ libgd-gd2-noxpm-perl \ libgd-graph-perl \ libgd-graph3d-perl \ libgd-text-perl \ libhtml-parser-perl \ libhtml-tagset-perl \ libhtml-template-perl \ libhtml-tree-perl \ liblocale-gettext-perl \ libnet-telnet-perl \ libterm-readkey-perl \ liburi-perl \ libwww-mechanize-perl \ libwww-mechanize-formfiller-perl \ libwww-perl \ liblog-log4perl-perl \ libxml-simple-perl \ libproc-process-perl \ libio-zlib-perl \ libnet-xmpp-perl \ libterm-readline-gnu-perl \ libxml-rss-perl \ libtemplate-perl
Wenn das Paket libwww-mechanize-formfiller-perl nicht gefunden werden kann, die /etc/apt/sources.list um die Zeile
deb http://e-tobi.net/vdr-testing sarge base
erweitern.
Gentoo
Für das Paket WWW-Mechanize-FormFiller muss der deutsche Overlay der Ebuilds eingebunden sein. Eine Anleitung hierfür gibt es unter http://www.gentoo.de/main/de/downloads.xml
Gegebenenfalls muss ausserdem das Paket Log-Log4perl in /etc/portage/package.keywords un-maskiert werden:
dev-perl/Log-Log4perl ~x86
Installation der Pakete mit
emerge dev-perl/DBI \ dev-perl/Event \ dev-perl/GDGraph \ dev-perl/GD \ dev-perl/GDTextUtil \ dev-perl/GDGraph \ dev-perl/GD \ dev-perl/GDTextUtil \ dev-perl/GD-Graph3d \ dev-perl/HTML-Parser \ dev-perl/HTML-Tagset \ dev-perl/HTML-Template \ dev-perl/HTML-Tree \ dev-perl/Locale-gettext \ dev-perl/Net-Telnet \ dev-perl/TermReadKey \ dev-perl/URI \ dev-perl/WWW-Mechanize \ dev-perl/WWW-Mechanize-FormFiller \ dev-perl/libwww-perl \ dev-perl/Log-Log4perl \ dev-perl/XML-Simple \ dev-perl/Proc-ProcessTable \ dev-perl/Compress-Zlib \ dev-perl/Net-XMPP \ dev-perl/Term-ReadLine-Perl \ dev-perl/XML-RSS \ dev-perl/TimeDate \ dev-perl/Template-Toolkit
Aufnahmen mit Vorschaubildern anzeigen
Um Aufnahmen in XXV mit Vorschaubildern anzuzeigen, gibt es zwei Möglichkeiten, mplayer oder vdr2jpeg, letzteres hat bedeutend weniger Abhängigkeiten. vdr2jpeg-0.0.8 setzt lediglich ffmpeg-0.4.9-pre1 voraus.
vdr2jpeg Installation:
Näheres zur Installation steht immer in der im Archiv enthaltenen Datei README.
Nach dem Download der Archivdatei muss dieses Archiv entpackt werden:
cd $SOURCEDIR tar xzvf vdr2jpeg-0.0.8.tgz cd vdr2jpeg-0.0.8
Es ist aber auch möglich den letzten Entwicklerstand per subversion herunterzuladen:
cd $SOURCEDIR svn checkout http://bandt.dyndns.org/repos/vdr2jpeg cd vdr2jpeg
Im enthaltenen Makefile sollte noch das Verzeichnis von FFmpeg angepasst werden. Anschließend kann das Programm mittels des Makefiles und folgendem Befehl kompiliert werden:
make
Falls während des Kompilierens keine Fehlermeldungen erscheinen, genügt zur Installation unter /usr/local/bin folgender Befehl:
make install
Ein abweichender Installationsort kann mit einem zusätzlichen Parameter per make install INSTALLBINDIR=/usr/bin" angegeben werden.
Danach muss die Previewerstellung mit vdr2jpeg aktiviert werden. Dazu ist im Browser unter Konfigurationspunkt Aufnahmen / RECORDS > previewbinary/previewcommand anzupassen. Es ist aber auch möglich die Datei xxvd.cfg direkt zu editieren.
[RECORDS] previewbinary=/usr/local/bin/vdr2jpeg previewcommand=vdr2jpeg
Weitere Dateien
Installieren der man-Page, die später mit man xxvd aufgerufen werden kann
cd $SOURCEDIR cp doc/xxvd.1 /usr/share/man/man1
Aktivieren der logrotate der Logdateien
cd $SOURCEDIR cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd
Konfiguration
Starten des MySQL Servers mit:
mysqld_safe --user=mysql &
Anlegen der Datenbank xxv per mitgeliefertem Script, für den von xxv genutzten mysql-Account vorher in contrib/create-database.sql den Username und dessen Passwort den persönlichen Vorlieben anpassen.
cd $XXVDIR cat contrib/create-database.sql | mysql -u root
oder alternativ in einzelen Schritten :
mysql -u root -e "create database xxv;" mysql -u root -e "grant all privileges on xxv.* to username@localhost IDENTIFIED BY 'password';" mysql -u root -e "flush privileges;"
Die Datenbankverbindung und der mysql-Account ist in xxvd.cfg einzutragen:
[General] DSN=DBI:mysql:database=xxv;host=localhost;port=3306 PWD=password USR=username
(wo die xxvd.cfg steht, wird beim Start von xxvd mit dem Parameter --configfile bestimmt. Falls $HOMEDIR/.xxvd.cfg existiert, wird diese verwendet)
Xxv starten
Damit xxv bei jedem Systemstart als Dienst gestartet werden kann, haben wir ein Beispielstartskript unter etc/xxvd gespeichert, welches man in seinem System installieren kann. Dieses sollte den eigenen Systemgegebenheiten angepasst werden, auf jeden Fall sollte man den Pfad anpassen, in dem xxv installiert wurde (anstelle von nano könnt ihr natürlich auch einen anderen Editor verwenden).
cd $SOURCEDIR/xxv-<VERSION> nano etc/xxvd
Unter FOLDER, in den ersten Zeilen einfach das gewählte $SOURCEDIR eintragen.
# In welchem Ordner befindet sich bin/xxvd # Where is bin/xxvd FOLDER="/usr/local/XXV"
Damit XXV bei jedem Booten des Rechners nach vdr gestartet wird. Ist es notwendig das aktuelle Runlevel zu ermitteln. Und im entsprechenden Startverzeichnis des Runlevel /etc/rc<RUNLEVEL>.d einen symbolischen Link auf das Startprogramm des xxvd-Dienstes /etc/init.d/xxvd anzulegen. Hier am Beispiel des Runlevel 2:
cd $SOURCEDIR/xxv-<VERSION> cp etc/xxvd /etc/init.d/. chmod 775 /etc/init.d/xxvd ln -s /etc/init.d/xxvd /etc/rc2.d/S90xxvd
Stattdessen bei SuSE sollte ihr alternativ am Anfang der Datei etc/xxvd, nach '# xxvd Start/Stop the xxvd daemon': folgende Zeilen hinzufügen
### BEGIN INIT INFO # Provides: xxvd # Required-Start: vdr # Required-Stop: # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: telnet/http config server, for the DVB Settop box vdr program ### END INIT INFO
und weiter dann den xxvd als Service anmelden
cp etc/xxvd /etc/init.d/. cd /etc/init.d/ insserv xxvd
Auf allen System kann dann anschliessend der aktivierte Dienst mit folgendem Kommando gestartet werden.
/etc/init.d/xxvd start
Der Vollständigkeit halber seit das Stoppen und das Neustarten des xxvd-Dienstes erwähnt :
/etc/init.d/xxvd stop /etc/init.d/xxvd restart
Parameter
Folgende Parameter könnten in /etc/init.d/xxvd an das Dienstprogramm bin/xxvd übergeben werden.
Parameter | Defaultwert | Beschreibung |
---|---|---|
--verbose=LEVEL | 3 | Ausgabelevel in der Logdatei, 0 - Keine Ausgabe, 1 - Nur Fehler, 3 - Warnung ... 5 Alles |
--version | - | Ausgabe der verwendeten Version von xxvd |
--kill | - | Stoppen des aktuelle laufenden xxvd-Prozess, gemäß xxvd.pid |
--nofork | - | XXVD beim Starten nicht in den Hintergrund senden (forken), notwendig für Debugging. |
--configfile=DATEI | ~/.xxvd.cfg | Name der verwendeten Konfigurationsdatei |
--logfile=DATEI | /var/log/xxvd.log | Name der verwendeten Logdatei |
Folgende Parameter sind vorallem für Paketbauer interessant, die das xxv-Dateien in seperaten Verzeichnissen platzieren wollen.
Parameter | Defaultwert | Beschreibung |
---|---|---|
--htmldir=DIR | ./ | Basisverzeichnis in dem HTTPD/WAPD Skins gesucht werden |
--pidfile=DATEI | /var/run/xxvd.pid | Datei um die aktuelle Prozessid zu speichern |
--localedir=DIR | ./locale | Verzeichnis mit den Übersetzungen |
--newstmpl=DIR | ./share/news | Verzeichnis mit Ausgabetemplates für die XXV-NEWS-Plugins |
--newsmods=DIR | ./lib/XXV/OUTPUT/NEWS | Modulverzeichnis mit den XXV-NEWS-Plugins |
--moduledir=DIR | ./lib/XXV/MODULES | Modulverzeichnis mit den XXV-Plugins |
--docudir=DIR | ./doc | Verzeichnis mit den Dokumentationen (NEWS, CHANGELOG ...) |
--poddir=DIR | ./doc | Verzeichnis mit den Selbstdokumentation der XXV-Plugins |
--fontdir=DIR | ./share/fonts/ttf-bitstream-vera | Basisverzeichnis für ttf-Zeichensätze für die Overlayfunktioen der Bildschirmanzeige, der Fernbedienung |
--vtxdir=DIR | ./share/vtx | Verzeichnis mit den Grafikfont der Symbole für das Videotextplugin |
--contrib=DIR | ./contrib | Verzeichnis mit zusätzlichen Script-Dateien |
Manuelles Starten von xxv
xxvd kann auch manuell ohne aktivierung als Dienst gestartet werden, dazu dient folgende Befehlskombination, die nach dem Start auch die Logdatei /var/log/xxvd.log anzeigt. Die Anzeige der Logdatei wird mit STRG-C abgebrochen.
cd $SOURCEDIR/xxv-<VERSION> ./bin/xxvd --configfile=./xxvd.cfg && tail -f /var/log/xxvd.log
zum manuellen Stoppen von xxvd dient folgender Befehl
cd $SOURCEDIR/xxv-<VERSION> ./bin/xxvd --kill --configfile=./xxvd.cfg
Bedienen von xxv
Die Bedienung von XXV erfolgt im Browser. Dazu muss in der Adresszeile die URL die auf deine XXV Installation verweist eingegeben werden. Dies erfolgt nach dem Schema Protokoll://Netzwerkadresse:Portnummer Die Portnummer für den HTTP Web Zugang ist die 8080. Diese kann aber per Konfigurationsparameter in xxvd.cfg angepasst werden. Hier am Beispiel der IP-Adresse 192.168.0.100.
http://192.168.0.100:8080
Die Portnummer für den Telnet Zugang ist die 8001.
telnet 192.168.0.100 8001
Die Portnummer für den WAP Zugang ist die 8085.
http://192.168.0.100:8085
Bei eine Neuinstallation werden für den Zugang folgende Logindaten verlangt, diese Einstellungen sollten natürlich nach der Installation den persönlichen Vorlieben angepasst werden. Über diese Einstellungen ist es auch möglich die Nutzerabfrage abschalten oder auf bestimmte Netzwerkclients zu beschränken.
User: xxv Password: xxv
Plugins
General
General ist eigentlich kein Plugin. Da es aus Sicht von xxv so aussieht, sollte es der Vollständigkeit halber hier aufgelistet werden. Hier werden globale Einstellungen wie Logfilepfad, Datenbankserver usw. aufgelistet.
Manual: http://www.xpix.de/downloads/xxv/doc/General.html
- Fast alle Module können in Ihrer Funktion deaktiviert werden (Einstellungen -> ModName -> Active = 'no').
- Die Templates sind jetzt ebenfalls lokalisiert und übersetzbar, das heisst der Skinprogrammierer kann über die gettext Routine auf die Übersetzungsdatenbank zugreifen.
Autotimer
Hier werden die EPG Daten nach Sendungen mit einem bestimmten Text in title, subtitle und text durchsucht und diese als Timer programmiert.
Manual: http://www.xpix.de/downloads/xxv/doc/AUTOTIMER.html
- Autotimer können bestimmen ob Timer mit VPS und eigenem Vor- und Nachlauf angelegt werden.
- Bei einem Update werden jetzt zusätzlich auch die Channelnamen der gefundenen Events angezeigt.
- Autotimer - Einstellung - exclude: Generelles Ausschliessen von Kanälen, um Kanäle ab eine Position in der Kanalliste von der Suche nach Events auszuschliessen.
Suchbegriffe können per Komma als logisch UND verkettet werden bzw. per Minuszeichen ausgeschlossen werden.
Folgende Beispiel sollten dies verdeutlichen :
Doku,Astronomie | --> Suche nach Doku UND Astronomie |
Ryan,-Hanks | --> Suche nach Ryan UND NICHT Hanks |
Tipp: Diese Funktionalität ist auch in der normalen EPG-Volltextsuche verfügbar.
Tipp: Wenn ihr den Skript tvmovie2vdr verwendet, könnt ihr den Aufnahmetitel mit zusätzlichen Informationen erweitern. Zum Beispiel werden mit folgender Angabe, für Gruppiere alle Aufnahmen in einem Verzeichnis die Autotimer nach Genre gespeichert: %genre%~%title%~%subtitle%
Folgende allgemein nutzbare Markierungen existieren:
- %title%
- %subtitle%
- %date%
Wenn die EPG Daten mittels tvmovie2vdr erzeugt wurden, sind folgende Markierungen einsetzbar:
- %regie%
- %category%
- %genre%
- %year%
- %country%
- %originaltitle%
- %fsk%
- %episode%
- %rating%
Alle diese Markierungen, setzen vorraus das die dazu notwendigen Angaben im EPG-Eintrag, also i.A. dem Beschreibungsfeld vorhanden sind.
Timers
Dieses Modul erlaubt das Löschen, Erstellen und Editieren der neuen Timer, sowie deren Darstellung.
Manual: http://www.xpix.de/downloads/xxv/doc/TIMERS.html
- Timer referenzieren jetzt auf Ihren EPG Eintrag, falls dieser vorhanden ist.
- Inactive Timer werden jetzt gelöscht falls diese mehr als einen Monat in der Zukunft liegen. Es kam öfters vor, das ein Timer per Autotimer programmiert wurde, dieser wurde wegen Desinteresse deaktiviert. Wenn der Timer abgelaufen war, tauchte er automatisch genau einen Monat später wieder in der Liste auf. Diese "Timerleichen" mussten dann immer mühsam von Hand gelöscht werden. Das passiert jetzt automatisch wenn TIMERS -> Einstellungen -> Deactive auf 'yes' gesetzt ist.
EPG
Hier wird die epg.data eingelesen und deren Einträge in einer Datenbank abgespeichert.
Manual: http://www.xpix.de/downloads/xxv/doc/EPG.html
- Events werden gesondert gekennzeichnet, wenn diese als Timer aufgezeichnet werden.
Channels
Hier wird die channels.conf eingelesen und deren Einträge in einer Datenbank abgespeichert.
Manual: http://www.xpix.de/downloads/xxv/doc/CHANNELS.html
HTTPD
Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung, um xxv per Browser bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/HTTPD.html
- Eine Processbar wird angezeigt wenn Prozesse gestartet werden die etwas länger dauern (Musik neu einlesen, getCovers)
- Es kann jetzt eine Startseite unter Preferences -> HTTPD -> StartPage individuell festgelegt werden, (Jetzt läuft, Programm, Autotimer, ...)
Telnet
Dieses Modul stellt einen Telnet Server zur Verfügung, um xxv per "telnet localhost portnummer" bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/TELNET.html
Interface
Dieses Modul stellt einen Daten-Server zur Verfügung, um xxv mit anderen GUIs bedienen zu können.
Manual: http://www.xpix.de/downloads/xxv/doc/INTERFACE.html
Wapd
Dieses Modul stellt einen WapD Server zur Verfügung, um xxv mittels Wap Browser (Mobiltelefon) bedienen zu können.
Zur Zeit noch ohne wirkliche Funktion.
Manual: http://www.xpix.de/downloads/xxv/doc/WAPD.html
Music
Das MusicPlugin stellt eine Medienbibliothek sowie einen Icecast Streamserver zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/MUSIC.html
- WebInterface: Viele User hatten ja mehr als 1000 MP3 Titel auf ihrem vdr rumlungern, so das damit das Javascript Konzept absolut nicht damit klar kam. Das neue Interface ist nun reines html und zum Glück auch wesentlich schneller im Seitenaufbau.
- GetCovers: Diese Funktion ist ein Bonus bei der xxv mittels des Modul Robot einmal am Tag die Covers der Alben als Bilddateien aus dem Internet herunterladen kann. Genutzt wird dafür das Perlmodul WWW::Mechanize, welches zusätzlich installiert werden muss. Dieses Modul emuliert die normale Bedienung in einem Browser, bei der ein Suchbegriff (Albumnamen, Erscheinungsjahr) auf der Suchseite eines Musikportals eingegeben wird und das Ergebnis wird dann nach den gewüschten Albumcover durchsucht. Und dieses Coverbild wird dann im Vorschauverzeichnis gespeichert und in der Albumliste angezeigt.
Records
Dieses Plugin stellt alle Aufnahmen übersichtlich dar und erlaubt verschiedene Aktionen auf den einzelnen Records.
Manual: http://www.xpix.de/downloads/xxv/doc/RECORDS.html
- Es werden jetzt die Schnittmarken grafisch in der Recordübersicht dargestellt.
- Viele Eigenschaften des Records sind jetzt editierbar. (Marks, Lifetime, Priorität,...)
- Für jede Aufnahme kann ein Satz von Vorschaubildern erstellt werden.
- Serien, oder Aufnahmen die in einen Gruppenordner zusammengefasst sind, werden in rlist als Ordner angezeigt.
Config
Das Konfigurations Plugin erlaubt es, während der Laufzeit verschiedene Parameter der Interfaces (HTTP, Telnet, ..) zu verändern und abzuspeichern.
Manual: http://www.xpix.de/downloads/xxv/doc/CONFIG.html
Grab
Grab stellt das Livebild des VDR als JPEG Bilddatei zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html
- grab ist jetzt in der Lage, zusätzliche Informationen (wie z.B. den Kanal) in das gegrabbte Livebild einzublenden.
Remote
Dieses Plugin stellt eine Fernbedienung und in Verbindung mit Grab auch ein Livebild dar. Somit lässt sich der VDR per Interface rudimentär bedienen.
Manual: http://www.xpix.de/downloads/xxv/doc/REMOTE.html
Status
Status stellt alle Systeminformationen in den Interfaces als übersichtliche Darstellung dar.
Manual: http://www.xpix.de/downloads/xxv/doc/STATUS.html
- Ein besonders nettes Feature, es werden jetzt Graphen erstellt welche die Speicherauslastung sowie die Last eines bestimmten Zeitraumes (Einstellungen -> Status -> History) darstellen. Das Besondere daran, die Grafiken werden aus den Templates heraus erstellt, so das jeder geneigte Skinprogrammierer seine eigenen Grafiken bei Bedarf erstellen kann. In dem HTML Skin kann man das sehr schön unter Status sehen.
SVDRP
Dieses Plugin stellt alle Befehle der svdrp Schnittstelle des VDR zur Verfügung.
Manual: http://www.xpix.de/downloads/xxv/doc/SVDRP.html
User
Eine Userauthentifikation, die in allen Interfaces Kennung und Passwort des Users abfragt und eine Levelverwaltung zur Verfügung stellt.
Effektiv kommen bei xxvd drei verschiedene Accountebenen zu tragen :
- Die normale Ebene des Betriebsystems (Linux)
In diesem Account wird xxvd ausgeführt. Der Account wird in der Variable RUNAS in /etc/init.d/xxvd definiert. Damit xxvd innerhalb eines unprivilegierten Accounts ausgeführt werden kann, benötigt dieser Account Leserechte in xxv-Verzeichnis, und Schreibrechte auf die cfg-Datei, pid-Datei, log-Dateien und Schreibrechte im Preview-Verzeichnis des Skins.
- Den Mysql Account
Dieser Zugang wir nur benötigt um die Daten in der mySQL Datenbank anzusprechen, deshalb benötigt er Lese- und Schreibrechte innerhalb der aktiven XXV-Datenbank (mySQL:DATABASE) (GARANT SELECT, INSERT, UPDATE, CREATE, DROP, usw.)
- Und dann gibt es den XXV-Account innerhalb der XXV Benutzerverwaltung.
Er dient nur dazu einzelnen xxv-Kommandos freizuschalten oder zu sperren. Momentan ist dies nur in den drei Gruppen gast,user,admin möglich.
- gast, darf Daten wie EPG-Daten oder Aufnahmen betrachten
- user, darf Daten wie Autotimer, Timer verändern
- admin, darf User verwalten
Der Standardzugang nach Neuinstallation hat folgendes Login und sollte über die XXV-Benutzerverwaltung bei Freischaltung in Internet gelöscht oder verändert werden.
Login:xxv Passwort: xxv
Wenn XXV nur im lokalen Netz verwendet wird, kann die XXV-Benutzerverwaltung auch komplett in den Präferenzen abgeschaltet werden.
[USER] Active=n
Manual: http://www.xpix.de/downloads/xxv/doc/USER.html
- Bestimmte Parameter können jetzt bei dem User eingestellt werden. Dabei nutzen wir ein generisches System, wenn zum Beispiel der User xpix nur den Skin Snow sehen möchte kann man das in den Usereinstellungen unter 'Prefs' mit 'HTTPD::HtmlRoot=snow' sehr schön einstellen. Natürlich kann man auch alle anderen Parameter der Module dem User zuteilen, z.B. möchten wir zusätzlich, das der User xpix nur Timer definieren darf, deren Priorität lediglich bei 30 liegt. Das würde dann so aussehen:
HTTPD::HtmlRoot=snow, TIMERS::Priority=30
Der Syntax lautet also 'Modulename::Parameter=Wert, Modulename::Parameter=Wert, ...' ... wenn der User xpix auch nur als Level=User eingestellt ist, kann man somit verhindern das dieser seine Einstellungen ändert.
- Der User kann jetzt auch einen Logout vornehmen.
Vtx
Mit Hilfe dieses Moduls werden Videotextseiten im Browser angezeigt. Für den Empfang der Videotextseiten wird auf das Osdteletext-plugin zurückgegriffen. Wenn diese Plugin im VDR aktiv ist, werden im Hintergrund alle Videotextseiten im Dateisystem zwischengespeichert. Das VTX-Modul kann damit alle zwischengespeicherten Seiten, für alle bereits empfangenen Sender anzeigen.
Es werden nicht nur die normalen Buchstaben, Ziffern und Sonderzeichen dargestellt, sondern auch der nostalgische Scharm der Blockgrafik mittels Grafikzeichen unterstützt. Über den Browser ist die normale Navigation zwischen allen Seiten und Unterseiten möglich. Für ein einfachere Navigation sind in die jeweiligen Videotextseiten Verweise auf andere Seiten eingebettet.
Es existiert als Bonusfunktion eine Volltextsuche über alle Seiten des jeweilig gewählten Sender.
Manual: http://www.xpix.de/downloads/xxv/doc/VTX.html
Skins installieren
Es ist möglich das Webinterface in einem völlig anderem Aussehen sich darstellen zu lassen. Das gewünschte Skin-Paket wird im allgemeinen im Installationsordner entpacken. Das Verzeichnis mit dem Skins kann auch abweichend per Kommandozeilenparameter a'la --htmldir /var/lib/xxv/skins/ in einem anderen Ordner verlegt werden.
Hier am Beispiel des Skins stone.
cd $SKINEDIR tar zxvf xxv-stone-0.60.tgz
Durch das Entpacken sollte ein neues Verzeichnis mit dem Namen stone mit den Daten des Skin entstanden sein.
Anschliessend ruft man das Webinterface auf (http://ip_deines_vdrs:8080) und wählt den Skin unter Einstellungen -> HTTPD -> Option HtmlRoot aus. Aber nicht vergessen, die geänderten Einstellungen mit Übernehmen zu aktivieren.
Ebenfalls kann es notwendig sein, das vollständigen Neuladen der xxv-Webseite im Browser (IE - Taste F5) auszuführen um die durch den Browser zwischengespeicherten Dateien zu aktualiseren.
Der aktuelle Entwicklerstand ist per subversion unter http://bandt.dyndns.org/repos/XXV-Skins verfügbar.
cd $SKINEDIR svn checkout http://bandt.dyndns.org/repos/XXV-Skins
XXV aktuell halten - Update von einer älteren Version
Wir gehen davon aus das du schon ein xxv bei dir installiert hattest und zeigen dir wie du auf eine neue Version updaten kannst. Als erstes müssen wir den Dienst stoppen:
vdr:~# /etc/init.d/xxvd stop
... mit Subversion
Am einfachsten ist ein Update mit Subversion zu machen, das update Skript aufrufen und danach xxv neu starten:
cd $SOURCEDIR svn update
Der Snapshot vom XXV - Subversion - Server ist nur für testwillige und mutige Betatester gedacht ! Da der Server immer den letzten Entwicklungsstand wieder gibt.
... als Download
Natürlich wird es auch weiterhin die Möglichkeit geben, von dem vorhandenen Download Server http://xpix.dieserver.de/downloads/xxv/?M=D sich aktuelle Pakete zu holen und diese dann zu entpacken. Aber(!), diese Pakete werden nur in unregelmässigen Abständen zur Verfügung gestellt. Sind also nicht immer aktuell:
cd $SOURCEDIR wget http://xpix.dieserver.de/downloads/xxv/xxv-<VERSION>.tgz tar xvzf xxv-<VERSION>.tar.gz
Datenbankstruktur anpassen
Neue oder erweiterte XXV-Funktionen ziehen oft auch eine Änderung der Datenbankstruktur nach sich. Nach der Installation eines Updates, solltet ihr daher zunächst immer das Skript contrib/update-xxv aufrufen. XXV darf zu diesem Zeitpunkt noch nicht gestartet sein.
Im einfachsten Fall müsst ihr keinerlei Parameter an das Skript übergeben. Dies setzt jedoch voraus, dass MySQL auf dem lokalen Rechner installiert ist, dass die Datenbank 'xxv' heisst und der Datenbankadministrator 'root' kein Passwort besitzt.
cd $SOURCEDIR/contrib ./update-xxv
Darüber hinaus könnt ihr dem Skript eine Reihe von Parametern übergeben, die neben dem Zugriff auf die Datenbank auch ein paar erweiterte Funktionen steuern. Einen Überblick über alle Parameter erhaltet ihr mit:
cd $SOURCEDIR/contrib ./update-xxv -h update-xxv ---------- Usage: update-xxv [-b] [-h hostname] [-P port] [-d database] [-u user] [-p password] -b <target> : Make a backup first to <target>.gz -H <hostname> : Host name of the MySQL server (default: localhost) -P <port> : Port number of MySQL server -d <database> : XXV database name (default: xxv) -u <user> : Username (default: root) -p <password> : Password (default: no password) -a : Ask for password -f : Force upgrade, do not check version -h : Help
Mit dem Parameter -b wird vor dem Update ein Backup der Datenbank durchgeführt. Dazu muss der Name der Backupdatei (ohne die Endung .gz) angegeben werden. Den Zugriff auf den MySQL-Server steuern die Parameter -H (Host-Name) und -P (Port). Standardmäßig sind dies 'localhost' und Port 3306. Sollte die Datenbank nicht 'xxv' heissen, so könnt ihr mit -d einen anderen Namen wählen.
Den Datenbanknutzer könnt ihr mit -u und sein Passwort mit -p spezifizieren. Um das Update durchführen zu können, benötigt der Datenbanknutzer FILE -Rechte. In der Regel hat nur der Administrator 'root' dieses Recht.
Mit der Übergabe des Passwortes in den Kommandozeilenparametern wird das Passwort für einen Moment für alle anderen User des lokalen Systems sichtbar ('ps -fA' zeigt alle Prozesse mit ihren Parametern an!). Alternativ habt ihr daher die Möglichkeit, mittels -a das Update-Skript nach dem Passwort fragen zu lassen. Allerdings wird das Passwort mehrmals abgefragt, da verschiedene Datenbankoperationen notwendig sind.
Datenbankupdates werden von update-xxv nur dann durchgeführt, wenn Sie wirklich notwendig sind. Sollte mal etwas schief laufen oder ihr möchtet auf eine alte Datenbankstruktur 'downgraden', so könnt ihr das Update mit -f erzwingen.
Bei einem erfolgreichen Datenbankupdate gibt update-xxv eine Liste der durchgeführten Aktionen aus:
update-xxv ---------- Info: Checking Server Info: Checking Database Info: Retrieving current version Info: current database version: 0 Info: new database version: 1 Info: Starting update... Info: Saving Data Info: Updating Database Info: Restoring Data Info: Updateing Version Info: Update successful
Im Fehlerfall werden "Error:..." -Meldungen ausgegeben. Die wahrscheinlichste Ursache für einen Fehler ist der Datenbankzugriff. Ihr solltet zunächst also Username, Passwort, Datenbankname und Host überprüfen.
Nach dem Update könnt ihr XXV wieder starten:
/etc/init.d/xxvd start
Anschliessend die Log-Datei kontrollieren:
tail -f /var/log/xxvd.log
Sollten im Logfile irgendwelche Fehlermeldungen wegen fehlender Perl-Module auftauchen, so solltet ihr diese installieren. Wer nicht mehr weiss wie das geht, dieses Wiki wird Dir helfen ...
Probleme
xxv... is not a working copy
Folgende Fehlermeldung wenn ich versuche XXV mit subversion zu aktualisieren, '$SOURCEPATH/vdr-1.3.34_new/tools/xxv-0.50' is not a working copy
Du versuchst eine nicht ausgecheckte Version mit subversion zu aktualisieren. Die Version die ich zum Download anbiete ist eine exportierte aber keine originale subversion version ;)
Also, das alte Version löschen. Dann wie hier beschrieben mit svn eine frische Version holen.
Hat XXV ein Memory Leak?
Hat XXV ein Memory Leak? Bei mir steigt der Speicherverbrauch in ca. 6 Stunden um das doppelte.
Leider habt die ältere Version des perl-EventModul ein Speicherleck, das mit der Version >= 1.05 gefixt wurde. Bitte installiere dein Eventmodul neu:
vdr:~# perl -MCPAN -e 'install Event'
Komische Zeichen in den Pfaden der Aufnahmen
Meine Sambapfade zeigen komische Zeichen bei Umlaute in den Pfaden der Aufnahmen und der Liveplayer spielt diese Aufnahmen nicht ab. weiterführende Hinweise dazu...
Login ist nicht mehr möglich
- Hab das Passwort für den user xxv geändert. Und komm jetzt nicht mehr an Admin-Rechte.
Die schnelle Lösung für dein Problem, in mysql einloggen und die Tabelle löschen, in der XXV die User speichert:
vdr:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 to server version: 3.23.49-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> use xxv; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> drop table USER; Query OK, 0 rows affected (0.12 sec) mysql> quit
Dann xxv neu restarten:
vdr:~# /etc/init.d/xxvd restart Stop bin/xxvd: xxvd with pid 744 killed Start bin/xxvd: xxvd started with pid 3563.
Danach solltest du dich wieder mit den Startpasswort xxv:xxv normal einloggen können.
Es werden keine Vorschaubilder erstellt
Folgende Prüfliste sollte helfen:
- stimmt der Pfad zum mplayer in der RECORDS Config
- ist der mplayer eingeschaltet unter Records->config->mplayercommand?
- richtige Version unter Records->config->mplayercommand?
- stimmt der Pfad zum Videoverzeichnis?
- ist das Previewverzeichnis schreibbar für xxvd?
Bedenkt auch, die Vorschaubilder werden im Hintergrund generiert. Das heisst erst nach einer kleinen Weile sind die ersten Previews zu sehen.
- Mit dem Mplayer werden kein keine Vorschaubilder erstellt
und in der xxvd_mplayer.log steht
Unknown option on the command line: jpeg
Ab mplayer-1.0pre6 muss die aufrufende Kommandozeile angepasst werden, xxv macht das für dich. (Konfigurieren -> RECORDS -> mplayercommand). Stell einfach den entsprechenden Player ein, der auf deinem System installiert ist. MPlayer1.0pre5 und älter sowie MPlayer1.0pre6 und neuer. Du bekommst die Versionsnummer deines mplayers mit mplayer -v zu sehen:
vdr:~# mplayer -v MPlayer 1.0pre5-2.95.4 (C) 2000-2004 MPlayer Team ...
Cannot build telnet initial socket
Im Logfile tauchen folgende Warnungen auf:
11 (10305) [03:27:27 03.02.2005] [Fatal] Cannot build telnet initial socket.
Du musst eine andere Portnummer für den jeweiligen Server, in diesen Fall für Telnet, in der ~/.xxvd.cfg festlegen. Den Port den du benutzten willst, ist wahrscheinlich schon durch einen anderes Serverprogramm belegt.
perl: warning: Setting locale failed
Beim Starten erscheint folgende Warnung:
Start bin/xxvd: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "de_DE@euro" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").
Ursache ist, das xxvd zwar entsprechende lokalisierten Texte mitbringt, aber auf dem Rechner keine gleichnamige Systemlokalisierung vorhanden ist. Eine Unterdrücken dieser Meldung geht mit "export PERL_BADLANG=1", aber sinnvoller ist es die Systemlokalisierung in der gewählten Sprache ebenfalls zu installieren.
Auf der Systempartition ist keine freier Platz vorhanden
Schau wie groß deine mysql logs in /var/log/ sind, mysql hat, durch eine ungeeignete Konfiguration, möglicherweise extrem große Logdateien erstellt und die Festplatte im Megabytegrossen Log-Dateien gefüllt.
Dazu mysql stoppen und diese Log-Dateien löschen,
und in /etc/mysql/my.cnf deaktiviere, durch auskommentieren folgende Zeile.
#log-bin = /var/log/mysql/mysql-bin.log
Danach mysql wieder starten.
Could not open the svdrp-socket!
Diese Meldung erscheint in der Logdatei, wenn XXV keine Verbindung zum VDR per SVDRP-Protokoll aufnehmen kann, entweder wird der VDR-Prozess selber nicht ausgeführt oder das SVDRP-Protokoll für den Rechner mit XXV muss in der VDR Konfiguration(svdrphosts.conf) freischalten werden. Die Meldung kann auch auftreten wenn eine andere Anwendung wie vdradmin diesen Verbindung blockiert.
Falls ein von Standard abweichender Port 2001 verwendet wird, muss dies auch in der Konfiguration des XXV-Modules SVDRP eingestellt werden werden.
Can't open file: 'EPG.MYI', ...
XXV startet nicht mehr und im Log erscheint folgende Meldung
26 (501) [14:25:18] EPG: Can't open file: 'EPG.MYI'. (errno: 145) - select * from EPG
Der Name der Datenbankdatei kann auch je nach Tabelle (EPG.MYI, TIMER.MYI, RECORDS.MYI, ...) variieren, gemeinsam ist die Meldung mit einem Dateiname *.MYI. Diese Aussagen gelten somit generell für alle MYSQL-Datenbankdateien, und nicht nur im speziellen für die Datenbankdateien von XXV.
Im Allgemeinen sagt die Fehlermeldung aus, das eine Datei einer Datenbanktabelle beschädigt wurde. Diese passiert meist beim harten Abschalten vom Rechner oder wenn es zu Stromausfällen kommt, wenn MYSQL nicht ordnungsgemäß heruntergefahren wurden. Mit folgendem Kommando kann die Bedeutung der Zahl hinter errno ermittelt werden.
vdr:~# perror 145 145 = Table was marked as crashed and should be repaired
In diesem Falle sollte mit myisamchk die Datenbank repariert werden.
Dazu mysql stoppen, Datei der Datenbank lokalisieren und myisamchk anwenden.
vdr:~# /etc/init.d/mysql stop vdr:~# find /var/ -name EPG.MYI /var/lib/mysql/xxv/EPG.MYI vdr:~# myisamchk --help ... Repair options (When using '-r' or '-o') ... vdr:~# myisamchk -r /var/lib/mysql/xxv/EPG.MYI - recovering (with sort) MyISAM-table '/var/lib/mysql/xxv/EPG.MYI' Data records: 21281 - Fixing index 1 - Fixing index 2 - Fixing index 3
Spezielle Probleme bei Installation der Pakete der c't-Edition
xxv startet nicht automatisch
Die Installation des deb-Paketes erfolgte ohne Fehlermeldung, aber xxv startet nicht automatisch oder bei einem manuellem Start findet sich im Logfile folgende Fehlermeldung
Die Datei docu.tmpl wurde nicht gefunden.
Lösung: damit der Dienst aktiviert wird muss in der Datei /etc/default/vdr-xxv folgendes eintragen werden: ENABLED=1.
Snapshot
svn checkout http://bandt.dyndns.org/repos/XXV