Firefly on StockFirmware

From NAS-Central Buffalo - The Linkstation Wiki
Revision as of 12:01, 5 October 2007 by Angrest (Talk | contribs)

Jump to: navigation, search

Installation - Install from prebuilt packages There is a comprehensive description for the Linkstation Pro taken from the forum by bawbagg:

This howto has borrowed huge chunks of text from forum user Jimbo's howto for Twonky. That thread can be found here. Many, many thanks to Jimbo for providing this. Without Jimbo's simple and easy to follow instructions for getting telnet running on an unmodified LS I would probably still be floundering around.

Many thanks also to kaiten - one of the developers on this site. He compiled the version of Firefly we are going to install, and provided the libraries that it requires.

Starting point:

Stock LS Live/Pro firmware opened for telnet access.


Download Firefly files and libraries

You need to download and save these packages onto your LS. There are a number of them required:

Save them all in the same folder for simplicity.

Telnet to LS and unpack the tarballs

Connect to your LS either with Putty (great for any serious linux use) or with the windows client (more than sufficient for this project). Hint: From the command window enter

     telnet <ip linkstation>

replace <ip linkstation> with the address of your Linkstation!! You are asked for a Login. Enter


No password is required. You should see something like the following:

     BUFFALO INC. LinkStation series HS-DHGL(JINMU)
     HS-DHGL90D login: root

Once connected, you are in the linux environment of the the LS. You are also connected as root (ie superuser). DON'T do anything you shouldn't!!!

Now we need to issue the commands to unpack the files we downloaded (tarballs). Assuming you saved in the default share folder (ie \\<your LS IP>\share), then type the following into the telnet session:

     tar -C / -xzvf /mnt/disk1/share/mt-daapd-svn-1586_arm9.tar.gz

You should see a list of files getting unpacked. Now continue with the rest of the packages:

     tar -C / -xzvf /mnt/disk1/share/flac-1.1.4_arm9.tgz
     tar -C / -xzvf /mnt/disk1/share/libid3tag-0.15.1b_arm9.tgz
     tar -C / -xzvf /mnt/disk1/share/libogg-1.1.3_arm9.tgz
     tar -C / -xzvf /mnt/disk1/share/libvorbis-1.1.2_arm9.tgz
     tar -C / -xzvf /mnt/disk1/share/sqlite-2.8.17_arm9.tgz
     tar -C / -xzvf /mnt/disk1/share/oggdec-1.0.1_arm9.tgz

Some libraries unpack more files than others. As long as you see something getting unpacked for each command, you should be good to go.

Tell Firefly where your mp3 reside

You may want to create a share on your LS specifically for your mp3. Use the web interface to do this. I did, and I called it mp3 (funnily enough :wink:). I'll assume you've done the same.

So let's navigate to the folder containing the config file for Firefly (which is called mt-daapd.conf for legacy reasons). Enter

     cd /etc/mt-daapd

in your telnet session, then

     vi mt-daapd.conf

Now use the arrow keys to find the line that says

     mp3_dir = /mnt/disk1/<something or other>

In vi, the x key is delete, and the i key starts inserting text. It's easy once you get the hang of it :wink:. If you screw up, hit the escape button then enter ":q!". This will quit your editing session without saving anything. Once you are happy with your edits (your line should look like this)

     mp3_dir = /mnt/disk1/mp3

then hit escape and type ":wq" to save edits and quit the vi editor. (I remember once writing a couple of thousand lines of pascal code on an old unix machine with the vi editor. It is actually an incredibly powerful tool!!!)

Set permissions for /dev/null

The stock firmware only root has permissions for /dev/null. We need to open that up. Enter

     chmod 0666 /dev/null

Start Firefly

Assuming you have copied some of your mp3 to the newly created share on your LS, we are now ready to start Firefly. First, navigate to the init.d directory

     cd /etc/init.d

now let's start it up. Hopefully you'll get the same short response:

     root@HS-DHGL90D:/etc/init.d# ./firefly start
     Starting DAAP daemon: mt-daapd

TADA!!!! All working. If not, sorry - maybe I made a mistake :oops: in these instructions.

You can control Firefly and add some smart playlists at http://<your LS IP>:3689. The username and password is mt-daapd. There is also a nifty little streaming app you can run from your browser at http://<your LS IP>:3689/applet.html

You should now be able to connect to your LS from itunes, your xbox/xbmc, your soundbridge, your squeezebox etc etc.

Make Firefly start on boot


     cp /etc/init.d/rcS /etc/init.d/rcS_old

This makes a copy of the rcS file before we modify/screw it up. Then enter(exactly as typed)

     echo "exec_sh firefly start" >> /etc/init.d/rcS

All done!!! Now enjoy