Muggle-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installation: M Optional)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
'''Autor:''' 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.
Zeile 13: Zeile 13:
 
* libmad
 
* libmad
 
* taglib
 
* taglib
* libvorbis >= libogg
+
* libvorbis >= libogg (optional)
* flac >= libogg >= nasm
+
* flac >= libogg >= nasm (optional)
  
 
==Installation==
 
==Installation==
Zeile 76: Zeile 76:
 
</pre>
 
</pre>
  
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.
  
<pre>
+
cd /usr/local/lib
cd /usr/local/lib
+
ln -s mysql/libmysqlclient.so* .
ln -s mysql/libmysqlclient.so* .
+
groupadd mysql
groupadd mysql
+
useradd -g mysql mysql
useradd -g mysql mysql
+
cd ..
cd ..
+
chown -R mysql var
chown -R mysql var
+
ldconfig
mysql_install_db --user=mysql &
+
mysql_install_db --user=mysql &
ldconfig
+
</pre>
+
  
Die Installation des plugins erfolgt an der allbekannten Stelle '''$SOURCEDIR/VDR/PLUGINS/src''' vor:
+
Die Installation des Plugins erfolgt an der allbekannten Stelle '''$SOURCEDIR/VDR/PLUGINS/src''' vor:
  
<pre>
+
cd $SOURCEDIR/VDR/PLUGINS/src
cd $SOURCEDIR/VDR/PLUGINS/src
+
tar xvzf vdr-muggle-<VERSION>.tgz
tar xvzf vdr-muggle-<VERSION>.tgz
+
ln -s muggle-<VERSION> muggle
ln -s muggle-<VERSION> muggle
+
 
</pre>
+
Wurde, wie im oben genannten Installationsbeispiel die Sourcen selbst übersetzt, muss im '''Makefile''' des muggle-plugins eine kleine Anpassung vorgenommen werden.
  
Wurde, wie im oben genannten Installationsbeispiel mysql von den 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:
 
Folgende Änderungen nehmen wir in folgender Datei '''$SOURCEDIR/VDR/PLUGINS/src/muggle/Makefile''' vor:
  
Zeile 108: Zeile 105:
 
</pre>
 
</pre>
  
Ansonsten können wir nun das plugin wie gewohnt übersetzen
+
Ansonsten können wir nun das Plugin wie gewohnt übersetzen.
  
<pre>
+
cd $SOURCEDIR/VDR
cd $SOURCEDIR/VDR
+
make plugins
make plugins
+
 
</pre>
+
Kopieren von mugglei in den '''PATH'''.
 +
 
 +
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:
  
<pre>
+
mysqld_safe --user=mysql &
mysqld_safe --user=mysql &
+
</pre>
+
  
 
Nun können wir die Datenbank füttern, vorrausgesetzt die Mp3 Sammlung befindet sich in '''/mp3'''
 
Nun können wir die Datenbank füttern, vorrausgesetzt die Mp3 Sammlung befindet sich in '''/mp3'''
 
<pre>
 
mkdir /mp3
 
cd $SOURCEDIR/VDR/PLUGINS/src/muggle
 
make mugglei
 
cp mugglei /usr/local/bin
 
cd scripts
 
sh make-empty-db
 
cd /mp3
 
find * -path 'Assorted' -prune -o -type f -exec mugglei -z -h localhost -n GiantDisc -f \{} \;
 
</pre>
 
  
 
Später via [[commands.conf]], mit folgenden Eintrag:
 
Später via [[commands.conf]], mit folgenden Eintrag:
  
<pre>
+
Update DB : echo "mugglei -h localhost -c -t /mp3 ." | at now
Update DB : echo "cd /mp3 ; find * -path 'Assorted' -prune -o -type f -exec mugglei -z -h localhost -n GiantDisc -f '{}' ';'"|at now
+
</pre>
+
  
 
Falls das nicht funktioniert, siehe auch [[runvdr]] (Tipps).
 
Falls das nicht funktioniert, siehe auch [[runvdr]] (Tipps).
Zeile 145: Zeile 129:
 
Übergabe für VDR.
 
Übergabe für VDR.
  
<pre>
+
vdr -P'muggle -t /mp3'
vdr -P'muggle -h localhost -n GiantDisc -t /mp3'
+
</pre>
+
  
 
Für das automatische Starten des Mysql Daemons...
 
Für das automatische Starten des Mysql Daemons...
Zeile 155: Zeile 137:
 
Ein Eintrag in der '''/etc/init.d/boot.local''' (falls vorhanden) sollte auch langen.
 
Ein Eintrag in der '''/etc/init.d/boot.local''' (falls vorhanden) sollte auch langen.
  
<pre>
+
# starting mysqld daemon
# starting mysqld daemon
+
/usr/local/bin/mysqld_safe --user=mysql &
/usr/local/bin/mysqld_safe --user=mysql &
+
</pre>
+
  
 
==Probleme==
 
==Probleme==
Zeile 176: Zeile 156:
 
| bgcolor=#efefef|HAVE_FLAC=1
 
| bgcolor=#efefef|HAVE_FLAC=1
 
| optionally libFLAC++ to replay FLAC files
 
| 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
 
|}
 
|}
  
Zeile 198: Zeile 181:
 
|-
 
|-
 
| -t TTTT || --toplevel=TTTT || specify toplevel directory for music (default is /mnt/music)
 
| -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)
 
|-
 
|-
 
| -g      || --giantdisc    || enable full Giantdisc compatibility mode
 
| -g      || --giantdisc    || enable full Giantdisc compatibility mode
 +
|-
 +
| -v      || --verbose      || specify debug level. The higher the more (default is 1)
 
|}
 
|}
  
Zeile 205: Zeile 192:
 
{| border=1 cellpadding=2 cellspacing=0
 
{| border=1 cellpadding=2 cellspacing=0
 
|- bgcolor=#efefef
 
|- bgcolor=#efefef
!Parameter  
+
!Parameter
 
!Beschreibung
 
!Beschreibung
 
|-
 
|-
|-h <hostname> || specify host of mySql database server (default is 'localhost')
+
| -h <hostname> || specify host of mySql database server (default is 'localhost')
 
|-
 
|-
 
| -s <socket>  || specify a socket for mySQL communication (default is TCP)
 
| -s <socket>  || specify a socket for mySQL communication (default is TCP)
Zeile 218: Zeile 205:
 
| -p <password> || specify password of user (default is empty password)
 
| -p <password> || specify password of user (default is empty password)
 
|-
 
|-
| -f <filename> || name of music file to import or update
+
| -z            || scan all database entries and delete entries for files not found (is not yet implemented)
 
|-
 
|-
| -a           || import track as if it was on an assorted album
+
| -c           || delete the entire database and recreate a new empty one
 
|-
 
|-
| -z           || scan all database entries and delete entries for files not found
+
| -v           || the wanted log level, the higher the more. Default is 1
 
|}
 
|}
  

Version vom 10. März 2005, 16:46 Uhr

Inhaltsverzeichnis

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.

Bilder

Setup

Hardwareanforderungen

Softwareanforderungen

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

Installation

cd $SOURCEDIR
tar xvzf libid3tag-<VERSION>.tar.gz
cd libid3tag-<VERSION>
./configure --prefix=/usr/local
make
make install
cd -

tar xvzf libmad-<VERSION>.tar.gz
cd libmad-<VERSION>
./configure --prefix=/usr/local
make
make install
cd -

tar xvzf libogg-<VERSION>.tar.gz
cd libogg-<VERSION>
./configure --prefix=/usr/local
make
make install
cd -

tar xvzf libvorbis-<VERSION>.tar.gz
cd libvorbis-<VERSION>
./configure --prefix=/usr/local \
            --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

Sofern wir den Server nicht Binär installieren konnten, installieren wir als nächstes mysql.

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

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

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:

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

Ansonsten können wir nun das Plugin wie gewohnt übersetzen.

cd $SOURCEDIR/VDR
make plugins

Kopieren von mugglei in den PATH.

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

mysql-Datenbank befüllen

Als erstes starten wir den mysql-Server mit:

mysqld_safe --user=mysql &

Nun können wir die Datenbank füttern, vorrausgesetzt die Mp3 Sammlung befindet sich in /mp3

Später via commands.conf, mit folgenden Eintrag:

Update DB : echo "mugglei -h localhost -c -t /mp3 ." | at now

Falls das nicht funktioniert, siehe auch runvdr (Tipps).

Ü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 &

Probleme

SuSE spezifisch

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:

rpm -qa|grep mysql|xargs rpm -e --nodeps

Optionen

HAVE_VORBISFILE=1 optionally libvorbis and libvorbisfile to replay OGG Vorbis files
HAVE_FLAC=1 optionally libFLAC++ to replay FLAC files
HAVE_SERVER=1 if you want to use a dedicated Mysql server instead of the embedded code

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)
-g --giantdisc enable full Giantdisc compatibility mode
-v --verbose specify debug level. The higher the more (default is 1)

Mugglei

Parameter Beschreibung
-h <hostname> specify host of mySql database server (default is 'localhost')
-s <socket> specify a socket for mySQL communication (default is TCP)
-n <database> specify database name (default is 'GiantDisc')
-u <username> specify user of mySql database (default is empty)
-p <password> specify password of user (default is empty password)
-z scan all database entries and delete entries for files not found (is not yet implemented)
-c delete the entire database and recreate a new empty one
-v the wanted log level, the higher the more. Default is 1

Bedienung

Links

[1] http://www.mysql.com mySQL
[2] http://www.underbit.com/products/mad (M)PEG (A)udio (D)ecoder Homepage
[3] http://www.xiph.org/ogg/vorbis Ogg Vorbis CODEC Project
[4] http://developer.kde.org/~wheeler/taglib.html Taglib - Audio Meta-Data Library
[5] http://vdrportal.de/board/thread.php?postid=206688 snd2usb für muggle zum Schreiben auf USB Stick
[6] http://flac.sourceforge.net flac
[7] http://www.htpc-tech.de/htpc/muggle.htm Homepage des Plugins