Installing Firefly on a Linkstation Live / Pro

This process should work on all stock or stock-like (telnet-enabled/jtymod) arm9 based Linkstation / Terastation.

Text based on my posting in the Linkstation wiki forum posting found here.

This seems like a long but detailed article. If you read through, and are comfortable with the steps it should take about 5 minutes from start to finish.

I'm going to assume the reader is comfortable in windows command line mode, and knows the difference between windows and unix. These instructions are a summarised version of what I did to get Firefly running on my LS Live. YMMV. If you brick your LS, it's your responsibility. You do this AT YOUR OWN RISK!!!

Firefly: http://www.fireflymediaserver.org

Roku: http://www.rokulabs.com and http://www.rokulabs.co.uk

Starting point

An unmodified ARM based Linkstation Live/Pro or Terastation Live/Pro. If you are unsure if your device is ARM based, check at the Linkstation wiki.

Getting telnet access to your LS

You need telnet access to the LS to do the install. This is not enabled by default but can be turned on with the aid of a utility developed by the community at the Linkstation wiki. You only require acp_commander.jar. ACP Commander needs Java (on your PC) to run. See java.com for the latest runtime version for your operating system. Once (java) is installed, enter the following in a command (cmd) window from the same directory that contains your downloaded acp_commander.jar file.

java -jar acp_commander.jar -t <IP ADDRESS> -o

Replace <IP ADDRESS> with the address of your Linkstation. You should see something similar to the following:

Using random connID VALUE = FB6A7FCF57E6
Using target: 192.168.1.11/192.168.1.11 (your IP address)
** NO message **
** NO message **
Password changed.

You should now have root telnet access with a blank (null) password until next reboot. (user = "root" without quotes, and no password is required). If it doesn't work, try again. It could take up 5 times before acp_commander works.

Note: You can simply use the windows telnet client, or you can download and use Putty. Putty is a great telnet and ssh client for windows (and *nix). It is free, and is available here. If you don't know about telnet, now is a good time to read up on it.

You may also want to enable telnet at startup, this will allow you to easily get back into your LS to make changes to your Firefly configuration. To do this you can use the vi editor to edit the rcS file and remove # from the line

#/usr/sbin/telnetd

The rcS file is located in /etc/init.d

Download Firefly files and libraries

Note: links in this section will need maintained

I'll assume you are able to connect to your LS via windows explorer. 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 root - no password is required. You should see something like the following:

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

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

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

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

Make Firefly start on boot

Enter

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

Linkstation Live Pro Install (last edited 2007-07-25 09:33:53 by 82-40-8-145)