Muggle-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(mysql-Datenbank befüllen)
(Status)
 
(41 dazwischenliegende Versionen von 21 Benutzern werden nicht angezeigt)
Zeile 2: Zeile 2:
 
'''Autoren:''' Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald
 
'''Autoren:''' Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald
  
Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird.
+
Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird. Es stehen verschiedene Datenbanken zur Verfügung.
 +
 
 +
===Status===
 +
Letztes Update 01/2009
  
 
==Bilder==
 
==Bilder==
[[Bild:muggle-plugin.jpg|thumb|none|''Setup'']]
+
[[Bild:muggle-plugin.jpg|thumb|none|''Einstellungen'']]
  
==Hardwareanforderungen==
 
 
==Softwareanforderungen==
 
==Softwareanforderungen==
* mySQL
+
Welche Datenbank verwendet wird, muss man beim Kompilieren festlegen. Es gibt Backends für MySql Server, MySql Embedded, Postgresql und sqlite3. Details siehe README.mysql, README.postgresql, README.sqlite.
 +
* mySQL oder sqlite oder postgresql
 
* libid3tag
 
* libid3tag
 
* libmad
 
* libmad
Zeile 17: Zeile 20:
  
 
==Installation==
 
==Installation==
<pre>
+
===Optionen beim Kompilieren ===
cd $SOURCEDIR
+
{| class="wikitable"
tar xvzf libid3tag-<VERSION>.tar.gz
+
|-
cd libid3tag-<VERSION>
+
| bgcolor=#efefef | HAVE_VORBISFILE=1
./configure --prefix=/usr/local
+
| verwende libvorbis und libvorbisfile für die Wiedergabe von OGG Vorbis Dateien
make
+
|-
make install
+
| bgcolor=#efefef | HAVE_FLAC=1
cd -
+
| verwende libFLAC++ für die Wiedergabe von FLAC Dateien
 
+
|-
tar xvzf libmad-<VERSION>.tar.gz
+
| bgcolor=#efefef | HAVE_SNDFILE=1
cd libmad-<VERSION>
+
| verwende libsndfile für die Wiedergabe von .wav Dateien
./configure --prefix=/usr/local
+
|-
make
+
| bgcolor=#efefef | HAVE_ONLY_SERVER=1
make install
+
| Macht nur für MySql Sinn: Keine Unterstützung für MySql Embedded.
cd -
+
|-
 
+
| bgcolor=#efefef | HAVE_SQLITE=1
tar xvzf libogg-<VERSION>.tar.gz
+
| Als Datenbank wird SQLite 3 verwendet.
cd libogg-<VERSION>
+
|-
./configure --prefix=/usr/local
+
| bgcolor=#efefef | HAVE_MYSQL=1
make
+
| Als Datenbank wird MySql verwendet.
make install
+
|-
cd -
+
| bgcolor=#efefef | HAVE_PG=1
 
+
| Als Datenbank wird PostGresql verwendet.
tar xvzf libvorbis-<VERSION>.tar.gz
+
|-
cd libvorbis-<VERSION>
+
| bgcolor=#efefef | MUSICDIR=/mnt/music
./configure --prefix=/usr/local \
+
| Dies ist die Vorgabe für Option -t - dies gilt also, wenn man -t nicht übergibt.
            --with-ogg-libraries=/usr/local/lib
+
|}
make
+
make install
+
cd -
+
 
+
tar xvzf flac-<VERSION>.tar.gz
+
./configure --prefix=/usr/local \
+
            --with-ogg-libraries=/usr/local/lib
+
make
+
make install
+
cd -
+
 
+
tar xvzf taglib-<VERSION>.tar.gz
+
cd taglib-<VERSION>
+
./configure --prefix=/usr/local
+
make
+
make install
+
</pre>
+
 
+
Sofern wir den Server nicht ''Binär'' installieren konnten, installieren wir als nächstes '''mysql'''.
+
 
+
<pre>
+
cd $SOURCEDIR
+
tar xvzf mysql-<VERSION>.tar.gz
+
cd mysql-<VERSION>
+
./configure --prefix=/usr/local \
+
            --libexecdir=/usr/local/bin \
+
            --without-extra-tools \
+
            --without-bench
+
make
+
make install
+
</pre>
+
  
 +
===Source===
 
Nach der erfolgten Installation von mysql folgen noch ein paar weitere für ''muggle'' wichtige Installationsschritte.
 
Nach der erfolgten Installation von mysql folgen noch ein paar weitere für ''muggle'' wichtige Installationsschritte.
  
Zeile 92: Zeile 65:
 
  tar xvzf vdr-muggle-<VERSION>.tgz
 
  tar xvzf vdr-muggle-<VERSION>.tgz
 
  ln -s muggle-<VERSION> muggle
 
  ln -s muggle-<VERSION> muggle
 
Wurde, wie im oben genannten Installationsbeispiel die Sourcen selbst übersetzt, muss im '''Makefile''' des muggle-plugins eine kleine Anpassung vorgenommen werden.
 
 
Folgende Änderungen nehmen wir in folgender Datei '''$SOURCEDIR/VDR/PLUGINS/src/muggle/Makefile''' vor:
 
 
<pre>
 
-      -I/usr/include/mysql/ -I/usr/include/taglib
 
+      $(shell mysql_config --include) $(shell taglib-config --cflags)
 
 
- MIFLAGS += -I/usr/include/taglib -lmysqlclient
 
+ MIFLAGS += $(shell taglib-config --cflags) -lmysqlclient
 
</pre>
 
 
Ansonsten können wir nun das Plugin wie gewohnt übersetzen.
 
 
cd $SOURCEDIR/VDR
 
make plugins
 
  
 
Kopieren von mugglei in den '''PATH'''.
 
Kopieren von mugglei in den '''PATH'''.
Zeile 114: Zeile 70:
 
  cp $SOURCEDIR/VDR/PLUGINS/src/muggle/mugglei /usr/local/bin
 
  cp $SOURCEDIR/VDR/PLUGINS/src/muggle/mugglei /usr/local/bin
  
==mysql-Datenbank befüllen==
+
===mysql-Datenbank befüllen===
 
Als erstes starten wir den mysql-Server mit.
 
Als erstes starten wir den mysql-Server mit.
  
 
  mysqld_safe --user=mysql &
 
  mysqld_safe --user=mysql &
  
Nun können wir die Datenbank ''füttern'', vorrausgesetzt die Mp3 Sammlung befindet sich in '''/mp3'''.
+
Nun können wir die Datenbank ''füttern''. Dazu starten wir den vdr, gehen in den Setup vom muggle - Plugin und wählen den Befehl "Datenbank synchronisieren".
  
Später via [[commands.conf]], mit folgenden Eintrag:
+
Normalerweise ist das aber nicht nötig - wenn muggle die Datenbank nicht findet, fragt er, ob er sie anlegen und automatisch füttern soll.
 
+
Update DB : echo "mugglei -h localhost -c -t /mp3 ." | at now
+
 
+
Falls das nicht funktioniert, siehe auch [[runvdr]] (Tipps).
+
  
 
Übergabe für VDR.
 
Übergabe für VDR.
Zeile 140: Zeile 92:
 
  /usr/local/bin/mysqld_safe --user=mysql &
 
  /usr/local/bin/mysqld_safe --user=mysql &
  
==Probleme==
+
==Konfiguration==
===SuSE spezifisch===
+
===Parameter===
Bei [[SuSE]] wurde mySQL so compiliert, dass import lokaler files nicht unterstuetzt wird. Einfach Sourcen nach der Anleitung oben übersetzen, oder z.B. rpms direkt von www.mysql.org installieren. Die [[SuSE]] eigenen Packete sollte man falls installiert entfernen, folgender [[Einzeiler]] erledigt dies:
+
====Plugin====
 
+
{| class="wikitable"
<pre>
+
rpm -qa|grep mysql|xargs rpm -e --nodeps
+
</pre>
+
 
+
==Optionen==
+
{| border=1 cellpadding=2 cellspacing=0
+
 
|-
 
|-
| bgcolor=#efefef|HAVE_VORBISFILE=1
 
| optionally libvorbis and libvorbisfile to replay OGG Vorbis files
 
|-
 
| bgcolor=#efefef|HAVE_FLAC=1
 
| optionally libFLAC++ to replay FLAC files
 
|-
 
| bgcolor=#efefef|HAVE_SERVER=1
 
| if you want to use a dedicated Mysql server instead of the embedded code
 
|}
 
 
===Plugin===
 
{| border=1 cellpadding=2 cellspacing=0
 
|- bgcolor=#efefef
 
 
!Parameter (kurz)
 
!Parameter (kurz)
 
!Parameter (lang)
 
!Parameter (lang)
Zeile 183: Zeile 116:
 
|-
 
|-
 
| -d DIRN || --datadir=DIRN  || specify directory for embedded sql data (default is $HOME/.muggle)
 
| -d DIRN || --datadir=DIRN  || specify directory for embedded sql data (default is $HOME/.muggle)
|-
 
| -g      || --giantdisc    || enable full Giantdisc compatibility mode
 
 
|-
 
|-
 
| -v      || --verbose      || specify debug level. The higher the more (default is 1)
 
| -v      || --verbose      || specify debug level. The higher the more (default is 1)
 
|}
 
|}
  
===Mugglei===
+
====Mugglei====
{| border=1 cellpadding=2 cellspacing=0
+
Je nach dem, welche Datenbank verwendet wird, stehen manche Optionen nicht zur Verfügung.
|- bgcolor=#efefef
+
 
 +
{| class="wikitable"
 +
|-
 
!Parameter
 
!Parameter
 +
!Lange Form
 
!Beschreibung
 
!Beschreibung
 
|-
 
|-
| -h <hostname> || specify host of mySql database server (default is 'localhost')
+
| -h <hostname> || --name=<hostname> || Rechnername vom Datanbankserver (Vorgabe 'localhost')
 
|-
 
|-
| -s <socket>   || specify a socket for mySQL communication (default is TCP)
+
| -p <port> || --port=<port> || Port vom Datenbankserver (Vorgabe datanbankspezifisch)
 
|-
 
|-
| -n <database> || specify database name (default is 'GiantDisc')
+
| -s <socket>   || --socket=<socket> || Socket zur Datenbank (Vorgabe datenbankspezifisch, bei MySql ist es TCP)
 
|-
 
|-
| -u <username> || specify user of mySql database (default is empty)
+
| -n <database> || --name=<database> || Name der Datenbank (Vorgabe 'GiantDisc')
 
|-
 
|-
| -p <password> || specify password of user (default is empty password)
+
| -u <username> || --user=<username> || Benutzername für Datenbank (Vorgabe: leer)
 
|-
 
|-
| -z            || scan all database entries and delete entries for files not found (is not yet implemented)
+
| -w <password> || --password=<password> || Passwort für Datenbank (Vorgabe: leer)
 
|-
 
|-
| -c            || delete the entire database and recreate a new empty one
+
| -t <topleveldir> || --toplevel=<topleveldir> || Name des Musikverzeichnisses (Vorgabe ist /mnt/music respektive der beim Kompilieren angegebene Wert)
 
|-
 
|-
| -v           || the wanted log level, the higher the more. Default is 1
+
| -z           || --delete || lösche alle Einträge in der Datenbank, deren Musikdateien fehlen
|}
+
 
+
==Bedienung==
+
==Links==
+
{|
+
| [1]
+
| http://www.mysql.com
+
| mySQL
+
 
|-
 
|-
| [2]
+
| -c            || --create || lösche die ganze Datenbank und generiere sie neu
| http://www.underbit.com/products/mad
+
| (M)PEG (A)udio (D)ecoder Homepage
+
 
|-
 
|-
| [3]
+
| -v            || --verbose || Gesprächigkeit, je höher, desto mehr. Default ist 1.
| http://www.xiph.org/ogg/vorbis
+
| Ogg Vorbis CODEC Project
+
 
|-
 
|-
| [4]
+
| -d <dirname>  || --datadir=<dirname> || Hier wird die Datenbank angelegt, wenn eine "embedded" Datenbank verwendet wird (sqlite3 oder je nach Konfiguration MySql) (Vorgabe: "$HOME/.muggle")
| http://developer.kde.org/~wheeler/taglib.html
+
|}
| Taglib - Audio Meta-Data Library
+
 
|-
+
==Entwicklerversion==
| [5]
+
git clone git://projects.vdr-developer.org/vdr-plugin-muggle.git
| http://vdrportal.de/board/thread.php?postid=206688
+
 
| snd2usb für muggle zum Schreiben auf USB Stick
+
==Aktuelle Version==
|-
+
[http://projects.vdr-developer.org/attachments/download/53/vdr-muggle-0.2.3.tgz 0.2.3]
| [6]
+
 
| http://flac.sourceforge.net
+
==Links==
| flac
+
# [http://projects.vdr-developer.org/projects/show/plg-muggle Homepage des Plugins]
|-
+
 
| [7]
+
[[Kategorie:Plugins]]
| http://www.htpc-tech.de/htpc/muggle.htm
+
{{i18n|muggle-plugin}}
| Homepage des Plugins
+
|}[[Kategorie:Plugins]]
+

Aktuelle Version vom 18. August 2013, 12:36 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Autoren: Andi Kellner, Lars von Wedel, Ralf Klueber, Wolfgang Rohdewald

Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird. Es stehen verschiedene Datenbanken zur Verfügung.

[Bearbeiten] Status

Letztes Update 01/2009

[Bearbeiten] Bilder

Einstellungen

[Bearbeiten] Softwareanforderungen

Welche Datenbank verwendet wird, muss man beim Kompilieren festlegen. Es gibt Backends für MySql Server, MySql Embedded, Postgresql und sqlite3. Details siehe README.mysql, README.postgresql, README.sqlite.

  • mySQL oder sqlite oder postgresql
  • libid3tag
  • libmad
  • taglib
  • libvorbis >= libogg (optional)
  • flac >= libogg >= nasm (optional)

[Bearbeiten] Installation

[Bearbeiten] Optionen beim Kompilieren

HAVE_VORBISFILE=1 verwende libvorbis und libvorbisfile für die Wiedergabe von OGG Vorbis Dateien
HAVE_FLAC=1 verwende libFLAC++ für die Wiedergabe von FLAC Dateien
HAVE_SNDFILE=1 verwende libsndfile für die Wiedergabe von .wav Dateien
HAVE_ONLY_SERVER=1 Macht nur für MySql Sinn: Keine Unterstützung für MySql Embedded.
HAVE_SQLITE=1 Als Datenbank wird SQLite 3 verwendet.
HAVE_MYSQL=1 Als Datenbank wird MySql verwendet.
HAVE_PG=1 Als Datenbank wird PostGresql verwendet.
MUSICDIR=/mnt/music Dies ist die Vorgabe für Option -t - dies gilt also, wenn man -t nicht übergibt.

[Bearbeiten] Source

Nach der erfolgten Installation von mysql folgen noch ein paar weitere für muggle wichtige Installationsschritte.

cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
cd ..
chown -R mysql var
ldconfig
mysql_install_db --user=mysql &

Die Installation des Plugins erfolgt an der allbekannten Stelle $SOURCEDIR/VDR/PLUGINS/src vor:

cd $SOURCEDIR/VDR/PLUGINS/src
tar xvzf vdr-muggle-<VERSION>.tgz
ln -s muggle-<VERSION> muggle

Kopieren von mugglei in den PATH.

cp $SOURCEDIR/VDR/PLUGINS/src/muggle/mugglei /usr/local/bin

[Bearbeiten] mysql-Datenbank befüllen

Als erstes starten wir den mysql-Server mit.

mysqld_safe --user=mysql &

Nun können wir die Datenbank füttern. Dazu starten wir den vdr, gehen in den Setup vom muggle - Plugin und wählen den Befehl "Datenbank synchronisieren".

Normalerweise ist das aber nicht nötig - wenn muggle die Datenbank nicht findet, fragt er, ob er sie anlegen und automatisch füttern soll.

Übergabe für VDR.

vdr -P'muggle -t /mp3'

Für das automatische Starten des Mysql Daemons...

Unterhalb von ../support-files im Sourceverzeichnis, befinden sich Templates.

Ein Eintrag in der /etc/init.d/boot.local (falls vorhanden) sollte auch langen.

# starting mysqld daemon
/usr/local/bin/mysqld_safe --user=mysql &

[Bearbeiten] Konfiguration

[Bearbeiten] Parameter

[Bearbeiten] Plugin

Parameter (kurz) Parameter (lang) Beschreibung
-h HHHH --host=HHHH specify database host (default is localhost)
-s SSSS --socket=PATH specify database socket (default is TCP connection)
-n NNNN --name=NNNN specify database name (overridden by -g)
-p PPPP --port=PPPP specify port of database server (default is )
-u UUUU --user=UUUU specify database user (default is )
-w WWWW --password=WWWW specify database password (default is empty)
-t TTTT --toplevel=TTTT specify toplevel directory for music (default is /mnt/music)
-d DIRN --datadir=DIRN specify directory for embedded sql data (default is $HOME/.muggle)
-v --verbose specify debug level. The higher the more (default is 1)

[Bearbeiten] Mugglei

Je nach dem, welche Datenbank verwendet wird, stehen manche Optionen nicht zur Verfügung.

Parameter Lange Form Beschreibung
-h <hostname> --name=<hostname> Rechnername vom Datanbankserver (Vorgabe 'localhost')
-p <port> --port=<port> Port vom Datenbankserver (Vorgabe datanbankspezifisch)
-s <socket> --socket=<socket> Socket zur Datenbank (Vorgabe datenbankspezifisch, bei MySql ist es TCP)
-n <database> --name=<database> Name der Datenbank (Vorgabe 'GiantDisc')
-u <username> --user=<username> Benutzername für Datenbank (Vorgabe: leer)
-w <password> --password=<password> Passwort für Datenbank (Vorgabe: leer)
-t <topleveldir> --toplevel=<topleveldir> Name des Musikverzeichnisses (Vorgabe ist /mnt/music respektive der beim Kompilieren angegebene Wert)
-z --delete lösche alle Einträge in der Datenbank, deren Musikdateien fehlen
-c --create lösche die ganze Datenbank und generiere sie neu
-v --verbose Gesprächigkeit, je höher, desto mehr. Default ist 1.
-d <dirname> --datadir=<dirname> Hier wird die Datenbank angelegt, wenn eine "embedded" Datenbank verwendet wird (sqlite3 oder je nach Konfiguration MySql) (Vorgabe: "$HOME/.muggle")

[Bearbeiten] Entwicklerversion

git clone git://projects.vdr-developer.org/vdr-plugin-muggle.git

[Bearbeiten] Aktuelle Version

0.2.3

[Bearbeiten] Links

  1. Homepage des Plugins
In anderen Sprachen