PDA

Bekijk de volledige versie : How-to: Compile mt-daapd for your Roku/Pinnacle soundbridge



mumsoft
17-05-2007, 18:59
Note: this is a draft version. Please respond with your advice.

What I did to compile mt-daapd

Prerequisite: firmware of KCFurge installed. Updated all my packages, installed package optware-devel
Sollie mentioned he had to update buildroot:
ipkg install -force-overwrite buildroot

Download mt-daapd-svn-1586.tar.gz from http://www.fireflymediaserver.org/
Put it somewhere you can reach it within the WL-700gE. I putted mine in my home-dir.
Currently (22-1-2008) the newest one is release 1696, which I took.


telnet asus
sudo bash

It is vital to run configure as root, so sudo bash is needed.

On the command line, and in your .profile, add this:

LD_LIBRARY_PATH="/opt/lib:/shares/lib"
PATH_SEPARATOR=:
CONFIG_SHELL=/opt/bin/bash
AWK=/opt/bin/gawk
export PATH_SEPARATOR CONFIG_SHELL AWK LD_LIBRARY_PATH
Do this with joe .profile
(I love joe as editor, it has wordstar-like commands, and these still stick in my fingers from the 80īs. You may love nano or vi, or don't know what)


Run:
tar -xvzf mt-daapd-svn-xxxx.tar.gz
to 'unzip' this

cd mt*

It's needed to change the first line of configure from "#!/bin/sh" to "#!/opt/bin/bash"
Do this with joe configure

Now, try
./configure --prefix=/opt --enable-sqlite3 --enable-oggvorbis --enable-flac
You may need other --enable options, but these are for ogg/vorbis and flac support. Have a look in the configure file for more.
If it runs without errors you are as lucky as I was.

Then, give make supreme command:

make
After that make sure you have removed the old mt-daapd that you may have installed:
Maybe you like to keep your old mt-daapd.conf, do so first, but keep in mind that newer mt-daapds need newer config files.

ipkg remove mt-daapd
There might be an install-sh script for which you need to change the first line from "#!/bin/sh" to "#!/opt/bin/bash"
Now run

make install

Most likely you need to reconfigure mt-daapd.conf. There is an up-to-date template in mt-daapd-svn-9999/contrib. 9999 is your buildnumber, say 1696. Use that as a start.


To start mt-daapd at bootup, at this to your rc.local:

if [ -x /opt/sbin/mt-daapd ]; then
/opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf
fi
Of course, disable the antique mt-daapd the Asus provides:
in the beginning of your rc.local:

# Sleep for a little bit to not interfere with normal system startup
# before we kill a bunch of Asus processes.
sleep 5

# Stop Asus mt-daapd
killall -q mt-daapd &

Also, disable the Media Server in the webinterface of the Asus.

If you don't let mt-daapd run as root, give the account you gave to mt-daapd the correct rights: for instance Sollie had to use this command, to have write permission:

chown guest /opt/var/mt-daapd

if you need a more extended buglevel, add -dx after the line, with x=1,2,...,9
I.E:
/opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf -d5

You can reach the web interface with http://asus:3689/index.html where 'asus' is the hostname or the ip address of your NAS

To allow transcoding for flac and ogg to work, change the first line of /opt/sbin/mt-daapd-ssc.sh
to
#!/opt/bin/bash

If your ogg files produce noise only, proceed. If not, be happy.
With package ivorbis-tools (1.0-6) the ogg-files are transcoded the big-endian way, that should be the little-endian way. Result is noise.
If you have this problem, try this: download the attached oggdec.bin.zip. Unzip this and copy oggdec.bin as oggdec to /opt/bin/oggdec. It will overwrite what you got from your ivorbis-package.
Make sure it is executable:

chmod +x /opt/bin/oggdec

sollie
18-05-2007, 07:54
I only use .mp3 files. So, i can use the following command:


./configure --prefix=/opt --enable-sqlite3

Is this right?

Sollie.

sollie
18-05-2007, 08:20
I got this:



[root@Meterkast daap]$ ./configure --prefix=/opt --enable-sqlite3 --enable-oggvorbis --enable-flac
checking for a BSD-compatible install... /opt/bin/install -c
checking whether build environment is sane... yes
checking for gawk... /opt/bin/gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

sollie
18-05-2007, 08:49
Found it:


ipkg install -force-overwrite buildroot

Sollie.

mumsoft
18-05-2007, 12:12
I only use .mp3 files. So, i can use the following command:


./configure --prefix=/opt --enable-sqlite3

Is this right?

Sollie.

It should be. Don't know if sqlite3 is needed, Firefly can use sqlite or sqlite3, but it sounds newer, and we love new things don't we?

Greetz,
Marc

mumsoft
18-05-2007, 12:25
Found it:


ipkg install -force-overwrite buildroot

Sollie.

Really? I find these things confusing. Buildroot is a part of optware-devel but can be installed stand-alone. :confused:

I had this yesterday:
Tried to install uclibc. It says: conflicts with busybox. Removed busybox. Tried to install uclibc. It says: conflicts with buildroot. Removed buildroot. Tried to install uclibc. It says: can't find uclibc. Tried to install http://..../uclibc 9.8... That wanted to install files provided with uclibc-opt. Forced with overwrite. Succeeded. Install optware-devel (had done that before, didn't I). That installed a bunch of packages, including... buildroot. Gave error configuring coreutils though. And PIDOF not found.

Today no hostname. Aha, needs busybox. Installed busybox, the one that conflicts with uclibc. But it installed fine, only error with configuring coreutils again.
Now I do ipkg list_installed uclibc. Not found. Then uclibc-opt. Yes, is there!
Damn, ipkg is thinking for me.

Greets,
Marc

oleo
18-05-2007, 13:24
Read instructions at http://www.nslu2-linux.org/wiki/FAQ/Optware-uClibcBuild


opware-devel is meta-package that includes depends on many devel packages. It provides nothing than ease of instalation.

sollie
18-05-2007, 13:25
I cant get it running. i build it without errors, but there was no mt-daapd.conf. So i copied one from a firefly.ipkg. When i start it, nothing happens.

Sollie.

mumsoft
18-05-2007, 14:05
I cant get it running. i build it without errors, but there was no mt-daapd.conf. So i copied one from a firefly.ipkg. When i start it, nothing happens.

Sollie.

Ok, you have been bitten by the wrong .conf. There is an up-to-date template in mt-daapd-svn-1571/contrib. Use that as a start.
Hmm, I should have said so to begin with.

Good luck
Marc

sollie
18-05-2007, 18:48
Haha, mijn vriendin zegt:

waarom gaan jullie niet Nederlands praten :D.

Sollie.

mumsoft
18-05-2007, 21:09
Haha, mijn vriendin zegt:

waarom gaan jullie niet Nederlands praten :D.

Sollie.

Hi Sollie,

There is a special Dutch forum for 'us' Dutchies. But I choose this forum because it is international. So I will continue to talk something that looks like English. I think that's appropriate.
By the way, more on topic: I thought you would help, and now you have compiled Firefly without ogg. That Firefly serves MP3 out of the box is clear, the problem is with transcoding. That's what i need help for.

Groetjes
Marc

sollie
18-05-2007, 21:36
I am trying. My compilations didnt work. I cant find the reason. Maybe you can give me your mt-daap binary and conf file.

Sollie.

Ps: i will help to test and fix the problems.

mumsoft
18-05-2007, 22:17
I am trying. My compilations didnt work. I cant find the reason. Maybe you can give me your mt-daap binary and conf file.

Sollie.

Ps: i will help to test and fix the problems.

Bit difficult to do via this forum, besides my mtdaapd uses more library's than yours:
bash-3.2# ldd mt-daapd
libdl.so.0 => /opt/lib/libdl.so.0 (0x2ab05000)
libpthread.so.0 => /opt/lib/libpthread.so.0 (0x2ab47000)
libid3tag.so.0 => /opt/lib/libid3tag.so.0 (0x2aac5000)
libz.so => /opt/lib/libz.so (0x2ab9b000)
libsqlite3.so.0 => /opt/lib/libsqlite3.so.0 (0x2abbd000)
libogg.so.0 => /opt/lib/libogg.so.0 (0x2aaaa000)
libvorbis.so.0 => /opt/lib/libvorbis.so.0 (0x2ac39000)
libvorbisfile.so.3 => /opt/lib/libvorbisfile.so.3 (0x2aae7000)
libFLAC.so.8 => /opt/lib/libFLAC.so.8 (0x2ac67000)
libc.so.0 => /opt/lib/libc.so.0 (0x2acc1000)
libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x2ada7000)
libm.so.0 => /opt/lib/libm.so.0 (0x2adf6000)
ld-uClibc.so.0 => /opt/lib/ld-uClibc.so.0 (0x2aac0000)
You could check with ldd to what your mt-daapd needs.
Then, if you give it more logdetails met -d9
/opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf -d9
you could see something meaningful in /var/log/mt-daapd.log
With ps you must see 4 instances of mt-daapd:
1449 root 4496 S /opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf
1450 root 4572 S /opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf
1451 root 4572 S /opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf
1452 root 4572 S /opt/sbin/mt-daapd -c /opt/etc/mt-daapd/mt-daapd.conf

Let me know what you get.

Groetjes, ook aan je vriendin...
Marc

mumsoft
21-05-2007, 11:49
I am trying. My compilations didnt work. I cant find the reason. Maybe you can give me your mt-daap binary and conf file.

Sollie.

Ps: i will help to test and fix the problems.

Sollie, just a guess. Before I decided to compile mt-daapd, I had tried several packages. If you install one of them, it will install numerous dependent packages.
Do so, then remove mt-daapd (the dependent packages stay behind) and do make install again.
I guess that might help.

Marc

sollie
21-05-2007, 15:16
I allready did that. So, do you have another solution?

Sollie.

mumsoft
21-05-2007, 22:06
Sollie,

Of course, there are always more suggestions. And I will give some. But I did not see any useful info about why your version is not functioning in your opinion. No log, no ldd output, no mentioning of your command to start mt-daapd, no mentioning of your client, nothing at all. Still you are asking for help...?

Well, here is the obvious part:
Did you disable "Enable Media Server?" in the web interface. You should
Did you kill mt-daapd in rc.local? You should.
Here is waht I have in the beginning of my rc.local:
# Sleep for a little bit to not interfere with normal system startup
# before we kill a bunch of Asus processes.
sleep 5

# Stop originele Asus mt-daapd
killall -q mt-daapd &

That's it.
Maybe that does not help, but please be much more informative if that's the case.

Marc

sollie
21-05-2007, 23:25
I pm-ed you. Just cant explain myself in englisch.

Sollie.

sollie
22-05-2007, 21:44
2007-05-22 22:43:02 (00000400): Firefly Version svn-1586: Starting with debuglevel 9
2007-05-22 22:43:02 (00000400): Attempting to load plugin /opt/share/mt-daapd/plugins/out-daap.so
2007-05-22 22:43:02 (00000400): Loaded plugin /opt/share/mt-daapd/plugins/out-daap.so (daap/svn-1586)
2007-05-22 22:43:02 (00000400): New transcode codec list:
2007-05-22 22:43:02 (00000400): Attempting to load plugin /opt/share/mt-daapd/plugins/ssc-script.so
2007-05-22 22:43:02 (00000400): Loaded plugin /opt/share/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1586)
2007-05-22 22:43:02 (00000400): New transcode codec list: ogg,flac,alac
2007-05-22 22:43:02 (00000400): Attempting to load plugin /opt/share/mt-daapd/plugins/rsp.so
2007-05-22 22:43:02 (00000400): Loaded plugin /opt/share/mt-daapd/plugins/rsp.so (rsp/svn-1586)
2007-05-22 22:43:02 (00000400): New transcode codec list: ogg,flac,alac
2007-05-22 22:43:02 (00000400): Plugin loaded: rsp/svn-1586
2007-05-22 22:43:02 (00000400): Plugin loaded: ssc-script/svn-1586
2007-05-22 22:43:02 (00000400): Plugin loaded: daap/svn-1586
2007-05-22 22:43:02 (00000400): Starting rendezvous daemon
2007-05-22 22:43:02 (00000400): Starting signal handler
2007-05-22 22:43:02 (00000400): Pid: 4832
2007-05-22 22:43:02 (00000400): select(10, 0.000976)
2007-05-22 22:43:02 (00000400): Opening database
2007-05-22 22:43:02 (00000400): select(10, 0.165039)
2007-05-22 22:43:02 (00000400): db_sqlite3_open: Misc SQL Error: unable to open database file (/opt/var/mt-daapd/songs3.db)
2007-05-22 22:43:02 (00000400): Results: 1
2007-05-22 22:43:02 (00000400): Error opening db: Misc SQL Error: unable to open database file
2007-05-22 22:43:02 (00000400): Processing rendezvous message
2007-05-22 22:43:02 (00000400): Stopping mDNS
2007-05-22 22:43:02 (00000400): Exiting
2007-05-22 22:43:02 (00000400): Finished with status 0, result 0


This is my logfile. Something is going wrong with the database.

I found the solution:

I had to use this command, to have write permission:
chown guest /opt/var/mt-daapd



Sollie.

mumsoft
22-05-2007, 22:15
This is my logfile. Something is going wrong with the database.

I found the solution:

I had to use this command, to have write permission:
chown guest /opt/var/mt-daapd



Sollie.

Wow........:) ....... congratulations!!! And I see you meanwhile have compiled the latest firefly... So you can..
I did not made a guest account. I run firefly as root, but I might try to run it as guest.

But pfff, great work.
Marc

mumsoft
26-05-2007, 13:44
Sollie,

As you promised to help with ogg-streaming, please have a look at this post:

http://forums.fireflymediaserver.org/viewtopic.php?p=12343&sid=44ded199015d1fabbae66eaff27cc3a5#12343

Then, please try to do this yourself. It is not so difficult.
You must use --prefix=/opt as an extra.
When I try to configure vorbis-tools it fails. Now I hope this is due to my dumb setup, and that it will run smoothly with your setup.

Please have a try and report what you get or don't get.
Good luck,

Marc

sollie
05-06-2007, 19:38
I see you fixed the problem.

Or is there anything i ahe to test.

Sollie.

DaNawq
25-06-2007, 00:16
Nice, also works under OpenWRT Build 7717 :-)

The only thing I don't know yet is how to make a .ipk from the compiled src.

iczfirz
03-07-2007, 06:11
Hi bros,

Anyone tell me why we need to compile the mt-daapd again?
Is that more features add?

~May

mumsoft
03-07-2007, 11:26
Hi bros,

Anyone tell me why we need to compile the mt-daapd again?
Is that more features add?

~May

a) A Roku soundbridge uses the RSP protocol, that the old Mt-daapd 2.4 does not provide.
b) There is no package for Firefly and the Asus WL-700gE
c) Transcoding ogg-files fails
d) Transcoding files with accented characters in folder or file name fails

Compiling mt-daapd solves a) to c).
An upcoming version of mt-daapd should also solve d).

Greetz,
Marc

iczfirz
03-07-2007, 15:52
wow... cool..
my xbmc is unable to connect to the 700ge native mt-daapd.
Do you think your compilation will fix this as well?

~May

mumsoft
03-07-2007, 20:58
wow... cool..
my xbmc is unable to connect to the 700ge native mt-daapd.
Do you think your compilation will fix this as well?

~May

I really don't know. The native mt-daapd is older than mt-daapd 2.4 that you can install with ipkg, so just try that one first.
As I have described how to compile the newer mt-daapd, it must be not very time consuming to try that one.

And maybe someone else knows...

Greetz,
Marc

Ping
10-07-2007, 11:02
I see in the ipkg repository here http://ipkg.nslu2-linux.org/feeds/unslung/wl500g/ that there are 2 versions of the mt-daapd, one is pretty recent. Anybody knows the differences? Or did anybody in this thread, who managed to compile, make an ipkg already?

It's still a bit unclear to me if this mt-daapd (one of the two in the rep) supports correctly the Pinnacle Soundbridge or not. I'm ready to compile as well if needed but if a package is there, much better...

Thanks

Ping

UPDATE: after some more googling, I seem to understand that even the 0.2.4-2 does not support the Pinnacle Soundbridge (but probably works with the Roku?). Anybody here can confirm?

mumsoft
12-07-2007, 22:33
UPDATE: after some more googling, I seem to understand that even the 0.2.4-2 does not support the Pinnacle Soundbridge (but probably works with the Roku?). Anybody here can confirm?

Roku and Pinnacle are just two brands for the same hardware, as I understand it. Maybe the Roku is US-based, and Pinnacle not?
Anyway, version 2.4 of Mt-daapd is way to old to understand the Roku protocol, whatever number you add to it.

If I knew how to make a package, I would have done that.

Marc

eitsch
19-07-2007, 08:03
hi there

when i want to start i get the following error in my log file:


2007-07-19 09:01:38 (00000400): Firefly Version svn-1586: Starting with debuglevel 2
2007-07-19 09:01:38 (00000400): Plugin loaded: rsp/svn-1586
2007-07-19 09:01:38 (00000400): Plugin loaded: ssc-script/svn-1586
2007-07-19 09:01:38 (00000400): Plugin loaded: daap/svn-1586
2007-07-19 09:01:38 (00000400): Starting rendezvous daemon
2007-07-19 09:01:38 (00000400): Starting signal handler
2007-07-19 09:01:38 (00000400): Error opening db: No backend database support for type: sqlite


someone knows how to fix it?

regards

mumsoft
19-07-2007, 20:53
Could you also give your configfile (/opt/etc/mt-daapd/mt-daapd.conf).

Marc

sollie
23-07-2007, 13:56
I also installed gdbm and libid3tag. firefly.org mentioned it.


ipkg install gdbm

ipkg install libid3tag


Downloading Dependencies
The only things necessary to install mt-daapd is libid3tag, the library used for ID3 tag reading, and gdbm. Libid3tag is part of MAD (http://www.underbit.com/products/mad/), the MPEG Audio Decoder. GDBM will almost certainly be provided by your distribution... even if you use one as goofy as, say, Solaris. Install this package in the manner appropriate for you distribution (fink install libid3tag on Mac OSX, emerge libid3tag on gentoo, etc).


Sollie

eitsch
23-07-2007, 15:08
thanks for your help, problem was solved, had some right-management problems with the sonds.db

regards

mumsoft
25-07-2007, 20:48
I also installed gdbm and libid3tag. firefly.org mentioned it.


ipkg install gdbm

ipkg install libid3tag



Sollie

Hi Sollie,

firefly.org? Don't you mean http://www.fireflymediaserver.org/ ?
But then still I can't find your quotes. Besides, I have both installed but I did not do that myself a far as I know.

Marc

sollie
26-07-2007, 00:11
Hi Sollie,

firefly.org? Don't you mean http://www.fireflymediaserver.org/ ?
But then still I can't find your quotes. Besides, I have both installed but I did not do that myself a far as I know.

Marc

Yeah i ment http://www.fireflymediaserver.org. I am sorry for that.

Last week i did a fresh install, so i could check the steps. When i was compiling, i got an error about missing the "libid3tag" but not about "gdbm". This one i found on there page.

After a successful compilation i could not get it running. That was becoz i run my shell as root, so i had to change the "runas' tag in the conf-file into root. That was all.

Sollie.

Archimalaka
01-08-2007, 21:35
I'm trying to replace my media server with mt-daapd.
When I try to start mt-daapd, it needs libz.so.
When I try to install this lib with ipkg, it answers that a symlink could not be created.
How to ????:confused:

Henrikh
03-08-2007, 23:44
Just to be sure, it is the zlib package that you are installing, right? (ipkg install zlib)

Are you running the install with root privileges?

mumsoft
29-08-2007, 10:19
I have decided not to wait any longer for an update of mt-daapd. I will sell or give away my Pinnacle Soundbridge, because it has no native OGG Vorbis support.
No device in my household will be allowed anymore if it does not have OGG Vorbis support.
In stead I have bought a Ziova Clearstream CS-510. That one does OGG Vorbis, but it has a very weak wireless encryption (WEP), with WPA only as a promise in the manual. Nevertheless, I will give it some credit and wait (again) for a FW-update with WPA2.
Sollie, am I right that you own a Ziova Clearstream too?

I have searched for media and music servers *a lot* and still did not find one that does this:
- Wireless WPA2
- OGG Vorbis
- music without TV
- video and photo's
- No Windows-dependancy
The Ziova at least fulfills the most and promises to fulfill all.

I found a nice site about media servers and streaming: http://www.mpcclub.com/

Marc

sollie
29-08-2007, 11:19
Yes i have the ziova Clearstream CS-505. I search for the web also for a better solution. Could not find it either.

Sollie.

PS: there is new firmware from ziova since yesterday.