Firefly Openlink
From NAS-Central Buffalo - The Linkstation Wiki
m (→Vorbis Lib) |
(→sqlite) |
||
| (29 intermediate revisions not shown) | |||
| Line 1: | Line 1: | ||
[[Image:Ff_logo_sm.gif ]] | [[Image:Ff_logo_sm.gif ]] | ||
| - | + | {{Articles|Mediaserver}} | |
| - | + | ||
== Requirements == | == Requirements == | ||
| - | |||
# Lots of good music | # Lots of good music | ||
# Something to play lots of your good music on - Like a Roku Soundbridge | # Something to play lots of your good music on - Like a Roku Soundbridge | ||
# Or iTunes on your pc | # Or iTunes on your pc | ||
| - | #* [[DevelopmentToolsInstallation | | + | #* [[DevelopmentToolsInstallation | Development Tools]] |
| - | #* [ | + | #* [http://www.underbit.com/products/mad/ libid3tag] |
| - | #* [ | + | #* [[w:SQLlite|SQLlite]] |
| - | + | ||
| - | + | ||
| - | |||
| - | + | == Installation - Build From Source== | |
| - | + | ===Dependancies=== | |
| - | + | ====Development Tools==== | |
| - | + | # Install the [[Precompiled C development environment, running on the LS]] | |
| - | + | # Get the source tarballs and compile | |
| - | + | ||
| - | + | ==== libid3tag ==== | |
cd .. | cd .. | ||
| Line 31: | Line 25: | ||
make install | make install | ||
| - | + | ==== sqlite ==== | |
cd .. | cd .. | ||
| - | <nowiki>wget http://www.sqlite.org/sqlite- | + | <nowiki>wget http://www.sqlite.org/sqlite-3.6.1.tar.gz</nowiki> |
| - | tar -xvzf sqlite- | + | tar -xvzf sqlite-3.6.1.tar.gz |
| - | cd sqlite- | + | cd sqlite-3.6.1 |
./configure --prefix=/usr/local | ./configure --prefix=/usr/local | ||
make install | make install | ||
| - | == OPTIONAL == | + | ==== OPTIONAL ==== |
| - | === | + | ===== Ogg Lib ===== |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | = | + | |
cd /tmp | cd /tmp | ||
| - | wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz | + | <nowiki>wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz</nowiki> |
tar -xvzf libogg-1.1.3.tar.gz | tar -xvzf libogg-1.1.3.tar.gz | ||
cd libogg-1.1.3 | cd libogg-1.1.3 | ||
| Line 57: | Line 45: | ||
make install | make install | ||
| - | === Vorbis Lib === | + | ===== Vorbis Lib ===== |
cd .. | cd .. | ||
| - | wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz | + | <nowiki>wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz</nowiki> |
tar -xvzf libvorbis-1.1.2.tar.gz | tar -xvzf libvorbis-1.1.2.tar.gz | ||
cd libvorbis-1.1.2 | cd libvorbis-1.1.2 | ||
| Line 68: | Line 56: | ||
These libraries need to be registered with the linker. This can be done by creating a file called ld.so.conf in /etc as follows; | These libraries need to be registered with the linker. This can be done by creating a file called ld.so.conf in /etc as follows; | ||
| + | {{Postit | [[nano]]| if you don't already have nano you can follow the instructions on the '''[[nano]]''' page to either get the static binaries for your LS or compile it yourself}} | ||
nano /etc/ld.so.conf | nano /etc/ld.so.conf | ||
| Line 80: | Line 69: | ||
verify that the ogg and vorbis libs are listed. | verify that the ogg and vorbis libs are listed. | ||
| - | === Flac === | + | ===== Flac ===== |
cd .. | cd .. | ||
| - | wget http://kent.dl.sourceforge.net/sourceforge/flac/flac-1.1.2.tar.gz | + | <nowiki>wget http://kent.dl.sourceforge.net/sourceforge/flac/flac-1.1.2.tar.gz</nowiki> |
tar -xvzf flac-1.1.2.tar.gz | tar -xvzf flac-1.1.2.tar.gz | ||
cd flac-1.1.2 | cd flac-1.1.2 | ||
| Line 93: | Line 82: | ||
ldconfig -v | ldconfig -v | ||
| - | === Howl === | + | ===== Howl ===== |
REQUIRED FOR MULTIPLE INSTANCES | REQUIRED FOR MULTIPLE INSTANCES | ||
cd .. (get back to /tmp directory) | cd .. (get back to /tmp directory) | ||
| - | wget http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz | + | <nowiki>wget http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz</nowiki> |
tar -xvzf howl-1.0.0.tar.gz | tar -xvzf howl-1.0.0.tar.gz | ||
cd howl-1.0.0 | cd howl-1.0.0 | ||
| Line 108: | Line 97: | ||
ldconfig -v | ldconfig -v | ||
| + | === Get and Compile [[Firefly]] === | ||
| - | + | You will need to check out [[http://nightlies.mt-daapd.org/ the nightlies]] and change the address below to the latest version | |
| + | |||
| + | cd /tmp | ||
| + | <nowiki>wget http://nightlies.mt-daapd.org/dl.php?FILE=mt-daapd-svn-1463.tar.gz</nowiki> | ||
| - | + | Untar and enter folder (replace with whatever latest version is) | |
| - | + | tar -zxvf mt-daapd-svn-1463.tar.gz | |
| - | + | cd mt-daapd-svn-1463 | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
Either - (assuming flac, ogg and howl built) | Either - (assuming flac, ogg and howl built) | ||
./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --enable-howl | ./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --enable-howl | ||
| - | --with-howl-includes=/usr/local/include/howl --with-id3tag=/usr/local --sysconfdir=/etc --enable- | + | --with-howl-includes=/usr/local/include/howl --with-id3tag=/usr/local --sysconfdir=/etc --enable-sqlite3 --enable-flac |
--enable-oggvorbis | --enable-oggvorbis | ||
| Line 129: | Line 118: | ||
./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --with-id3tag=/usr/local --sysconfdir=/etc | ./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --with-id3tag=/usr/local --sysconfdir=/etc | ||
| - | --enable- | + | --enable-sqlite3 |
make install | make install | ||
| - | mkdir | + | mkdir /etc/mt-daapd |
| - | cp contrib/mt-daapd.* | + | cp contrib/mt-daapd.* /etc/mt-daapd/ |
| - | cd | + | cd /etc/mt-daapd/ |
nano mt-daapd.conf | nano mt-daapd.conf | ||
| - | You probably need | + | |
| + | You probably need to change the location of the music files for example to /mnt/media; the web_root location to /usr/local/share/mt-daapd/admin-root; the plugin directory to /usr/local/share/mt-daapd/plugins; the firefly database directory to for example /mnt/media; and the playlist directory to for example /etc/mt-daapd/mt-daapd.playlist. Check that all the directories you use actually exist on your installation. If you cannot access the Firefly web interface, check that the music file and web_root location exist, and remember Linux is case sensitive i.e. /mnt/media and /mnt/Media are different directories. | ||
(allow any user to write to mt-daapd.conf to allow web interface to modify it) | (allow any user to write to mt-daapd.conf to allow web interface to modify it) | ||
| - | chmod o=rw mt-daapd | + | chmod o=rw mt-daapd.conf |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | == Startup Script == | ||
Create a startup script; | Create a startup script; | ||
| Line 225: | Line 203: | ||
Create a symbolic link to this file in the startup dir; | Create a symbolic link to this file in the startup dir; | ||
| - | cd /etc/rc2.d && ln -s /etc/init.d/firefly | + | cd /etc/rc.d/rc2.d && ln -s /etc/init.d/firefly S20firefly |
| - | cd /etc/rc6.d && ln -s /etc/init.d/firefly | + | cd /etc/rc.d/rc6.d && ln -s /etc/init.d/firefly K20firefly |
| - | cd /etc/rc0.d && ln -s /etc/init.d/firefly | + | cd /etc/rc.d/rc0.d && ln -s /etc/init.d/firefly K20firefly |
| + | == Run it == | ||
| - | + | Should be able to start it up now | |
| - | + | ||
| + | /usr/local/sbin/mt-daapd | ||
| + | or better still use the start/stop script | ||
| + | /etc/init.d/firefly start | ||
| + | |||
| + | This errors because it looks for mt-daapd.conf in /usr/local/etc/mt-daapd.conf ?? | ||
| + | |||
| + | I've just linked to it | ||
| + | |||
| + | mkdir /usr/local/etc | ||
| + | ln -s /etc/mt-daapd/mt-daapd.conf /usr/local/etc/mt-daapd.conf | ||
| + | |||
| + | Try it now | ||
| + | |||
| + | /etc/init.d/firefly start | ||
| + | |||
| + | Issue top and you should see mt-daapd at the top of the list - | ||
| + | |||
| + | top | ||
| + | |||
| + | Once that dissapears (it has finished checking your music library) you should be able to see it via the web interface | ||
| + | |||
| + | <nowiki>http://<LINKSTATION-IP>:3689</nowiki> | ||
| + | |||
| + | You can put whatever you like as user but the passwd is mt-daapd | ||
| + | |||
| + | That should show you something like this | ||
| + | |||
| + | [[Image:Firefly.JPG]] | ||
| + | |||
| + | Run over to your Roku Soundbridge and check if its working - then fire up iTunes on your pc and see all your files | ||
| + | |||
| + | == To add multiple instances == | ||
| + | |||
| + | Create new subdirectories under /usr/local/var/cache/mt-daapd which correspond to the databases required. | ||
eg. | eg. | ||
mkdir /usr/local/var/cache/mt-daapd/albums/ | mkdir /usr/local/var/cache/mt-daapd/albums/ | ||
| Line 252: | Line 265: | ||
(this should be started before the mt-daapd instances) | (this should be started before the mt-daapd instances) | ||
| + | |||
| + | ==Troubleshooting== | ||
| + | |||
| + | [[User:Bauldrick|Bauldrick]] 13:05, 21 December 2006 (EST) | ||
Latest revision as of 08:45, 24 August 2008
Contents |
Requirements
- Lots of good music
- Something to play lots of your good music on - Like a Roku Soundbridge
- Or iTunes on your pc
Installation - Build From Source
Dependancies
Development Tools
- Install the Precompiled C development environment, running on the LS
- Get the source tarballs and compile
libid3tag
cd .. wget http://umn.dl.sourceforge.net/sourceforge/mad/libid3tag-0.15.1b.tar.gz tar -xvzf libid3tag-0.15.1b.tar.gz cd libid3tag-0.15.1b ./configure --prefix=/usr/local make install
sqlite
cd .. wget http://www.sqlite.org/sqlite-3.6.1.tar.gz tar -xvzf sqlite-3.6.1.tar.gz cd sqlite-3.6.1 ./configure --prefix=/usr/local make install
OPTIONAL
Ogg Lib
cd /tmp wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz tar -xvzf libogg-1.1.3.tar.gz cd libogg-1.1.3 ./configure --prefix=/usr/local make install
Vorbis Lib
cd .. wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.1.2.tar.gz tar -xvzf libvorbis-1.1.2.tar.gz cd libvorbis-1.1.2 ./configure --prefix=/usr/local make install
These libraries need to be registered with the linker. This can be done by creating a file called ld.so.conf in /etc as follows;
| nano |
| if you don't already have nano you can follow the instructions on the nano page to either get the static binaries for your LS or compile it yourself |
nano /etc/ld.so.conf
edit the file to add the line;
/usr/local/lib
save and exit. Then type
ldconfig -v
verify that the ogg and vorbis libs are listed.
Flac
cd .. wget http://kent.dl.sourceforge.net/sourceforge/flac/flac-1.1.2.tar.gz tar -xvzf flac-1.1.2.tar.gz cd flac-1.1.2 ./configure --prefix=/usr/local make install
The flac libs also need to be registered, so;
ldconfig -v
Howl
REQUIRED FOR MULTIPLE INSTANCES
cd .. (get back to /tmp directory) wget http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz tar -xvzf howl-1.0.0.tar.gz cd howl-1.0.0 ./configure --prefix=/usr/local make install
The howl libs need to be registered, so (assuming you've added the line to /etc/ld.so.conf as above);
ldconfig -v
Get and Compile Firefly
You will need to check out [the nightlies] and change the address below to the latest version
cd /tmp wget http://nightlies.mt-daapd.org/dl.php?FILE=mt-daapd-svn-1463.tar.gz
Untar and enter folder (replace with whatever latest version is)
tar -zxvf mt-daapd-svn-1463.tar.gz cd mt-daapd-svn-1463
Either - (assuming flac, ogg and howl built)
./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --enable-howl --with-howl-includes=/usr/local/include/howl --with-id3tag=/usr/local --sysconfdir=/etc --enable-sqlite3 --enable-flac --enable-oggvorbis
Or
./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --with-id3tag=/usr/local --sysconfdir=/etc --enable-sqlite3
make install mkdir /etc/mt-daapd cp contrib/mt-daapd.* /etc/mt-daapd/ cd /etc/mt-daapd/
nano mt-daapd.conf
You probably need to change the location of the music files for example to /mnt/media; the web_root location to /usr/local/share/mt-daapd/admin-root; the plugin directory to /usr/local/share/mt-daapd/plugins; the firefly database directory to for example /mnt/media; and the playlist directory to for example /etc/mt-daapd/mt-daapd.playlist. Check that all the directories you use actually exist on your installation. If you cannot access the Firefly web interface, check that the music file and web_root location exist, and remember Linux is case sensitive i.e. /mnt/media and /mnt/Media are different directories.
(allow any user to write to mt-daapd.conf to allow web interface to modify it)
chmod o=rw mt-daapd.conf
Startup Script
Create a startup script;
nano /etc/init.d/firefly
Add all this:
#! /bin/sh
set -e
# /etc/init.d/firefly: start and stop the DAAP daemon
DAEMON=/usr/local/sbin/mt-daapd
DAAPD_OPTS=""
DAAPD_CONFIG_FILE=/etc/mt-daapd/mt-daapd.conf
test -x $DAEMON || exit 0
case "$1" in
start)
if ! grep -q /usr/local/lib /etc/ld.so.conf; then
echo /usr/local/lib >> /etc/ld.so.conf
ldconfig
fi
echo -n "Starting DAAP daemon: firefly"
if pidof $DAEMON >/dev/null 2>&1; then
echo " apparently already running."
exit 0
fi
if [ ! -s "$DAAPD_CONFIG_FILE" ]; then
echo " missing or empty config file $DAAPD_CONFIG_FILE"
exit 1
fi
start-stop-daemon --start --quiet --background \
--exec $DAEMON -- -c "$DAAPD_CONFIG_FILE" $DAAPD_OPTS
echo "."
;;
stop)
echo -n "Stopping DAAP daemon: firefly"
killall $DAEMON >/dev/null 2>&1
echo "."
;;
restart)
set +e
echo -n "Restarting DAAP daemon: firefly"
killall $DAEMON >/dev/null 2>&1
sleep 2
if ! start-stop-daemon --start --quiet --background \
--exec $DAEMON -- -c "$DAAPD_CONFIG_FILE" $DAAPD_OPTS
then
echo "start failed?"
fi
echo "."
;;
*)
echo "Usage: /etc/init.d/firefly {start|stop|restart}"
exit 1
esac
exit 0
Mark the file as executable;
chmod a+x /etc/init.d/firefly
Create a symbolic link to this file in the startup dir;
cd /etc/rc.d/rc2.d && ln -s /etc/init.d/firefly S20firefly
cd /etc/rc.d/rc6.d && ln -s /etc/init.d/firefly K20firefly
cd /etc/rc.d/rc0.d && ln -s /etc/init.d/firefly K20firefly
Run it
Should be able to start it up now
/usr/local/sbin/mt-daapd
or better still use the start/stop script
/etc/init.d/firefly start
This errors because it looks for mt-daapd.conf in /usr/local/etc/mt-daapd.conf ??
I've just linked to it
mkdir /usr/local/etc ln -s /etc/mt-daapd/mt-daapd.conf /usr/local/etc/mt-daapd.conf
Try it now
/etc/init.d/firefly start
Issue top and you should see mt-daapd at the top of the list -
top
Once that dissapears (it has finished checking your music library) you should be able to see it via the web interface
http://<LINKSTATION-IP>:3689
You can put whatever you like as user but the passwd is mt-daapd
That should show you something like this
Run over to your Roku Soundbridge and check if its working - then fire up iTunes on your pc and see all your files
To add multiple instances
Create new subdirectories under /usr/local/var/cache/mt-daapd which correspond to the databases required. eg.
mkdir /usr/local/var/cache/mt-daapd/albums/
Set appropriate permissions
chown nobody:nogroup /usr/local/var/cache/mt-daapd/albums chmod u+w /usr/local/var/cache/mt-daapd/albums
Create a new startup mt-daapd.conf with the appropriate path to the database dir (eg mt-daapd.albums.conf)
Modify the starup script to start mt-daapd using this conf file;
/usr/local/sbin/mt-daapd -c /usr/local/etc/mt-daapd.albums.conf
The startup script must also start Howl (mDNSResponder)
/usr/local/bin/mDNSResponder
(this should be started before the mt-daapd instances)
Troubleshooting
Bauldrick 13:05, 21 December 2006 (EST)

