Muggle-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Installation)
(Leute $SOURCEDIR nicht /usr/local/src .......)
Zeile 13: Zeile 13:
  
 
==Installation==
 
==Installation==
Die Installation der benötigten Bibliotheken nehmen wir wie üblich im Pfad '''/usr/local/src''' vor:
 
<pre>
 
cd /usr/local/src
 
</pre>
 
* '''Bibliothek: libid3tag'''
 
 
<pre>
 
<pre>
 
cd $SOURCEDIR
 
cd $SOURCEDIR
Zeile 25: Zeile 20:
 
make
 
make
 
make install
 
make install
ldconfig
+
cd -
</pre>
+
 
* '''Bibliothek: libid3tag'''
+
<pre>
+
 
tar xvzf libmad-<VERSION>.tar.gz
 
tar xvzf libmad-<VERSION>.tar.gz
 
cd libmad-<VERSION>
 
cd libmad-<VERSION>
Zeile 34: Zeile 27:
 
make
 
make
 
make install
 
make install
ldconfig
+
cd -
</pre>
+
 
* '''Bibliothek: libogg'''
+
<pre>
+
 
tar xvzf libogg-<VERSION>.tar.gz
 
tar xvzf libogg-<VERSION>.tar.gz
 
cd libogg-<VERSION>
 
cd libogg-<VERSION>
Zeile 43: Zeile 34:
 
make
 
make
 
make install
 
make install
ldconfig
+
cd -
</pre>
+
 
* '''Bibliothek: libvorbis'''
+
<pre>
+
 
tar xvzf libvorbis-<VERSION>.tar.gz
 
tar xvzf libvorbis-<VERSION>.tar.gz
 
cd libvorbis-<VERSION>
 
cd libvorbis-<VERSION>
Zeile 53: Zeile 42:
 
make
 
make
 
make install
 
make install
</pre>
+
cd -
* '''Bibliothek: flac'''
+
 
<pre>
+
 
tar xvzf flac-<VERSION>.tar.gz
 
tar xvzf flac-<VERSION>.tar.gz
 
./configure --prefix=/usr/local \
 
./configure --prefix=/usr/local \
Zeile 61: Zeile 49:
 
make
 
make
 
make install
 
make install
</pre>
+
cd -
* '''Bibliothek: taglib'''
+
 
<pre>
+
 
tar xvzf taglib-<VERSION>.tar.gz
 
tar xvzf taglib-<VERSION>.tar.gz
 
cd taglib-<VERSION>
 
cd taglib-<VERSION>
Zeile 69: Zeile 56:
 
make
 
make
 
make install
 
make install
ldconfig
 
 
</pre>
 
</pre>
Sofern wir den mysql-Server nicht via rpm installieren konnten, installieren wir als nächstes '''mysql''' im bekannten Pfad '''/usr/local/src''' vor:
+
 
<pre>
+
Sofern wir den Server nicht ''Binär'' installieren konnten, installieren wir als nächstes '''mysql'''.
cd /usr/local/src
+
 
</pre>
+
* '''mysql'''
+
 
<pre>
 
<pre>
 +
cd $SOURCEDIR
 
tar xvzf mysql-<VERSION>.tar.gz
 
tar xvzf mysql-<VERSION>.tar.gz
 
cd mysql-<VERSION>
 
cd mysql-<VERSION>
Zeile 86: Zeile 71:
 
make install
 
make install
 
</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>
 
<pre>
 
find . -name my-medium.cnf -exec cp --backup=t \{} /etc/my.cnf \;
 
find . -name my-medium.cnf -exec cp --backup=t \{} /etc/my.cnf \;
Zeile 98: Zeile 85:
 
ldconfig
 
ldconfig
 
</pre>
 
</pre>
* '''muggle plugin'''
+
 
Die Installation des plugins erfolgt an der allbekannten Stelle '''/usr/local/src/VDR/PLUGINS/src''' vor:
+
Die Installation des plugins erfolgt an der allbekannten Stelle '''$SOURCEDIR/VDR/PLUGINS/src''' vor:
 +
 
 
<pre>
 
<pre>
cd /usr/local/src/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>
 
</pre>
 +
 
Wurde, wie im oben genannten Installationsbeispiel mysql von den 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 ''/usr/local/src/VDR/PLUGINS/src/muggle/Makefile'' vor:
+
Folgende Änderungen nehmen wir in folgender Datei '''$SOURCEDIR/VDR/PLUGINS/src/muggle/Makefile''' vor:
 +
 
 
<pre>
 
<pre>
 
-      -I/usr/include/mysql/ -I/usr/include/taglib
 
-      -I/usr/include/mysql/ -I/usr/include/taglib
Zeile 114: Zeile 104:
 
+ MIFLAGS += $(shell taglib-config --cflags) -lmysqlclient
 
+ MIFLAGS += $(shell taglib-config --cflags) -lmysqlclient
 
</pre>
 
</pre>
 +
 
Ansonsten können wir nun das plugin wie gewohnt übersetzen
 
Ansonsten können wir nun das plugin wie gewohnt übersetzen
 +
 
<pre>
 
<pre>
cd /usr/local/src/VDR
+
cd $SOURCEDIR/VDR
 
make plugins
 
make plugins
 
</pre>
 
</pre>
  
 
==mysql-Datenbank befüllen==
 
==mysql-Datenbank befüllen==
Als erstes starten wir den mysql-Server mit:<pre>
+
Als erstes starten wir den mysql-Server mit:
 +
 
 +
<pre>
 
mysqld_safe --user=mysql &
 
mysqld_safe --user=mysql &
 
</pre>
 
</pre>
Zeile 141: Zeile 135:
  
 
<pre>
 
<pre>
Update DB : echo "cd /mp3 ; find * -path 'Assorted' -prune -o -type f -exec /usr/local/bin/mugglei -z -h localhost -n GiantDisc -f '{}' ';'"|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>
 
</pre>
  
Zeile 147: Zeile 141:
  
 
<pre>
 
<pre>
vdr -P'muggle -h localhost -n GiantDisc -t /mp3'  
+
vdr -P'muggle -h localhost -n GiantDisc -t /mp3'
 
</pre>
 
</pre>
  
Zeile 174: Zeile 168:
 
===SuSE spezifisch===
 
===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:
 
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:
 +
 
<pre>
 
<pre>
 
rpm -qa|grep mysql|xargs rpm -e --nodeps
 
rpm -qa|grep mysql|xargs rpm -e --nodeps
 
</pre>
 
</pre>
 +
 
==Optionen==
 
==Optionen==
 
{| border=1 cellpadding=2 cellspacing=0
 
{| border=1 cellpadding=2 cellspacing=0
 
|-
 
|-
| bgcolor=#efefef| have_vorbisfile=1
+
| bgcolor=#efefef|BITTE INS MAKEFILE SCHAUEN, weil nicht konform...
 
| optionally libvorbis and libvorbisfile to replay OGG Vorbis files
 
| optionally libvorbis and libvorbisfile to replay OGG Vorbis files
 
|-
 
|-
| bgcolor=#efefef| have_flac=1
+
| bgcolor=#efefef|BITTE INS MAKEFILE SCHAUEN, weil nicht konform...
 
| optionally libFLAC++ to replay FLAC files
 
| optionally libFLAC++ to replay FLAC files
 
|}
 
|}
Zeile 254: Zeile 250:
 
|-
 
|-
 
| [5]
 
| [5]
| http://www.htpc-tech.de/htpc/muggle.htm
 
| Homepage des Plugins
 
|-
 
| [6]
 
 
| http://vdrportal.de/board/thread.php?postid=206688
 
| http://vdrportal.de/board/thread.php?postid=206688
 
| snd2usb für muggle zum Schreiben auf USB Stick
 
| snd2usb für muggle zum Schreiben auf USB Stick
 
|-
 
|-
| [7]
+
| [6]
 
| http://flac.sourceforge.net
 
| http://flac.sourceforge.net
 
| flac
 
| flac
 +
|-
 +
| [7]
 +
| http://www.htpc-tech.de/htpc/muggle.htm
 +
| Homepage des Plugins
 
|}[[Kategorie:Plugins]]
 
|}[[Kategorie:Plugins]]

Version vom 12. Februar 2005, 12:13 Uhr

Inhaltsverzeichnis

Beschreibung

Das Plugin bietet eine Datenbankverbindung für den VDR, so dass die Medienauswahl flexibler wird.

Setup

Hardwareanforderungen

Softwareanforderungen

  • mySQL
  • libid3tag
  • libmad
  • taglib
  • libvorbis >= libogg
  • flac >= libogg >= nasm

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:

find . -name my-medium.cnf -exec cp --backup=t \{} /etc/my.cnf \;
cd /usr/local/lib
ln -s mysql/libmysqlclient.so* .
groupadd mysql
useradd -g mysql mysql
cd ..
chown -R mysql var
mysql_install_db --user=mysql &
ldconfig

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

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

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

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 \{} \;

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

Update DB : echo "cd /mp3 ; find * -path 'Assorted' -prune -o -type f -exec mugglei -z -h localhost -n GiantDisc -f '{}' ';'"|at now

Übergabe für VDR.

vdr -P'muggle -h localhost -n GiantDisc -t /mp3'

Für das automatische Starten des Mysql Daemons, gibt es mehrere Lösungen. Wer Runlevel Scripte mag, sollte sich die Docs anschauen.

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 &

Als letzte Möglichkeit: einfach über die runvdr.

# starting mysqld daemon
if [ ! "$(ps axc|awk "{if (\$5==\"mysqld_safe\") print \$1}")" ] ; then
    /usr/local/bin/mysqld_safe --user=mysql &
    sleep 1s
fi

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

BITTE INS MAKEFILE SCHAUEN, weil nicht konform... optionally libvorbis and libvorbisfile to replay OGG Vorbis files
BITTE INS MAKEFILE SCHAUEN, weil nicht konform... optionally libFLAC++ to replay FLAC files

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)
-g --giantdisc enable full Giantdisc compatibility mode

Mugglei

Parameter Beschreibung
-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)
-f <filename> name of music file to import or update
-a import track as if it was on an assorted album
-z scan all database entries and delete entries for files not found

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