Firefly Freelink

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 18:21, 30 December 2007 by Maddes (Talk | contribs)

Jump to: navigation, search

Ff logo sm.gif

Contents

About

Firefly is a flexible open-source media server, that also supports iTunes.

It's technical name is still "mt-daapd", the previous name of the project.

Requirements

  1. Lots of good music
  2. Something to play lots of your good music on - Like a Roku Soundbridge
  3. Or iTunes on your pc

Installation

From Debian Repository

The easiest way to get Firefly is to install it from the Debian repository. Unfortunately the package for Debian 4.0 Etch (=FreeLink 1.0) is quite outdated at version 0.2.4 r1376.

It is not recommended to install this version.

You can try it by using:

 aptitude install mt-daapd

From Debian Package

A way to get a more up-to-date version is to create a Debian package yourself.

The advantage of this that you get a Debian-compatible configuration including start/stop scripts and that you can use all the package tools for it.

Each Debian package has its own homepage with the package definition (*.dsc). There you can get newer versions and check for which system platforms the package is available.

As of 2007-08 the latest version is 0.9 r1586 and this is also the recommended version. Unfortunately it is only available for x86, x64 and ARM. Sorry no PPC or MipSel yet, for these you have to compile and configure it manually (see below) or work together with the package maintainer.

Building the Debian package (once per platform)

ToDo: Upload pre-build package (~650KB) - or better - provide it in a FreeLink/Debian repository

For this you need the maintainer's public key to be sure that you download only clean non-malicious files, the Debian build environment for compiling and packging, plus all the packages the build of the MT-DAAPD depends on.

 gpg --keyserver hkp://pgpkeys.pca.dfn.de --recv-keys 78446F26
 aptitude install gcc g++ build-essential devscripts debhelper
 aptitude install libid3tag0-dev libsqlite3-dev libavahi-compat-howl-dev libflac-dev libvorbis-dev libmpcdec-dev libavcodec-dev libavformat-dev libtagc0-dev dpatch

It is recommended to create an extra directory for your self-build packages.

 mkdir /mnt/disk1/packages
 chown root:root /mnt/disk1/packages
 chmod u=rwx,go= /mnt/disk1/packages
 cd /mnt/disk1/packages

Then its time to get the package source and build it. The signing error at the end of the "dh_builddeb" step can be ignored.

 dget -x http://ftp.debian.org/debian/pool/main/m/mt-daapd/mt-daapd_0.9~r1586-1.dsc
 cd mt-daapd-0.9~r1586/
 debuild

Installing the Debian package

The build package is installed via "dpkg". Normally the first install fails due to missing dependencies, so we let "apt" fix this for us by just installing again with an apt tool.

 dpkg --install mt-daapd_0.9~r1586-1_arm.deb
 aptitude install mt-daapd

You can start/stop Firefly with

 invoke-rc.d mt-daapd start|stop|restart

The configuration is stored in /etc/mt-daapd.conf

Manually From Source

apt-get install libid3tag0 libid3tag0-dev
apt-get install sqlite libsqlite0 libsqlite0-dev
apt-get install g++ build-essential

Be careful where you build, as you want to make sure you have room for the compilation. /tmp is too small for building.

cd /usr/src

Download Firefly mediaserver You will need to check out the nightlies and change the address below to the latest version

wget http://nightlies.mt-daapd.org/dl.php?FILE=mt-daapd-svn-1696.tar.gz
  • Note: I personally had issues with svn-1696 crashing every time Firefly rescanned my library. After discussion with Ron Pedde (Firefly developer) I was advised to use version svn-1586 due to it's greater stability. svn-1586 has been working flawlessly for me.


Untar and enter folder (replace with whatever latest version is)

tar -zxvf mt-daapd-svn-1696.tar.gz && cd mt-daapd-svn-1696


Configure it with the following (all one line)

./configure --prefix=/usr/local --enable-browse --enable-query --enable-mdns --with-id3tag=/usr/local --enable-sqlite 
--sysconfdir=/etc 

Make and install it (if you are not su or root, you will have to add sudo to make install only)

make
make install
mkdir /etc/mt-daapd
cp contrib/mt-daapd.* /etc/mt-daapd/
cd /etc/mt-daapd
nano mt-daapd.conf

Should only need to change where to look for your music files

Starting at boot

I've nicked the start script from andre's mt-daapd ppc package (if you don't mind andre)

nano /etc/init.d/firefly

and 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

Then add the links

cd /etc/rc2.d && ln -s /etc/init.d/firefly S20firefly
cd /etc/rc6.d && ln -s /etc/init.d/firefly K20firefly
cd /etc/rc0.d && ln -s /etc/init.d/firefly K20firefly

Think it needs one of these

chmod a+x /etc/init.d/firefly

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

Using

Directly after installation 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

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


Bauldrick 09:13, 21 December 2006 (EST)