Xxv

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
K (Tippfehler beseitigt)
(Links)
 
(206 dazwischenliegende Versionen von 85 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
''xxv ist ein zentraler Dienst zur Administrierung des VDR und dessen Umgebung, bei dem verschiedene Ports offen sind und diese verschiedene Services bedienen können.''
+
XXV steht für "Xtreme eXtension for VDR" und ist ein zentraler Dienst zum Administrieren des [[VDR]] und dessen Umgebung.
  
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.
+
Funktionen sind :
  
* [http://www.xpix.de/downloads/xxv Download:]
+
* voller Fernzugriff zum VDR.
* [http://www.vdr-portal.de/board/thread.php?threadid=22819 Thread der ersten Serie Alpha - Version < 0.14]  
+
* einfach erweiterbares Perl framework
* [http://www.vdr-portal.de/board/thread.php?threadid=29423 Thread der ersten Serie Beta - Version < 0.17l]
+
* skalierbar zur Kontrolle von einem oder mehreren VDRs, mit einer Oberfläche
* [http://www.vdr-portal.de/board/thread.php?threadid=30718 Thread der ersten stabilen Version 0.20]
+
* Verschiedene Schnittstellen
* [http://www.vdr-portal.de/board/thread.php?threadid=32684 Thread der zweite Serie - Alpha Version < 0.33]
+
** HTML, XML, JSON over HTTP,
* [http://www.vdr-portal.de/board/thread.php?threadid=34252 Thread der zweite Serie - Beta Version < 0.35]
+
** und als Funktionsmuster : WAP, TELNET, SOAP
* [http://www.vdr-portal.de/board/thread.php?threadid=34639 Thread der zweite stabilen Version 0.40]
+
* Verschiedene Skins
 
+
* Kernfeature
Lange Rede kurzer Sinn, hier ein kleiner Überblick der derzeitigen Funktionen:
+
** Suchbares, sortierbares EPG (Electronic programming guide)
 
+
** Anzeigen und Bearbeiten von Timern, Aufnahmen, Kanälen
* komplett in Perl realisiert
+
** Autotimer (erzeugt Timer bei benutzerdefinierte Volltextsuche über die EPG Daten)
* sehr generisches Frontend
+
** Fernbedienung und Kontrollmonitor des Videosignals
* Plugin system
+
** Integration Live-TV-Streaming (benötigt [[Streamdev-plugin]])
* Datenbank Unterstützung
+
** Streaming von Aufnahmen
* Epg-Daten werden regelmäßig geparst und eingetragen
+
*** über HTTP z.B. für interne Browser Plugins (unterstützt Anwahl des Startpunkts)
* sehr einfaches Pluginkonzept für zukünftige Erweiterungen
+
*** oder Alternativ über eine Playliste per SMB/NFS für externe Videoabspieler
* mehrere Services aus einem Dienst (Telnet, HTTP, ...)
+
** Anzeige der Liste von Aufnahmen mit Vorschaubildern
* Dump-Interface fuer externe Programme
+
** Konfigurierbare Nutzerzugriffsebene, -regeln
 +
* viele nette zusätzliche Feature, wie
 +
** Anzeige einer eigenen oder der [[Muggle-plugin]] Datenbank mit Audio Streaming
 +
** Anzeige der Videotextseiten des [[Osdteletext-plugin]]
 +
** Community Feature zum "Austausch der meist programmierten EPG Einträge"
 +
** Medienbibliothek zum Verwalten von DVDs, VCD, etc.
 +
** Nachrichtensystem für RSS-Feed, Mail-Benachrichtigung
 +
** Sammeln von Systemdaten, Diagrammanzeige
 +
** Historische Aufzeichnung alle ausgeführten Aufnahmen
 +
** Schlagworte mit Autotimer, Timern, Aufnahmen verbinden
 +
** Auflösen von Timerkonflikten, Automatisches verschieben von Timer zwischen Kanälen oder mehreren VDR
 +
**  ...
  
 
==Bilder==
 
==Bilder==
 
{|
 
{|
| [[Bild:Xxv vtx.gif|thumb|none|''Videotextscreen'']]
 
| [[Bild:Xxv stone.png|thumb|none|''Stone Skin'']]
 
| [[Bild:Xxv remote.gif|thumb|none|''Remote'']]
 
|-
 
 
| [[Bild:Xxv full.gif|thumb|none|''Main Screen'']]
 
| [[Bild:Xxv full.gif|thumb|none|''Main Screen'']]
 
| [[Bild:Xxv autotimer.gif|thumb|none|''Autotimer'']]
 
| [[Bild:Xxv autotimer.gif|thumb|none|''Autotimer'']]
 +
| [[Bild:Xxv remote.gif|thumb|none|''Remote'']]
 +
| [[Bild:Xstyle-4.png|thumb|none|''XstyleSchema'']]
 
|-
 
|-
| http://www.deltab.de/vdr/xxv-deltab.png
+
| [[Bild:Xstyle detail.png|thumb|none|''Event Ansicht'']]
| http://www.deltab.de/vdr/xxv-stone.png
+
| [[Bild:Xstyle at.png|thumb|none|''Autotimerliste'']]
| http://www.deltab.de/vdr/xxv-snow.png
+
| [[Bild:Xstyle now.png|thumb|none|''Running Now'']]
| http://www.deltab.de/vdr/xxv-blue.png
+
| [[Bild:Spaltenansicht.png|thumb|none|''Spaltenansicht'']]
 +
|-
 +
| [[Bild:xxv-skin-stone-epg.jpg|thumb|none|''EPG im Skin Stone'']]
 +
| [[Bild:xxv-skin-stone.jpg|thumb|none|''Aufnahmen im Skin Stone'']]
 +
| [[Bild:xxv-skin-snow.jpg|thumb|none|''Timer im Skin Snow (Flacher Modus)'']]
 +
| [[Bild:Xxv-jason.jpg|thumb|none|''Skin Jason'']]
 
|}
 
|}
  
 
==Softwareanforderungen==
 
==Softwareanforderungen==
* mysql-server (version!?)
+
* mysql-server
 
* verschiedene Perl::Module (siehe Installation)
 
* verschiedene Perl::Module (siehe Installation)
* vdr2jpeg (optional)
+
* [[Xxv#Aufnahmen_mit_Vorschaubildern_anzeigen|vdr2jpeg]] (optional)
 
* mplayer (optional), Installation siehe [[mplayer-plugin]]
 
* mplayer (optional), Installation siehe [[mplayer-plugin]]
  
 
==Installation==
 
==Installation==
===Subversion checkout===
+
Für die Installation ist der Download der letzten Version erforderlich.
Wir unterstützen ab sofort Subversion, das heisst also für Euch, dass auf Eurem
+
Wichtige Informationen stehen in der im Archiv enthaltenen Datei '''INSTALL'''.  
System Subversion installiert sein sollte. Wie Subversion-Clients auf
+
Eurem System installiert werden könnt Ihr hier nachlesen:
+
  
  http://subversion.tigris.org/project_packages.html
+
Nach dem Download der Archivdatei muss dieses Archiv entpackt werden:  
  
Um einen Checkout zu machen (also sich das aktuelle xxv zu ziehen) ruft ihr einfach folgendes auf:
 
 
  cd $SOURCEDIR
 
  svn checkout http://bandt.dyndns.org/repos/XXV
 
 
===Xxv entpacken===
 
 
  cd $SOURCEDIR
 
  cd $SOURCEDIR
 
  tar xvzf xxv-<VERSION>.tar.gz
 
  tar xvzf xxv-<VERSION>.tar.gz
 +
cd xxv-<VERSION>
  
===Man page installieren===
+
Es ist aber auch möglich den letzten Entwicklungsstand herunterzuladen, weitere Detail sind im Abschnitt [[#Snapshot|Snapshot]] beschrieben.
cd $SOURCEDIR
+
cp doc/xxvd.1 /usr/share/man/man1
+
  
===Logrotate conf installieren===
+
===[[Distribution]]en===
cd $SOURCEDIR
+
Erforderlich ist die [http://www.mysql.com MySQL]-Datenbank, die [http://www.boutell.com/gd/ GD Library] und einige Perl Module. Für die Perl Module gibt es zwei Wege, über die Distributions-Pakete, oder über {{wikipedia|cpan}}, letzteres kann direkt über das Installations-Skript von xxv erfolgen.
cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd
+
 
 +
Für die Speicherung der Daten verwendet XXV eine [http://www.mysql.com MySQL]-Datenbank. Falls mysql noch nicht installiert ist, kann dies auf einem für [[#Distributionen|Distributionen]] geeigneten Wege erfolgen. Nach erfolgter Installation von mysql, bitte auch die weiterführenden Hinweise über einige mysql-[[#mysql|Stolperfallen]] berücksichtigen.
  
===MySQL===
+
====[[Debian]]====
====per Source====
+
apt-get install mysql-server libgd2
 +
# Perl module
 +
apt-get install \
 +
    perl \
 +
    perl-base \
 +
    perl-modules \
 +
    libcgi-perl \
 +
    libio-zlib-perl \
 +
    libconfig-tiny-perl \
 +
    libdate-manip-perl \
 +
    libdbd-mysql-perl \
 +
    libdbi-perl \
 +
    libmd5-perl \
 +
    libdigest-hmac-perl \
 +
    libevent-perl \
 +
    libgd-gd2-noxpm-perl \
 +
    libgd-graph-perl \
 +
    libgd-graph3d-perl \
 +
    libgd-text-perl \
 +
    txt2html \
 +
    libhtml-tree-perl \
 +
    libjson-perl \
 +
    libwww-perl \
 +
    liblocale-gettext-perl \
 +
    libmp3-info-perl \
 +
    libnet-amazon-perl \
 +
    libnet-telnet-perl \
 +
    libnet-xmpp-perl \
 +
    libproc-process-perl \
 +
    libsoap-lite-perl \
 +
    libtemplate-perl \
 +
    libhtml-template-perl \
 +
    liburi-perl \
 +
    libxml-rss-perl \
 +
    libxml-simple-perl
 +
====[[Gentoo]]====
 +
Mittels
 +
emerge -av xxv
 +
werden auch alle Abhängigkeiten (inkl. mysql) installiert.
 +
 
 +
Alternativ:
 +
 
 +
Gegebenenfalls muss außerdem das Paket '''Log-Log4perl''' in ''/etc/portage/package.keywords'' un-maskiert werden:
 +
dev-perl/Log-Log4perl ~x86
 +
 
 +
Installation der Pakete mit
 +
emerge mysql gd
 +
# perl modules
 +
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/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
 +
 
 +
====[[Ubuntu]]====
 +
Benutzer der Distribution der [[Ubuntu]] finden unter https://launchpad.net/~yavdr/+archive/stable-vdr die die Komplettpakete '''vdr-xxv''', '''vdr-xxv-skins''', sowie optional das Plugin '''vdr-plugin-xxvautotimer'''.
 +
 
 +
====[[Arch-Linux]]====
 +
pacman -S mysql gd
 +
====[[Crux]]====
 +
prt-get depinst mysql
 +
sed -i "1i/usr/lib/mysql" /etc/ld.so.conf
 +
ldconfig
 +
prt-get depinst libgd
 +
====[[SuSE]]====
 +
yast -i mysql gd
 +
 
 +
===per Source===
 +
====MySQL====
 +
Falls die Distribution keine eigenen Pakete anbietet, kann die Installation von mysql auch manuell erfolgen.
 
  cd $SOURCEDIR
 
  cd $SOURCEDIR
 
  tar xvzf mysql-<VERSION>.tar.gz
 
  tar xvzf mysql-<VERSION>.tar.gz
Zeile 87: Zeile 184:
 
  ldconfig
 
  ldconfig
  
====Debian-spezifisch====
+
====GD====
apt-get install mysql-server-4.1
+
Für das dynamischen Erzeugung und Manipulation von Grafiken benötigt XXV die [http://www.boutell.com/gd/ GD Library].
 
+
===Perl Module===
+
Nun folgen einige Perl Module, da gibt es wie 2 Wege:
+
 
+
====per cpan====
+
Der empfohlene Weg, '''falls man kein Debian System hat''':
+
Mittels "Bundle::Xxv" per CPAN, einfach in das '''$SOURCEDIR/lib''' Verzeichnis wechseln und das Bundle installieren.
+
Dazu muss man LEIDER dem cpan das Modul unterschieben, es kann sein das bei den mkdir's Fehlermeldungen kommen das dieses Verzeichniss bereits schon existiert, das könnt ihr getrost ignorieren.
+
Alle Module die benoetigt werden stehen in diesem Bundle und werden automatisch installiert:
+
+
cd $SOURCEDIR/xxv-<VERSION>/lib
+
mkdir -p ~/.cpan/Bundle
+
cp Bundle/Xxv.pm ~/.cpan/Bundle
+
perl -MCPAN -e 'install Bundle::Xxv'
+
 
+
Hinweis: Ich musste bei meiner SuSE distri:
+
 
+
  cd $SOURCEDIR/xxv-<VERSION>/lib
+
  mkdir -p /etc/perl/cpan/Bundle
+
  cp Bundle/Xxv.pm /etc/perl/cpan/Bundle
+
  perl -MCPAN -e 'install Bundle::Xxv'
+
 
+
verwenden.
+
 
+
====per Source====
+
Oder eine andere Möglichkeit via Source.
+
 
+
*<NAME>-<VERSION>.tar.gz
+
 
+
Die Installation ist für die meisten Pakete identisch:
+
  
 
  cd $SOURCEDIR
 
  cd $SOURCEDIR
  tar xvzf <NAME>-<VERSION>.tar.gz
+
  tar xvzf gd-<VERSION>.tar.gz
  cd <NAME>-<VERSION>
+
  ./configure
perl Makefile.PL
+
 
  make
 
  make
 
  make install
 
  make install
cd -
 
  
====Debian-spezifisch====
+
===Aufnahmen mit Vorschaubildern anzeigen===
=====woody=====
+
Um Aufnahmen in XXV mit Vorschaubildern anzuzeigen, gibt es zwei Möglichkeiten, [http://www.mplayerhq.hu mplayer] oder [http://projects.vdr-developer.org/projects/xxv/wiki/Vdr2jpeg vdr2jpeg], letzteres hat bedeutend weniger Abhängigkeiten.
  apt-get install libdbi-perl \
+
vdr2jpeg setzt lediglich [http://ffmpeg.sourceforge.net/ ffmpeg] voraus.
                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 \
+
                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 \
 
                libperl5.8 \
 
                libterm-readkey-perl \
 
                liburi-perl \
 
                libwww-mechanize-perl \
 
                libwww-perl \
 
                liblog-log4perl-perl \
 
                libxml-simple-perl \
 
                libproc-process-perl \
 
                perl \
 
                perl-base \
 
                perl-modules
 
perl -MCPAN -e 'install WWW::Mechanize::FormFiller'
 
  
===Vdr2jpeg===
+
'''vdr2jpeg Installation:'''
Um aus den Aufnahmen Bilder für Xxv zu ''extrahieren'', gibt es zwei Möglichkeiten, '''mplayer''' oder  '''vdr2jpeg''', letzteres hat bedeutend weniger Abhängigkeiten, setzt lediglich '''ffmpeg''' (Version 0.4.8 funktioniert, 0.4.9pre1 scheinbar nicht) voraus. (Näheres in der Readme). [[Dxr3-plugin#Installation Software|Hinweise zur Installation von ffmpeg]]
+
  
cd $SOURCEDIR
+
Näheres zur Installation steht immer in der im Archiv enthaltenen Datei '''README'''.
wget http://www.deltab.de/vdr/vdr2jpeg-0.0.7.tgz
+
tar [...] vdr2jpeg-0.0.7.tgz
+
cd vdr2jpeg-0.0.7
+
  
oder den aktuellen Stand per subversion
+
Nach dem Download der Archivdatei muss dieses Archiv entpackt werden:
  
 
  cd $SOURCEDIR
 
  cd $SOURCEDIR
  svn checkout http://bandt.dyndns.org/repos/vdr2jpeg
+
  tar xzvf vdr2jpeg-0.0.8.tgz
  cd vdr2jpeg
+
  cd vdr2jpeg-0.0.8
  
Im Makefile sollten noch das Verzeichnis von ffmpeg angepasst werden und kompiliert wird mit
+
Im enthaltenen Makefile sollte noch das Verzeichnis von {{wikipedia|FFmpeg}} angepasst werden.
 +
Anschließend kann das Programm mittels des Makefiles und folgendem Befehl kompiliert werden:
  
 
  make
 
  make
make install INSTALLBINDIR=/usr/local/bin
 
  
Dannach ist die '''xxv.conf''' anzupassen.
+
Falls während des Kompilierens keine Fehlermeldungen erscheinen,
 +
genügt zur Installation unter /usr/local/bin folgender Befehl:
  
  previewbinary=/usr/local/bin/vdr2jpeg
+
  make install
  
Oder im Browser, unter Konfigurations Punkt ''Aufnahmen''.
+
Ein abweichender Installationsort kann mit einem zusätzlichen Parameter per ''make install INSTALLBINDIR=/usr/bin" angegeben werden.
  
==Update von einer älteren Version (< 0.20)==
+
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.  
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
+
[RECORDS]
 +
previewbinary=/usr/local/bin/vdr2jpeg
 +
previewcommand=vdr2jpeg
  
Dann benutzt am besten subversion um eine neue Version von xxv zu ziehen:
+
===Weitere Dateien===
 +
Installieren der man-Page, die später mit '''man xxvd''' aufgerufen werden kann
  
  vdr:~# cd $SOURCEDIR
+
cd $SOURCEDIR
  vdr:~# svn co http://bandt.dyndns.org/repos/XXV
+
cp doc/xxvd.1 /usr/share/man/man1
  
Damit die vorhandene Datenbank in die neue Struktur konvertiert wird, muss das update Skript gestartet werden. Dieses sichert deine wichtigsten Daten und baut die Database neu auf:
+
Aktivieren der logrotate der Logdateien
 +
cd $SOURCEDIR
 +
cp etc/logrotate.d/xxvd /etc/logrotate.d/xxvd
  
  cd contrib
+
==Konfiguration==
  ./upgrade-xxv.sh -u [db user name] -p [db password]
+
Starten des MySQL-Servers mit:
  
    update-xxv
+
/etc/init.d/mysql start
    ----------
+
   
+
    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
+
  
Eventuell /etc/init.d/xxvd kopieren und an das neue Installationsverzeichnis anpassen und anschliessend neustarten:
+
Anlegen der Datenbank xxv per mitgeliefertem Skript, für den von xxv genutzten mysql-Account vorher in
 +
'''contrib/create-database.sql''' den Username und dessen Passwort den persönlichen Vorlieben anpassen.
  
  vdr:~# cp etc/xxvd /etc/init.d/xxvd
+
cd $XXVDIR
  vdr:~# /etc/init.d/xxvd restart
+
cat contrib/create-database.sql | mysql -u root
  
Logfile kontrollieren:
+
oder alternativ in einzelen Schritten :  
 
+
  vdr:~# tail -f /var/log/xxvd.log
+
 
+
 
+
Sollten im Logfile irgendwelche Fehlermeldungen wg. fehlender Module auftauchen,
+
so solltet ihr diese installieren. Wer nicht mehr weiss wie das geht,
+
das wiki wird Dir helfen:
+
 
+
http://www.vdr-wiki.de/wiki/index.php/Xxv#Perl_Module
+
 
+
==XXV aktuell halten==
+
 
+
====... mit Subversion====
+
Um xxv aktuell zu halten, braucht ihr einfach nur ein Update mit Subversion machen, das update Skript aufrufen und danach xxv neu starten:
+
 
+
  cd $SOURCEDIR
+
  /etc/init.d/xxvd stop
+
 
+
  svn update
+
  ...
+
 
+
====... 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:
+
 
+
<pre>
+
cd $SOURCEDIR
+
wget http://xpix.dieserver.de/downloads/xxv/xxv-<VERSION>.tgz
+
tar xvzf xxv-<VERSION>.tar.gz
+
</pre>
+
 
+
====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.
+
 
+
'''Sicherheitshinweis:''' 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
+
 
+
==Konfiguration==
+
Starten des MySQL Servers mit:
+
 
+
mysqld_safe --user=mysql &
+
 
+
Anlegen der Datenbank xxv:
+
  
 
  mysql -u root -e "create database xxv;"
 
  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;"
  
Danach sind die Rechte zu setzen:
+
Die Datenbankverbindung und der mysql-Account ist in '''xxvd.cfg''' einzutragen:
 
+
mysql -u root -e "grant all privileges on xxv.* to xpix@localhost;"
+
 
+
Die '''$HOMEDIR/.xxvd.cfg''' ist wie folgt anzupassen:
+
  
 
  [General]
 
  [General]
 
  DSN=DBI:mysql:database=xxv;host=localhost;port=3306
 
  DSN=DBI:mysql:database=xxv;host=localhost;port=3306
  PWD=
+
  PWD=password
  USR=xpix
+
  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==
 
==Xxv starten==
Damit xxv bei jedem Systemstart als Dienst gestartet werden kann, haben wir ein Startskript unter '''etc/xxvd''' gespeichert, das man in seinem System installieren sollte. Vorher sollte man aber noch den Pfad eingeben, wo sich Euer xxv befindet:
+
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>
 
  cd $SOURCEDIR/xxv-<VERSION>
 
  nano etc/xxvd
 
  nano etc/xxvd
  
Anstelle von nano könnt ihr natürlich auch einen anderen Editor verwenden.
+
Unter FOLDER, in den ersten Zeilen einfach das gewählte '''$SOURCEDIR''' eintragen.
In den ersten Zeilen einfach das '''$SOURCEDIR''' eintragen und mit ctrl-o (bei nano) abgespeichern.
+
  
# -------------------------------------------
 
 
 
  # In welchem Ordner befindet sich bin/xxvd
 
  # In welchem Ordner befindet sich bin/xxvd
 
  # Where is bin/xxvd
 
  # Where is bin/xxvd
  '''FOLDER="/root/XXV"'''  
+
  '''FOLDER="/usr/local/XXV"'''  
+
# -------------------------------------------
+
  
 +
Damit XXV bei jedem Booten des Rechners nach vdr gestartet wird. Ist es notwendig das aktuelle [[SysV_Init|Runlevel]] zu ermitteln. Und im entsprechenden Startverzeichnis des [[SysV_Init|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:
  
Unter SuSE ergänzt ihr noch am Anfang der Datei, z.B. nach '# xxvd          Start/Stop the xxvd daemon':
+
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
 
  ### BEGIN INIT INFO
Zeile 371: Zeile 294:
 
  ### END INIT INFO
 
  ### END INIT INFO
  
Dann gebt ihr (bei SuSE):
+
und weiter dann den xxvd als Service anmelden
  
 
  cp etc/xxvd /etc/init.d/.
 
  cp etc/xxvd /etc/init.d/.
Zeile 377: Zeile 300:
 
  insserv xxvd
 
  insserv xxvd
  
ein. Damit wird XXV bei jedem Booten des Rechners nach vdr gestartet. Wenn Ihr kein SuSE verwendet, gehts weiter mit:
+
Anschließend kann der aktivierte Dienst mit folgendem Kommando gestartet werden.
  
 +
/etc/init.d/xxvd start
  
Damit ihr wisst, in welchem [[SysV_Init|Runlevel]] ihr gerade lauft, solltet ihr runlevel aufrufen:
+
Der Vollständigkeit halber sei das Stoppen und das Neustarten des xxvd-Dienstes erwähnt :
  
  runlevel
+
  /etc/init.d/xxvd stop
 +
/etc/init.d/xxvd restart
  
Den Level merkt ihr Euch und erstellt im dem Verzeichnis /etc/rc[runlevelnummer].d einen symbolischen Link auf xxvd. Bei meinem Beispiel in Level 2:
 
  
cd $SOURCEDIR/xxv-<VERSION>
+
===Parameter===
  cp etc/xxvd /etc/init.d/.
+
Folgende Parameter könnten in /etc/init.d/xxvd an das Dienstprogramm bin/xxvd übergeben werden.
  chmod 775 /etc/init.d/xxvd
+
{| border=1 cellpadding=2 cellspacing=0
  ln -s /etc/init.d/xxvd /etc/rc2.d/S90xxvd 
+
|- bgcolor=#efefef
 +
!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 vor allem für Paketbauer interessant, die das xxv-Dateien in separaten Verzeichnissen platzieren wollen.
 +
{| border=1 cellpadding=2 cellspacing=0
 +
|- bgcolor=#efefef
 +
!Parameter
 +
!Defaultwert
 +
!Beschreibung
 +
|-
 +
| --htmldir=DIR    || ./ || Basisverzeichnis in dem HTTPD/WAPD Skins gesucht werden
 +
|-
 +
| --pidfile=DATEI  || /var/run/xxvd.pid || Datei um die aktuelle Prozess-ID 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
 +
|-
 +
| --contrib=DIR    || ./contrib || Verzeichnis mit zusätzlichen Skript-Dateien
 +
|-
 +
|}
  
Starten von xxv:
+
===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>
 
  cd $SOURCEDIR/xxv-<VERSION>
 
  ./bin/xxvd --configfile=./xxvd.cfg && tail -f /var/log/xxvd.log
 
  ./bin/xxvd --configfile=./xxvd.cfg && tail -f /var/log/xxvd.log
  
oder als Dienst:
+
zum manuellen Stoppen von xxvd dient folgender Befehl
  
  /etc/init.d/xxvd restart
+
  cd $SOURCEDIR/xxv-<VERSION>
 +
./bin/xxvd --kill --configfile=./xxvd.cfg
  
Dann einen Browser aufrufen mit folgender URL:
+
==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 Default-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://ip_deines_vdrs:8080
+
   <nowiki>http://192.168.0.100:8080</nowiki>
  
oder per Telnet
+
Die Portnummer für den Telnet Zugang ist die 8001.
 
    
 
    
   telnet [ip deines vdrs oder localhost] 8001
+
   telnet 192.168.0.100 8001
  
User:    '''xxv'''
+
Die Portnummer für den WAP Zugang ist die 8085.
  Password: '''xxv'''
+
 
 +
  <nowiki>http://192.168.0.100:8085</nowiki>
  
==Plugins==
 
===General===
 
  
''General'' ist eigentlich kein Plugin. Da es aus Sicht von xxv so aussieht, sollte es der Vollständigkeit halber hier aufgelistet werden.
+
Bei einer 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.
Hier werden globale Einstellungen wie Logfilepfad, Datenbankserver usw. aufgelistet.
+
  
Manual: http://www.xpix.de/downloads/xxv/doc/General.html
+
User:     '''xxv'''
 +
Password: '''xxv'''
  
* Fast alle Module können in Ihrer Funktion deaktiviert werden (Einstellungen -> ModName -> Active = 'no').
+
==xxv-Module/Plugins==
* Die Templates sind jetzt ebenfalls lokalisiert und übersetzbar, das heisst der Skinprogrammierer kann über die gettext Routine auf die Übersetzungsdatenbank zugreifen.
+
; General : ist eigentlich kein eigenständiges Modul. Da es aus Sicht von xxv so aussieht, sollte es der Vollständigkeit halber hier aufgelistet werden. Hier werden globale Einstellungen wie z.B. die Konfiguration des Datenbankserver usw. aufgelistet.
  
===Autotimer===
+
* Fast alle Module können in Ihrer Funktion deaktiviert werden (Einstellungen -> ModName -> Active = 'no').
 +
* Die Templates sind jetzt ebenfalls lokalisiert und übersetzbar, das heißt der Skinprogrammierer kann über die gettext Routine auf die Übersetzungsdatenbank zugreifen.
  
Hier werden die EPG Daten nach Sendungen mit einem bestimmten Text in ''title'', ''subtitle'' und ''text'' durchsucht und diese als Timer programmiert.
+
; 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.
 
* 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.
+
* Bei einem Update werden jetzt zusätzlich auch der Name des Senders der gefundenen Events angezeigt.
* Autotimer - Einstellung - exclude: Exclude-Kanalliste um für bestimme Kanäle die Suche nach Events generell auszuschliessen.
+
* Autotimer - Einstellung - exclude: Generelles Ausschließen von Kanälen, um Kanäle ab eine Position in der Kanalliste von der Suche nach Events auszuschließen.
  
===Timers===
+
Suchbegriffe können entweder per Komma als logisch UND verkettet werden bzw. per Minuszeichen ausgeschlossen werden. Alternativ sind auch logischer Operatoren wie ''AND'' ''OR'' bzw. ''AND NOT'' zulässig.
  
Dieses Modul erlaubt das Löschen, Erstellen und Editieren der neuen Timer, sowie deren Darstellung.
+
''Titel der Aufnahmen:'' Der Aufbau des Titels der Aufnahmen kann durch Platzhalter beeinflusst werden, oder mit zusätzlichen Informationen erweitern werden. Über das Parameterfeld ''Gruppiere alle Aufnahmen in einem Verzeichnis'' wird der Titel der Aufnahme gesteuert.  
  
Manual: http://www.xpix.de/downloads/xxv/doc/TIMERS.html
+
Folgende allgemein nutzbare Platzhalter existieren:
 +
* ''%title%'' - EPG Titel
 +
* ''%subtitle%'' - EPG Subtitel (Shorttext)
 +
* ''%date%'' - Datum der Aufnahme im Format YYYY-MM-DD
 +
* ''%abstract%'' - Anfangssatz der EPG-Beschreibung
  
* Timer referenzieren jetzt auf Ihren EPG Eintrag, falls dieser vorhanden ist.
+
Wenn die EPG Daten mittels [[tvmovie2vdr]] erzeugt wurden und die notwendigen Angaben in der EPG-Beschreibung vorhanden sind, können folgende Platzhalter verwendet werden :
* 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.
+
* ''%regie%'' - Director: ....
 +
* ''%category%'' - Category: ....
 +
* ''%genre%'' - Genre: ....
 +
* ''%year%'' - Year: ....
 +
* ''%country%'' - Country: ....
 +
* ''%originaltitle%'' - Originaltitle: ....
 +
* ''%fsk%'' - FSK: ....
 +
* ''%episode%'' - Episode: ....
 +
* ''%rating%'' - Rating: ....
 +
* ''%cast%'' - Cast: ....
  
===EPG===
+
''Beispiele'' :
 +
* ''%title%'' - Nur den Titel verwenden
 +
* ''Nachrichten~%date% - %title%'' - z.B. Nachrichten~2009-12-24 - Tagesschau
 +
* ''Serie~%title%~%subtitle%'' - z.B. Serie~Star Trek - Enterprise~Erstflug
 +
* ''%title%~%subtitle%'' - Standardverhalten, wenn nichts definiert wurde
 +
* ''%title%~%abstract%''  - z.B. Serientitel aus EPG-Beschreibung des Transponder RLT übernehmen
  
Hier wird die ''epg.data'' eingelesen und deren Einträge in einer Datenbank abgespeichert.
 
  
Manual: http://www.xpix.de/downloads/xxv/doc/EPG.html
+
; TIMERS : Dieses Modul erlaubt das Löschen, Erstellen und Editieren der neuen Timer, sowie deren Darstellung. Timer referenzieren auf Ihren EPG Eintrag, falls dieser vorhanden ist.
  
* Events werden gesondert gekennzeichnet, wenn diese als Timer aufgezeichnet werden.
 
  
===Channels===
+
; EPG : Diese Modul liest die EPG Daten über die [[SVDRP]]-Schnittstelle ein und speichert deren Einträge in der Datenbank ab. EPG Daten werden in verschieden Formen, Listen, Tabellen aufbereitet und durchsuchbar dargestellt. EPG Daten werden gesondert gekennzeichnet, wenn diese als Timer aufgezeichnet werden.
  
Hier wird die ''channels.conf'' eingelesen und deren Einträge in einer Datenbank abgespeichert.
 
  
Manual: http://www.xpix.de/downloads/xxv/doc/CHANNELS.html
+
; CHANNELS : Diese Modul liest die Kanaldaten über die [[SVDRP]]-Schnittstelle ein und speichert deren Einträge in der Datenbank ab. Dieses Modul erlaubt das Löschen, Erstellen und Editieren der Kanäle, sowie deren Darstellung.
  
===HTTPD===
 
  
Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung, um xxv per Browser bedienen zu können.
+
; HTTPD : Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung, um xxv per Browser bedienen zu können. Nach persönlichen Belieben kann eine Startseite unter Preferences -> HTTPD -> StartPage individuell festgelegt werden, (Jetzt läuft, Programm, Autotimer, ...)
  
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)
+
; TELNET : Dieses Modul stellt einen Telnet Server zur Verfügung, um xxv per "telnet localhost portnummer" bedienen zu können.
* 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.
+
; 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/TELNET.html
 
  
===Interface===
+
; WAPD : Dieses Modul stellt einen WapD Server zur Verfügung, um xxv mittels WAP Browser (Mobiltelefon) bedienen zu können. Da WAP nicht mehr aktiv unterstützt wird, sind nur elementare Funktionen nutzbar.
  
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
+
; MUSIC : Das Modul stellt eine Medienbibliothek sowie einen Icecast Streamserver zur Verfügung.
  
===Wapd===
 
  
Dieses Modul stellt einen WapD Server zur Verfügung, um xxv mittels Wap Browser (Mobiltelefon) bedienen zu können.
+
; RECORDS : Dieses Modul stellt alle Aufnahmen übersichtlich dar und erlaubt verschiedene Aktionen mit den einzelnen Aufnahmen.
 +
* Es werden die Schnittmarken grafisch in der Aufnahmeübersicht dargestellt.
 +
* Viele Eigenschaften der Aufnahmen sind editierbar.  (Marks, Lifetime, Priorität,...)
 +
* Für jede Aufnahme kann ein Satz von [[Xxv#Aufnahmen_mit_Vorschaubildern_anzeigen|Vorschaubildern]] erstellt werden.
 +
* Serien, oder Aufnahmen die in einen Gruppenordner zusammengefasst sind, werden in rlist als Ordner angezeigt.
  
'''Zur Zeit noch ohne wirkliche Funktion.'''
 
  
Manual: http://www.xpix.de/downloads/xxv/doc/WAPD.html
+
; CONFIG : Das Konfigurations-Modul erlaubt es, während der Laufzeit verschiedene Parameter der Benutzeroberfläche (HTTP, Telnet, ..) zu verändern und abzuspeichern.
  
===Music===
 
  
Das MusicPlugin stellt eine Medienbibliothek sowie einen Icecast Streamserver zur Verfügung.
+
; GRAB : Grab stellt das Livebild des VDR als JPEG Bilddatei zur Verfügung. Das Plugin ist in der Lage, zusätzliche Informationen (wie z.B. den aktuellen Kanal) in das zwischengespeicherte Livebild einzublenden.
  
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.
+
; REMOTE : Dieses Modul stellt eine Fernbedienung und in Verbindung mit Grab auch ein Livebild dar. Somit lässt sich der VDR per Interface rudimentär bedienen.
  
* 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 Ergebniss wird dann nach den gewüschten Albumcover durchsucht. Und dieses Coverbild wird dann im Vorschauverzeichnis gespeichert und in der Albumliste angezeigt.
 
  
===Records===
+
; STATUS : Status stellt alle Systeminformationen in den Interfaces als übersichtliche Darstellung dar. Es werden 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.
  
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
+
; SVDRP : Dieses Modul verwaltet die Verbindung zur allen genutzten Video Disk Rekordern und stellt alle Befehle der SVDRP Schnittstelle jeweiligen VDR zur Verfügung.
  
* Es werden jetzt die Schnittmarken grafisch in der Recordübersicht dargestellt.
 
* Viele Eigenschaften des Records sind jetzt editierbar.  (Marks, Lifetime, Priorität,...)
 
* Andreas hat sich dem leidigen und wesentlich unperformanten Weg der Previewbilderstellung angenommen und ein sehr schlankes C Programm namens 'vdr2jpeg' geschrieben. Dieses Programm tut im Grunde nichts anderes als Previewbilder bei bestimmten Marken zu erstellen. Dieses wir natürlich auch von xxv unterstützt und kann per "svn co http://bandt.dyndns.org/repos/vdr2jpeg" geholt werden. Nähere Angaben zur Installation könnt ihr in der README Datei des Programmpaketes nachlesen.
 
* Serien, oder Aufnahmen die in einen Gruppenordner zusammengefasst sind, werden in rlist als Ordner angezeigt.
 
  
===Config===
+
; VTX : [[Bild:Xxv_vtx.gif|thumb|right|''Beispielseite'']]
 +
Mit Hilfe dieses Moduls werden [[Teletext|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. Ü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 jeweiligen gewählten Senders.
  
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
+
; MEDIALIB : Mit diesem Modul ist es möglich seine private Filmsammlung zu verwalten. Um nicht alle Angaben händisch machen zu müssen, können diese online importiert werden.  
  
===Grab===
 
  
Grab stellt das Livebild des VDR als JPEG Bilddatei zur Verfügung.  
+
; USER : Eine Nutzerauthentifikation, die in allen Interfaces Kennung und Passwort des Users abfragt und eine Zugangsverwaltung zur Verfügung stellt. Der Standardzugang nach Neuinstallation hat folgendes Login und sollte über die XXV-Benutzerverwaltung bei Freischaltung in Internet gelöscht oder verändert werden.
  
Manual: http://www.xpix.de/downloads/xxv/doc/GRAB.html
+
Login:xxv
 +
Passwort: xxv
  
* grab ist jetzt in der Lage, zusätzliche Informationen (wie z.B. den Kanal) in das gegrabbte Livebild einzublenden.
+
Wenn XXV nur im lokalen Netz verwendet wird, kann die XXV-Benutzerverwaltung auch komplett in den Präferenzen abgeschaltet werden.
  
===Remote===
+
[USER]
 +
Active=n
  
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.
+
Bestimmte Parameter können beim jeweiligen User eingestellt werden. Dabei nutzen wir ein generisches System, wenn zum Beispiel der ausgewählte User nur den Skin Snow sehen möchte kann man das in den Benutzereinstellungen unter 'Präferenzen' 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 nur Timer definieren darf, deren Priorität lediglich bei 30 liegt. Das würde dann so aussehen:
  
Manual: http://www.xpix.de/downloads/xxv/doc/REMOTE.html
+
    HTTPD::HtmlRoot=snow, TIMERS::Priority=30
  
===Status===
+
Der Syntax lautet also 'Modulename::Parameter=Wert, Modulename::Parameter=Wert, ...' ... wenn der jeweilige User auch nur als Level=User eingestellt ist, kann man somit verhindern das dieser seine Einstellungen ändert.
  
Status stellt alle Systeminformationen in den Interfaces als übersichtliche Darstellung dar.
+
==Skins installieren==
  
Manual: http://www.xpix.de/downloads/xxv/doc/STATUS.html
+
[[Bild:Xxv stone.png|thumb|right|''Stone Skin'']]
  
 +
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 den Skins kann auch abweichend per Kommandozeilenparameter a'la ''--htmldir /var/lib/xxv/skins/'' in einem anderen Ordner verlegt werden.
  
* 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.
+
Hier am Beispiel des Skins stone.
  
===SVDRP===
+
cd $SKINEDIR
 +
tar zxvf xxv-stone-0.60.tgz
  
Dieses Plugin stellt alle Befehle der svdrp Schnittstelle des VDR zur Verfügung.
+
Durch das Entpacken sollte ein neues Verzeichnis mit dem Namen ''stone'' mit den Daten des Skin entstanden sein.
  
Manual: http://www.xpix.de/downloads/xxv/doc/SVDRP.html
+
Anschließend 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.  
  
===User===
+
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 aktualisieren.
  
Eine Userauthentifikation, die in allen Interfaces Kennung und Passwort des Users abfragt und eine Levelverwaltung zur Verfügung stellt.
+
==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:
  
Effektiv kommen bei xxvd drei verschiedene Accountebenen zu tragen :
+
  vdr:~# /etc/init.d/xxvd stop
  
* '''Die normale Ebene des Betriebsystems (Linux)'''
+
====... als Download====
In diesem Account wird xxvd ausgeführt. Der Account wird in der Variable RUNAS in /etc/init.d/xxvd definiert.
+
Natürlich wird es auch weiterhin die Möglichkeit geben, von dem vorhandenen [http://projects.vdr-developer.org/projects/xxv/files Download Server] sich aktuelle Pakete zu holen und diese dann zu entpacken.  
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.
+
<pre>
 +
  cd $SOURCEDIR
 +
  tar xvzf xxv-<VERSION>.tar.gz
 +
</pre>
  
* '''Den Mysql Account'''
+
====Datenbankstruktur anpassen====
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)
+
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.
(GARANT SELECT, INSERT, UPDATE, CREATE, DROP, usw.)
+
  
* '''Und dann gibt es den XXV-Account innerhalb der XXV Benutzerverwaltung.'''
+
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' heißt und der Datenbankadministrator 'root' kein Passwort besitzt.
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
+
  cd $SOURCEDIR/contrib
* user, darf Daten wie Autotimer, Timer verändern
+
  ./update-xxv
* 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.
+
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:
  
Login:xxv  
+
  cd $SOURCEDIR/contrib
  Passwort: xxv
+
  ./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
  
Wenn XXV nur im lokalen Netz verwendet wird, kann die XXV-Benutzerverwaltung auch komplett in den Präferenzen abgeschaltet werden.
+
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' heißen, so könnt ihr mit '''-d''' einen anderen Namen wählen.
  
[USER]
+
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.
Active=n
+
  
Manual: http://www.xpix.de/downloads/xxv/doc/USER.html
+
{{Box Hinweis|
 +
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.
 +
}}
  
* 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:
+
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.
  
    HTTPD::HtmlRoot=snow, TIMERS::Priority=30
+
Bei einem erfolgreichen Datenbankupdate gibt update-xxv eine Liste der durchgeführten Aktionen aus:
  
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.
+
  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
  
* Der User kann jetzt auch einen Logout vornehmen.
 
  
===Vtx===
+
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.
  
Diese Modul zeigt Videotextseiten an.
+
Nach dem Update könnt ihr XXV wieder starten:
  
Manual: http://www.xpix.de/downloads/xxv/doc/VTX.html
+
  /etc/init.d/xxvd start
  
==Skins installieren==
+
Anschliessend die Log-Datei kontrollieren:
  
Es ist möglich das Webinterface in einem völlig anderem Aussehen sich darstellen zu lassen. Dafür muss man sich nur den gewünschten Skin herunterladen und das Paket im '''$SOURCEDIR''' entpacken:
+
  tail -f /var/log/xxvd.log
  
cd $SOURCEDIR
+
Sollten im Logfile irgendwelche Fehlermeldungen wegen fehlender Perl-Module auftauchen, so solltet ihr diese installieren. Wer nicht mehr weiss wie das geht, dieses [[Xxv#Perl_Module|Wiki]] wird Dir helfen ...
wget http://www.deltab.de/vdr/xxv-stone-0.40.tgz
+
tar zxvf xxv-stone-0.40.tgz
+
  
oder den aktuellen Stand per subversion
+
==Probleme==
  
cd $SOURCEDIR
 
svn checkout http://bandt.dyndns.org/repos/XXV-Skins
 
  
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 stellt den neuen Namen des Skin unter '''Preferences -> HTTPD -> HtmlRoot''' ein. Nur noch mit ''SendData'' den geänderten Skin aktivieren. Und mit eine vollständigen Neuladen der xxv-Webseite im Browser (IE - Taste F5), die Darstellung und den Cache des Browser aktualiseren.
 
  
Natürlich kann man auch die Konfigurationsdatei direkt editieren und xxv danach neu starten:
+
===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
  
cd $HOMEDIR
+
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 ;)
nano .xxvd.cfg
+
  
[HTTPD]
+
Also, das alte Version löschen. Dann wie hier beschrieben mit svn eine frische Version holen.
Clients=5
+
'''HtmlRoot=stone'''
+
Port=8080
+
  
/etc/init.d/xxvd restart
+
===Hat XXV ein Memory Leak?===
 +
Hat XXV ein Memory Leak? Bei mir steigt der Speicherverbrauch in ca. 6 Stunden um das doppelte.
  
==Probleme==
+
Leider hat die ältere Version des perl-EventModul ein Speicherleck, das mit der Version >= 1.05 gefixt wurde. Bitte installiere dein Eventmodul neu:
* '''Ich habe meinen vdr auf 1.3.26 - .27 aktualisiert und benutze xxv V0.42. Ich kann keine Aufnahmen mehr im Interface sehen'''
+
  
In diesen Versionen hatte Klaus etwas am SVDRP Interface rumgeschraubt, so das XXV nichts mehr damit anfangen konnte. Entweder du aktualisierst dein XXV per subversion oder du benutzt einen Patch den wir auf folgender URL veröffentlicht haben:
+
  vdr:~# perl -MCPAN -e 'install Event'
  
http://www.vdr-portal.de/board/thread.php?postid=322895#post322895
+
===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.
Solltest du die c't Distribution benutzen, dann aktualisiere dein xxv Paket per apt-get, danach sollte der Fehler nicht mehr auftreten.
+
[[Samba#Probleme | weiterführende Hinweise dazu...]]
 
+
+
----
+
* '''Meine Sambapfade zeigen komische Zeichen bei Umlaute in den Pfaden der Aufnamen und der Liveplayer spielt diese Aufnahmen nicht ab'''
+
 
+
Schau hier: http://www.vdr-wiki.de/wiki/index.php/Samba#Probleme
+
 
+
----
+
  
 +
===Login ist nicht mehr möglich===
 
* '''Hab das Passwort für den user xxv geändert. Und komm jetzt nicht mehr an Admin-Rechte.'''
 
* '''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 Usertabelle löschen:
+
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           
 
  vdr:~# mysql -u root -p           
Zeile 660: Zeile 652:
 
  Start bin/xxvd: xxvd started with pid 3563.
 
  Start bin/xxvd: xxvd started with pid 3563.
  
Danach solltest du dich mit xxv:xxv normal einloggen können.  
+
Danach solltest du dich wieder mit den Startpasswort xxv:xxv normal einloggen können.  
 
+
----
+
 
+
 
+
* '''Es werden keine Previewimages erstellt:'''
+
 
+
Folgende Checkliste sollte dir helfen:
+
  
* stimmt der Pfad zum mplayer in der RECORDS Config
+
===Es werden keine Vorschaubilder erstellt===
* ist der mplayer eingeschaltet unter Records->config->mplayercommand?
+
Folgende Prüfliste sollte helfen:
* richtige Version unter Records->config->mplayercommand?
+
* stimmt der Pfad zum Videoverzeichnis?
+
* ist das Previewverzeichnis schreibbar für xxvd?
+
  
Bedenke auch, die Vorschaubilder werden im Hintergrund generiert. Das heisst erst nach einer kleinen Weile sind die ersten Previews zu sehen (ca. 2min).
+
* 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'''
  
* '''Es werden keine Previewimages erstellt und in der xxvd_mplayer.log steht:'''
+
und in der xxvd_mplayer.log steht
  
 
  Unknown option on the command line: jpeg
 
  Unknown option on the command line: jpeg
  
 
Ab mplayer-1.0pre6 muss die aufrufende Kommandozeile angepasst werden, xxv macht das für dich.
 
Ab mplayer-1.0pre6 muss die aufrufende Kommandozeile angepasst werden, xxv macht das für dich.
''(Konfigurieren -> RECORDS -> mplayercommand).
+
''(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:
 
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:~/XXV# mplayer -v
+
  vdr:~# mplayer -v
 
  '''MPlayer 1.0pre5-2.95.4''' (C) 2000-2004 MPlayer Team
 
  '''MPlayer 1.0pre5-2.95.4''' (C) 2000-2004 MPlayer Team
 
CPU: IDT/Centaur/VIA C3 Samuel 2 (WinChip C5B core)/C3 Ezra 600.9 MHz (Family: 6,    Stepping: 3)
 
Detected cache-line size is 32 bytes
 
3DNow supported but disabled
 
CPUflags:  MMX: 1 MMX2: 0 3DNow: 0 3DNow2: 0 SSE: 0 SSE2: 0
 
Compiled for x86 CPU with extensions: MMX
 
 
  ...
 
  ...
  
 
+
===Cannot build telnet initial socket===
----
+
Im Logfile tauchen folgende Warnungen auf:
 
+
* '''im Logfile taucht folgende Warnung auf:'''
+
  
 
  11 (10305) [03:27:27 03.02.2005] [Fatal] Cannot build telnet initial socket.
 
  11 (10305) [03:27:27 03.02.2005] [Fatal] Cannot build telnet initial socket.
  
Du musst eine andere Portnummer fuer den Telnetserver in der ~/.xxvd.cfg festlegen. Den Port den du benutzten willst, ist wahrscheinlich schon belegt.  
+
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:
 
+
* '''im Logfile tauchen ab und zu folgende Warnungen auf:'''
+
 
+
  37 (805) [12:01:34 02/02/05] Can't locate object method "timers" via package    "XXV::MODULES::EPG" (perhaps you forgot to load "XXV::MODULES::EPG"?) at  /root/XXV/bin/../lib/Template/Stash.pm line 650.
+
 
+
Diese Meldungen können ignoriert werden. Perl versucht per eval eine Methode aufzurufen.
+
 
+
 
+
----
+
 
+
* '''Beim Starten erscheint folgende Warnung:'''
+
  
 
   Start bin/xxvd: perl: warning: Setting locale failed.
 
   Start bin/xxvd: perl: warning: Setting locale failed.
Zeile 731: Zeile 698:
  
 
Ursache ist, das xxvd zwar entsprechende lokalisierten Texte mitbringt, aber auf dem Rechner keine gleichnamige Systemlokalisierung vorhanden ist.
 
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.
+
Das Unterdrücken dieser Meldung geht mit "export PERL_BADLANG=1", aber sinnvoller ist es die Systemlokalisierung in der gewählten Sprache ebenfalls zu installieren.
  
 +
===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]] diese Verbindung blockiert.
 +
 +
Falls ein von Standard abweichender Port 6419 verwendet wird, muss dies auch in der Konfiguration des XXV-Modules SVDRP eingestellt werden.
 +
===mysql===
 +
Hier sind ein paar Stolperfallen aufgelistet, die nur indirekt mit XXV zu tun haben, und für die XXV eigentlich nichts kann.
 +
Aber da mysql als Datenbank verwendet wird, sind hier ein paar Hinweise aufgeführt, die anderen Anwendern von XXV bereits geholfen haben.
 +
====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 Dateinamen *.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 [http://dev.mysql.com/doc/refman/4.0/de/myisamchk-syntax.html myisamchk] die [http://dev.mysql.com/doc/refman/4.0/de/repair-table.html 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
 +
 +
Die Datenbanken können auch automatisch geprüft werden, falls dies in der verwendeten Distributionen, wie z.B. in Debian, nicht bereits erfolgt.
 +
Indem das folgende Kommando, nach dem Starten von mysql, z.B. innerhalb /etc/init.d/mysql ausgeführt wird.
 +
 +
/usr/bin/mysqlcheck --all-databases --fast --silent
 +
 +
Es kann aber auch selektiv nur eine ausgewählte Datenbank repariert werden.
 +
 +
XXV_DBUSER="xxv"  # Username des Datenbankuser
 +
XXV_DBPASS="xxv"  # Passwort für den Datenbankuser
 +
XXV_DB="XXV"      # Name der Datenbank
 +
echo "Repairing xxv-DB..."
 +
/usr/bin/mysqlcheck --auto-repair $XXV_DB -u $XXV_DBUSER -p$XXV_DBPASS
 +
echo "Repairing done"
 +
 +
Aber generell empfiehlt es sich nicht die Symptome, sondern die Ursachen zu beseitigen. Denn beschädigte Datenbanken entstehen im Allgemeinen, wenn mysql nicht ordnungsgemäß beendet wurden.
 +
 +
====Kein Festplattenplatz mehr====
 +
 +
Auf der Systempartition ist kein freier Platz vorhanden, eventuell hat mysql, durch eine ungeeignete Konfiguration, möglicherweise extrem große Logdateien erstellt und die Festplatte gefüllt. Prüfe deshalb welchen Platz die Protokolldateien in /var/log/mysql belegen.
 +
 +
du -chs /var/log/mysql
 +
 +
Bei den manchen [[Distribution]]en kann die in mysql voreingestellt Konfiguration dazu führen, das jede Datenbanktransaktion in binären Protokolldateien gespeichert wird. Und da es viele EPG Einträge gibt, gibt es viele Datenbanktransaktionen.
 +
Das hat den Effekt das mysql sehr große Logdateien speichert, und damit nach und nach die Festplatte mit Megabytegrossen Log-Dateien füllen.
 +
 +
Das verhindert man durch Änderung in der zu mysql gehörigen Konfigurationdatei. Unter Debian heisst die Datei /etc/mysql/my.cnf .
 +
 +
* Mysql stoppen und diese Log-Dateien löschen,
 +
* Logging abschalten:  die log_bin-Zeile auskommentieren
 +
#log-bin                        = /var/log/mysql/mysql-bin.log
 +
* oder nur für die xxv-DB ausschalten.
 +
binlog-ignore-db        = xxv
 +
* 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!
 +
expire_logs_days = 3
 +
max_binlog_size = 100M
 +
 +
Nach Änderung der Konfigurationdatei nicht vergessen auch mysql neu zu starten.
 +
 +
Siehe hierzu : http://www.vdr-portal.de/board/thread.php?threadid=58420
  
 
===Spezielle Probleme bei Installation der Pakete der c't-Edition===
 
===Spezielle Probleme bei Installation der Pakete der c't-Edition===
* '''Im Logfile finden sich Fehler, dass die Datei ''docu.tmpl'' nicht gefunden wurde.'''
+
====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.
  
Ein Start von xxv ist via
+
'''Lösung:''' damit der Dienst aktiviert wird muss in der Datei ''/etc/default/vdr-xxv'' folgendes eintragen werden: ''ENABLED=1''.
<pre>xxvd -configfile=/var/lib/vdr-xxv/xxvd.cfg</pre>
+
zwar möglich, PID wird zugewiesen, doch das Webinterface (bspw.) ist nicht erreichbar. Der Start mit ''/etc/init.d/vdr-xxv'' start erzeugt '''keine''' Ausgabe:
+
<pre>Starting XXV - Xtreme eXtension for VDR: xxvd started with pid 12345.
+
xxv.</pre>
+
  
'''Lösung:''' In der Datei ''/etc/default/vdr-xxv'' eintragen: ''ENABLED=1''.
+
==Snapshot==
 +
git clone git://projects.vdr-developer.org/xxv.git xxv/
 +
==Aktuelle Version==
 +
[http://projects.vdr-developer.org/attachments/download/718/xxv-1.6.1.tgz 1.6.1]
  
 
==Links==
 
==Links==
{|
+
# [http://projects.vdr-developer.org/projects/xxv Homepage des Projekts]
| [1]
+
| [http://www.mysql.org www.mysql.org]
+
| mySQL
+
|-
+
| [2]
+
| [http://xpix.dieserver.de/content xpix.dieserver.de/content]
+
| Homepage
+
|-
+
| [3]
+
| [http://xpix.dieserver.de/downloads/xxv xpix.dieserver.de/downloads/xxv]
+
| Downloads
+
|-
+
| [4]
+
| [http://xpix.dieserver.de/content/vdr/xxv/tutorials xpix.dieserver.de/content/vdr/xxv/tutorials]
+
| Tutorial zum Schreiben eines Plugins für xxv
+
|-
+
| [5]
+
| [http://www.deltab.de/vdr/xxv.html www.deltab.de/vdr/xxv.html]
+
| Skins für xxv
+
|-
+
| [6]
+
| [http://xpix.dieserver.de/ids/index.cgi?mode=album&album=/ProgramStuff/XXV screenshots]
+
| Etwas ältere Screenshots
+
|-
+
| [7]
+
| [http://www.vdr-portal.de/board/thread.php?threadid=30729 xxv für ct-vdr]
+
| Thread aus vdr-portal
+
|-
+
| [8]
+
| [http://www.xpix.de/downloads/xxv/doc/ Documentation]
+
| Dokumentation zu xxv
+
|}
+
  
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]
 +
[[Kategorie:EPG_und_Co]]
 +
[[Kategorie:Skripte]]
 +
[[Kategorie:Svdrp-anwendungen]]
 +
[[Kategorie:Fernbedienungen]]
 +
 +
{{i18n|xxv}}

Aktuelle Version vom 30. August 2013, 17:14 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

XXV steht für "Xtreme eXtension for VDR" und ist ein zentraler Dienst zum Administrieren des VDR und dessen Umgebung.

Funktionen sind :

  • voller Fernzugriff zum VDR.
  • einfach erweiterbares Perl framework
  • skalierbar zur Kontrolle von einem oder mehreren VDRs, mit einer Oberfläche
  • Verschiedene Schnittstellen
    • HTML, XML, JSON over HTTP,
    • und als Funktionsmuster : WAP, TELNET, SOAP
  • Verschiedene Skins
  • Kernfeature
    • Suchbares, sortierbares EPG (Electronic programming guide)
    • Anzeigen und Bearbeiten von Timern, Aufnahmen, Kanälen
    • Autotimer (erzeugt Timer bei benutzerdefinierte Volltextsuche über die EPG Daten)
    • Fernbedienung und Kontrollmonitor des Videosignals
    • Integration Live-TV-Streaming (benötigt Streamdev-plugin)
    • Streaming von Aufnahmen
      • über HTTP z.B. für interne Browser Plugins (unterstützt Anwahl des Startpunkts)
      • oder Alternativ über eine Playliste per SMB/NFS für externe Videoabspieler
    • Anzeige der Liste von Aufnahmen mit Vorschaubildern
    • Konfigurierbare Nutzerzugriffsebene, -regeln
  • viele nette zusätzliche Feature, wie
    • Anzeige einer eigenen oder der Muggle-plugin Datenbank mit Audio Streaming
    • Anzeige der Videotextseiten des Osdteletext-plugin
    • Community Feature zum "Austausch der meist programmierten EPG Einträge"
    • Medienbibliothek zum Verwalten von DVDs, VCD, etc.
    • Nachrichtensystem für RSS-Feed, Mail-Benachrichtigung
    • Sammeln von Systemdaten, Diagrammanzeige
    • Historische Aufzeichnung alle ausgeführten Aufnahmen
    • Schlagworte mit Autotimer, Timern, Aufnahmen verbinden
    • Auflösen von Timerkonflikten, Automatisches verschieben von Timer zwischen Kanälen oder mehreren VDR
    • ...

[Bearbeiten] Bilder

Main Screen
Autotimer
Remote
XstyleSchema
Event Ansicht
Autotimerliste
Running Now
Spaltenansicht
EPG im Skin Stone
Aufnahmen im Skin Stone
Timer im Skin Snow (Flacher Modus)
Skin Jason

[Bearbeiten] Softwareanforderungen

  • mysql-server
  • verschiedene Perl::Module (siehe Installation)
  • vdr2jpeg (optional)
  • mplayer (optional), Installation siehe mplayer-plugin

[Bearbeiten] Installation

Für die Installation ist der Download der letzten Version erforderlich. Wichtige Informationen stehen in der im Archiv enthaltenen Datei INSTALL.

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 Entwicklungsstand herunterzuladen, weitere Detail sind im Abschnitt Snapshot beschrieben.

[Bearbeiten] Distributionen

Erforderlich ist die MySQL-Datenbank, die GD Library und einige Perl Module. Für die Perl Module gibt es zwei Wege, über die Distributions-Pakete, oder über cpan, letzteres kann direkt über das Installations-Skript von xxv erfolgen.

Für die Speicherung der Daten verwendet XXV eine MySQL-Datenbank. Falls mysql noch nicht installiert ist, kann dies auf einem für Distributionen geeigneten Wege erfolgen. Nach erfolgter Installation von mysql, bitte auch die weiterführenden Hinweise über einige mysql-Stolperfallen berücksichtigen.

[Bearbeiten] Debian

apt-get install mysql-server libgd2
# Perl module
apt-get install \
   perl \
   perl-base \
   perl-modules \
   libcgi-perl \
   libio-zlib-perl \
   libconfig-tiny-perl \
   libdate-manip-perl \
   libdbd-mysql-perl \
   libdbi-perl \
   libmd5-perl \
   libdigest-hmac-perl \
   libevent-perl \
   libgd-gd2-noxpm-perl \
   libgd-graph-perl \
   libgd-graph3d-perl \
   libgd-text-perl \
   txt2html \
   libhtml-tree-perl \
   libjson-perl \
   libwww-perl \
   liblocale-gettext-perl \
   libmp3-info-perl \
   libnet-amazon-perl \
   libnet-telnet-perl \
   libnet-xmpp-perl \
   libproc-process-perl \
   libsoap-lite-perl \
   libtemplate-perl \
   libhtml-template-perl \
   liburi-perl \
   libxml-rss-perl \
   libxml-simple-perl

[Bearbeiten] Gentoo

Mittels

emerge -av xxv

werden auch alle Abhängigkeiten (inkl. mysql) installiert.

Alternativ:

Gegebenenfalls muss außerdem das Paket Log-Log4perl in /etc/portage/package.keywords un-maskiert werden:

dev-perl/Log-Log4perl ~x86

Installation der Pakete mit

emerge mysql gd
# perl modules
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/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

[Bearbeiten] Ubuntu

Benutzer der Distribution der Ubuntu finden unter https://launchpad.net/~yavdr/+archive/stable-vdr die die Komplettpakete vdr-xxv, vdr-xxv-skins, sowie optional das Plugin vdr-plugin-xxvautotimer.

[Bearbeiten] Arch-Linux

pacman -S mysql gd

[Bearbeiten] Crux

prt-get depinst mysql
sed -i "1i/usr/lib/mysql" /etc/ld.so.conf
ldconfig
prt-get depinst libgd

[Bearbeiten] SuSE

yast -i mysql gd

[Bearbeiten] per Source

[Bearbeiten] MySQL

Falls die Distribution keine eigenen Pakete anbietet, kann die Installation von mysql auch manuell erfolgen.

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

[Bearbeiten] GD

Für das dynamischen Erzeugung und Manipulation von Grafiken benötigt XXV die GD Library.

cd $SOURCEDIR
tar xvzf gd-<VERSION>.tar.gz
./configure 
make
make install

[Bearbeiten] 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 setzt lediglich ffmpeg 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

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

[Bearbeiten] 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

[Bearbeiten] Konfiguration

Starten des MySQL-Servers mit:

/etc/init.d/mysql start

Anlegen der Datenbank xxv per mitgeliefertem Skript, 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)

[Bearbeiten] 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

Anschließend kann der aktivierte Dienst mit folgendem Kommando gestartet werden.

/etc/init.d/xxvd start 

Der Vollständigkeit halber sei das Stoppen und das Neustarten des xxvd-Dienstes erwähnt :

/etc/init.d/xxvd stop 
/etc/init.d/xxvd restart


[Bearbeiten] 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 vor allem für Paketbauer interessant, die das xxv-Dateien in separaten 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 Prozess-ID 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
--contrib=DIR ./contrib Verzeichnis mit zusätzlichen Skript-Dateien

[Bearbeiten] 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

[Bearbeiten] 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 Default-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 einer 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

[Bearbeiten] xxv-Module/Plugins

General 
ist eigentlich kein eigenständiges Modul. Da es aus Sicht von xxv so aussieht, sollte es der Vollständigkeit halber hier aufgelistet werden. Hier werden globale Einstellungen wie z.B. die Konfiguration des Datenbankserver usw. aufgelistet.
  • Fast alle Module können in Ihrer Funktion deaktiviert werden (Einstellungen -> ModName -> Active = 'no').
  • Die Templates sind jetzt ebenfalls lokalisiert und übersetzbar, das heißt 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.
  • Autotimer können bestimmen ob Timer mit VPS und eigenem Vor- und Nachlauf angelegt werden.
  • Bei einem Update werden jetzt zusätzlich auch der Name des Senders der gefundenen Events angezeigt.
  • Autotimer - Einstellung - exclude: Generelles Ausschließen von Kanälen, um Kanäle ab eine Position in der Kanalliste von der Suche nach Events auszuschließen.

Suchbegriffe können entweder per Komma als logisch UND verkettet werden bzw. per Minuszeichen ausgeschlossen werden. Alternativ sind auch logischer Operatoren wie AND OR bzw. AND NOT zulässig.

Titel der Aufnahmen: Der Aufbau des Titels der Aufnahmen kann durch Platzhalter beeinflusst werden, oder mit zusätzlichen Informationen erweitern werden. Über das Parameterfeld Gruppiere alle Aufnahmen in einem Verzeichnis wird der Titel der Aufnahme gesteuert.

Folgende allgemein nutzbare Platzhalter existieren:

  • %title% - EPG Titel
  • %subtitle% - EPG Subtitel (Shorttext)
  • %date% - Datum der Aufnahme im Format YYYY-MM-DD
  • %abstract% - Anfangssatz der EPG-Beschreibung

Wenn die EPG Daten mittels tvmovie2vdr erzeugt wurden und die notwendigen Angaben in der EPG-Beschreibung vorhanden sind, können folgende Platzhalter verwendet werden :

  • %regie% - Director: ....
  • %category% - Category: ....
  • %genre% - Genre: ....
  • %year% - Year: ....
  • %country% - Country: ....
  • %originaltitle% - Originaltitle: ....
  • %fsk% - FSK: ....
  • %episode% - Episode: ....
  • %rating% - Rating: ....
  • %cast% - Cast: ....

Beispiele :

  • %title% - Nur den Titel verwenden
  • Nachrichten~%date% - %title% - z.B. Nachrichten~2009-12-24 - Tagesschau
  • Serie~%title%~%subtitle% - z.B. Serie~Star Trek - Enterprise~Erstflug
  • %title%~%subtitle% - Standardverhalten, wenn nichts definiert wurde
  • %title%~%abstract% - z.B. Serientitel aus EPG-Beschreibung des Transponder RLT übernehmen


TIMERS 
Dieses Modul erlaubt das Löschen, Erstellen und Editieren der neuen Timer, sowie deren Darstellung. Timer referenzieren auf Ihren EPG Eintrag, falls dieser vorhanden ist.


EPG 
Diese Modul liest die EPG Daten über die SVDRP-Schnittstelle ein und speichert deren Einträge in der Datenbank ab. EPG Daten werden in verschieden Formen, Listen, Tabellen aufbereitet und durchsuchbar dargestellt. EPG Daten werden gesondert gekennzeichnet, wenn diese als Timer aufgezeichnet werden.


CHANNELS 
Diese Modul liest die Kanaldaten über die SVDRP-Schnittstelle ein und speichert deren Einträge in der Datenbank ab. Dieses Modul erlaubt das Löschen, Erstellen und Editieren der Kanäle, sowie deren Darstellung.


HTTPD 
Dieses Modul stellt einen HTTP Server sowie ein Webinterface zur Verfügung, um xxv per Browser bedienen zu können. Nach persönlichen Belieben kann 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.


INTERFACE 
Dieses Modul stellt einen Daten-Server zur Verfügung, um xxv mit anderen GUIs bedienen zu können.


WAPD 
Dieses Modul stellt einen WapD Server zur Verfügung, um xxv mittels WAP Browser (Mobiltelefon) bedienen zu können. Da WAP nicht mehr aktiv unterstützt wird, sind nur elementare Funktionen nutzbar.


MUSIC 
Das Modul stellt eine Medienbibliothek sowie einen Icecast Streamserver zur Verfügung.


RECORDS 
Dieses Modul stellt alle Aufnahmen übersichtlich dar und erlaubt verschiedene Aktionen mit den einzelnen Aufnahmen.
  • Es werden die Schnittmarken grafisch in der Aufnahmeübersicht dargestellt.
  • Viele Eigenschaften der Aufnahmen sind 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-Modul erlaubt es, während der Laufzeit verschiedene Parameter der Benutzeroberfläche (HTTP, Telnet, ..) zu verändern und abzuspeichern.


GRAB 
Grab stellt das Livebild des VDR als JPEG Bilddatei zur Verfügung. Das Plugin ist in der Lage, zusätzliche Informationen (wie z.B. den aktuellen Kanal) in das zwischengespeicherte Livebild einzublenden.


REMOTE 
Dieses Modul stellt eine Fernbedienung und in Verbindung mit Grab auch ein Livebild dar. Somit lässt sich der VDR per Interface rudimentär bedienen.


STATUS 
Status stellt alle Systeminformationen in den Interfaces als übersichtliche Darstellung dar. Es werden 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 Modul verwaltet die Verbindung zur allen genutzten Video Disk Rekordern und stellt alle Befehle der SVDRP Schnittstelle jeweiligen VDR zur Verfügung.


VTX 
Beispielseite

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. Ü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 jeweiligen gewählten Senders.


MEDIALIB 
Mit diesem Modul ist es möglich seine private Filmsammlung zu verwalten. Um nicht alle Angaben händisch machen zu müssen, können diese online importiert werden.


USER 
Eine Nutzerauthentifikation, die in allen Interfaces Kennung und Passwort des Users abfragt und eine Zugangsverwaltung zur Verfügung stellt. 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

Bestimmte Parameter können beim jeweiligen User eingestellt werden. Dabei nutzen wir ein generisches System, wenn zum Beispiel der ausgewählte User nur den Skin Snow sehen möchte kann man das in den Benutzereinstellungen unter 'Präferenzen' 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 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 jeweilige User auch nur als Level=User eingestellt ist, kann man somit verhindern das dieser seine Einstellungen ändert.

[Bearbeiten] Skins installieren

Stone Skin

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 den 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.

Anschließend 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 aktualisieren.

[Bearbeiten] 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

[Bearbeiten] ... als Download

Natürlich wird es auch weiterhin die Möglichkeit geben, von dem vorhandenen Download Server sich aktuelle Pakete zu holen und diese dann zu entpacken.

  cd $SOURCEDIR
  tar xvzf xxv-<VERSION>.tar.gz

[Bearbeiten] 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' heißt 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' heißen, 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.

Hinweis
Hinweis

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 ...

[Bearbeiten] Probleme

[Bearbeiten] 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.

[Bearbeiten] Hat XXV ein Memory Leak?

Hat XXV ein Memory Leak? Bei mir steigt der Speicherverbrauch in ca. 6 Stunden um das doppelte.

Leider hat 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'

[Bearbeiten] 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...

[Bearbeiten] 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.

[Bearbeiten] 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
...

[Bearbeiten] 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.

[Bearbeiten] 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. Das Unterdrücken dieser Meldung geht mit "export PERL_BADLANG=1", aber sinnvoller ist es die Systemlokalisierung in der gewählten Sprache ebenfalls zu installieren.

[Bearbeiten] 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 diese Verbindung blockiert.

Falls ein von Standard abweichender Port 6419 verwendet wird, muss dies auch in der Konfiguration des XXV-Modules SVDRP eingestellt werden.

[Bearbeiten] mysql

Hier sind ein paar Stolperfallen aufgelistet, die nur indirekt mit XXV zu tun haben, und für die XXV eigentlich nichts kann. Aber da mysql als Datenbank verwendet wird, sind hier ein paar Hinweise aufgeführt, die anderen Anwendern von XXV bereits geholfen haben.

[Bearbeiten] 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 Dateinamen *.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

Die Datenbanken können auch automatisch geprüft werden, falls dies in der verwendeten Distributionen, wie z.B. in Debian, nicht bereits erfolgt. Indem das folgende Kommando, nach dem Starten von mysql, z.B. innerhalb /etc/init.d/mysql ausgeführt wird.

/usr/bin/mysqlcheck --all-databases --fast --silent

Es kann aber auch selektiv nur eine ausgewählte Datenbank repariert werden.

XXV_DBUSER="xxv"  # Username des Datenbankuser
XXV_DBPASS="xxv"  # Passwort für den Datenbankuser
XXV_DB="XXV"      # Name der Datenbank 
echo "Repairing xxv-DB..."
/usr/bin/mysqlcheck --auto-repair $XXV_DB -u $XXV_DBUSER -p$XXV_DBPASS
echo "Repairing done"

Aber generell empfiehlt es sich nicht die Symptome, sondern die Ursachen zu beseitigen. Denn beschädigte Datenbanken entstehen im Allgemeinen, wenn mysql nicht ordnungsgemäß beendet wurden.

[Bearbeiten] Kein Festplattenplatz mehr

Auf der Systempartition ist kein freier Platz vorhanden, eventuell hat mysql, durch eine ungeeignete Konfiguration, möglicherweise extrem große Logdateien erstellt und die Festplatte gefüllt. Prüfe deshalb welchen Platz die Protokolldateien in /var/log/mysql belegen.

du -chs /var/log/mysql

Bei den manchen Distributionen kann die in mysql voreingestellt Konfiguration dazu führen, das jede Datenbanktransaktion in binären Protokolldateien gespeichert wird. Und da es viele EPG Einträge gibt, gibt es viele Datenbanktransaktionen. Das hat den Effekt das mysql sehr große Logdateien speichert, und damit nach und nach die Festplatte mit Megabytegrossen Log-Dateien füllen.

Das verhindert man durch Änderung in der zu mysql gehörigen Konfigurationdatei. Unter Debian heisst die Datei /etc/mysql/my.cnf .

  • Mysql stoppen und diese Log-Dateien löschen,
  • Logging abschalten: die log_bin-Zeile auskommentieren
#log-bin                        = /var/log/mysql/mysql-bin.log
  • oder nur für die xxv-DB ausschalten.
binlog-ignore-db        = xxv
  • 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!
expire_logs_days = 3
max_binlog_size = 100M

Nach Änderung der Konfigurationdatei nicht vergessen auch mysql neu zu starten.

Siehe hierzu : http://www.vdr-portal.de/board/thread.php?threadid=58420

[Bearbeiten] Spezielle Probleme bei Installation der Pakete der c't-Edition

[Bearbeiten] 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.

[Bearbeiten] Snapshot

git clone git://projects.vdr-developer.org/xxv.git xxv/

[Bearbeiten] Aktuelle Version

1.6.1

[Bearbeiten] Links

  1. Homepage des Projekts
In anderen Sprachen