You are here: Home » Reply

Reply To: Build firefly nightly on WL-500g



Ok, I fixed it, finally got a nightly built ok :cool:. Turned out to be a local libtool issue :shock:.

If someone else wants to build it: here’s how I did it, if your build environment is sane this should work fine. I’m running Ubuntu Dapper myself, make sure all the usual gcc & libc-dev stuff is installed. I had some problems with includes, probably because my own build environment was a bit screwed up, re-installing kernel-headers and kernel-sources fixed that. This was probably a local issue and not required otherwise.

NOTE 1: I installed everything in /opt (originally following the setup guide i referred to above), another path prefix would probably work fine but I didn’t test that.
NOTE 2: I used svn snapshot 1498. The I modified only works with this version, but just changing the version number in it should work ok.
NOTE 2: I built a version with sqlite2 support, and nothing else (no ffmpeg, flac, ogg etc), as I don’t need or want that on my router. Adding these should be pretty straightforward by building the dependency packages and editing the file and putting in the configure switches.

Hopefully I didn’t forget anything. 😉

1] Get optware unslung tree from svn:

# cd /opt
# svn co optware

2] Download/rename/unpack ASUS tools:

# wget
# mv GPL_1927.tar.gz
# tar zxf ./GPL_1927.tar.gz
# mv -R /opt/broadcom/opt/brcm .

To save diskspace you can delete the /opt/broadcom/ directory after this.

3] configure unslung:
3.1] in /opt/optware/Makefile set:


instead of the default target (nslu2)

3.2] in /opt/optware do a:

# make directories
# make ipkg-utils

4] make mt-daapd, sqlite:

# make mt-daapd
# make sqlite2

5] install sqlite2 to /opt and copy the sqlite libs to the optware staging folder:

# cd /opt/optware/builds/sqlite2
# make install
# cd .libs
# cp *.so *.a /opt/optware/staging/opt/lib/

This is only needed because the mt-daapd-2.4.2 .mk file I modified for the nightly doesn’t seem to put the sqlite2 libs in place properly, even though I added sqlite2 as a dependency. Also, the make install is just to keep the modifications to convenient for me, a proper makefile would do all this automatically. I didn’t feel like figuring this all out so I did it manually.

6] copy modified to /opt/optware/make

I put the .mk file on my local server, should anyone ever need it. Note that you need to change the version number in it if you want to build a different nightly build version. The file is here:

7] Get the mt-daapd-svn_1498.tar.gz nightly and copy it to /opt/optware/downloads

8] do a ‘make mt-daapd’.:
This will fail on a _tzset/_putenv linkage issue that can be fixed very easily by replacing these calls with tzset and putenv:

# cd /opt/optware/builds/mt-daapd/src
# sed -ise "s/_tzset/tzset/" compat.c plugins/compat.c
# sed -ise "s/_putenv/putenv/" compat.c plugins/compat.c

Not sure why this happens, it looks like a platform issue that should be fixed in the firefly sources.

9] do a ‘make mt-daapd’ again.
This should work.

10] do a ‘make mt-daapd-ipk’.
This should also work. The .ipk will be put in /opt/optware/builds, and is called mt-daapd_1498-2_mipsel.ipk

This is probably all a piece of cake for you Ron, but It took me a good 4 hours to get it building :lol:. Maybe this saves someone some time ;-).

Going to try installing and running the ipk later, I’ll update and post a link if it works ok.

The package seems to work at least partially:-). Just finished scanning my library, web interface works! :cool:. My SoundBridge doesn’t see the share however, and the webinterface says: Bonjour: stopped. Also I had to link /opt/var/mt-daapd to /var/cache/mt-daapd and set guest permissions on it (on the wl-500g that is). The log says that the db-dir config option is deprecated but I don’t know how to set it to the right location so I did it this way. I put the package here if someone wants to test it:

Update 2:
Apparently I need howl or avahi for bonjour support? No built-in bonjour? Neither of those 2 packages are in the optware repository so that would add another problem to fix… 🙄