Reply To: Running Two Copies of Firefly on a Single NSLU2

#4894
rpedde
Participant

@RickV wrote:

As in the installation guide I tried the following:

cd /opt/var/mt-daapd2
LD_LIBRARY_PATH=/opt/lib /opt/bin/sqlite songs.db

I don’t know the exact functionality of the LD_LIBRARY_PATH (if someone can explain it some more it would be very nice).

The issue on the mss is that the mss is broken. Maxtor hasn’t released the source code and everything that someone needs to be able to compile a binary that works on the mss. People have used development tools that make binaries that will run on that architecture, but they are incompatible with the libraries and stuff that already run on the mss.

I’m not sure what’s up with that, it seems like a gpl violation to me, but I haven’t really looked very closely at it. To work around it, people make replacement libraries and put them in /opt/lib. So long as programs use the libraries in /opt/lib and not the libraries in /lib, then stuff runs. Stupid situation, but that’s how it is, I guess.

When you set a LD_LIBRARY_PATH, that basically inserts a path at the top of the library search path. So libraries get looked for in the directory specified in the LD_LIBRARY_PATH. Normally that works for applications, but if they fork, or otherwise manipulate the environment variables, it’s possible that it could lose that variable, and then the right libraries can’t be found, and then it doesn’t work any more. Gack!

That’s what’s happening to you.

Seems like this:


/opt/lib/ld.so.1 /opt/bin/sqlite /opt/var/mt-daapd2/songs.db

works better, as (I think) it uses the /opt loader to load libraries, and so it can’t forget to load the libraries from /opt/lib first. Or something. Not entirely sure myself why that works.

In any event, try that, using the path that you have specified for your db_param to find the songs.db you want to add the index for. You should do that with the program not running, then start it afterwards.

— Ron