SGI: Discussion

Good use for an old Indy: MPD (Music Player Daemon) box

I've been going through the giant stack of Indys that I have, selling some on eBay, parting out/testing things from the bad ones, etc.

Having singlehandedly saturated the eBay Indy market for a while, I decided to try something else with one of the ones I had laying around.

I made Music Player Daemon box out of it! :D I may even contribute a tardist to the Nekoware archives here in a few weeks.

It took a bit to get everything sorted out with library locations & some of the other libraries I needed for everything (id3tag was the only one I had to custom compile), but I got it running in an evening. It's mounted my NFS music share, and is happily churning away quietly on top of my stereo.

I didn't realize this until after it was in place, but the volume buttons work! It's the best-suited of the SGIs to stereo-top use - very low power, thin, reasonably light, and volume buttons!

On a R5k 180mhz, it's not even taxing it - ~10% CPU utilization playing back normal MP3s/OGGs. Not really using much memory either, for that matter, and I know I have some services running that I could shut down.

CPU: 87.8% idle, 9.3% usr, 2.4% ker, 0.5% wait, 0.0% xbrk, 0.0% intr
Memory: 192M max, 177M avail, 124M free, 128M swap, 128M free swap


So, yea. If anyone wants more info on compiling MPD for IRIX, let me know. And, as I said, I may get around to putting together a few more tardists so it's included in the Nekoware archive.

The other observation I have is that... a blue Indy looks out of place in an audio rack. I'm thinking of using one of the skins that's beat to death & painting it, either gloss black, metal fleck grey, or something steampunk (sort of a rusted iron look).

Questions? Comments?

-=Russ=-
Syonyk wrote: I made Music Player Daemon box out of it! :D I may even contribute a tardist to the Nekoware archives here in a few weeks.

That's very cool. Umm, btw there's an mpd tardist in /beta at the moment that joerg just built. Care to compare performance for us ?
Oh, I didn't look in the /beta section - I just pulled the current section.

I shall take a look at it!

-=Russ=-
Syonyk wrote: Oh, I didn't look in the /beta section - I just pulled the current section.

I shall take a look at it!


foetz used to do that to me all the time - I'd ask "how about blank-blank ?" and he'd say "in my directory or "in beta." Finally I learned to look more carefully :)

Good to have a test of the mpd concept tho and nice to have more people compiling apps. Now, how about a look at Lilypond ?
Sorry to dredge up an ancient post.
I have an Indy running Irix 6.5 which I am also planning on using as headless mpd box (using digital audio out to my amp).

I've installed the neko_mpd-0.1.2.tardist and (as far as I can tell) all dependencies but there seems to be a problem with the linked libraries:

Code: Select all

indy 20# mpd
21163:mpd: rld: Fatal Error: Cannot Successfully map soname 'libFLAC.so.5' version 'sgi5.2' under any of the filenames /usr/nekoware/lib/libFLAC.so.5:/usr/lib32/libFLAC.so.5:/usr/lib32/internal/libFLAC.so.5:/lib32/libFLAC.so.5:/opt/lib32/libFLAC.so.5:/usr/nekoware/lib
/libFLAC.so.5.5:/usr/lib32/libFLAC.so.5.5:/usr/lib32/internal/libFLAC.so.5.5:/lib32/libFLAC.so.5.5:/opt/lib32/libFLAC.so.5.5:


I've turned up this thread http://forums.nekochan.net/viewtopic.php?f=7&t=16722067&p=7310365&hilit=libFLAC.so.5#p7310365 which mentions the problem but I can't see a solution.

I'm very new to Irix and any pointers would be most appreciated!

(I have considered resorting to a Debian install just to simplify matters, but would prefer to stick with Irix if I can).
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI:
You could try XMMS2. It's got the same client/server model and the great thing about it is that it plays a lot of formats compared to MPD, which seems to be at a development standstill. I'd never go back to MPD.
Originally Posted by Tommie
Please delete your post. It is an insult to all the hard work society has put into making you an intelligent being.

Like somebody at AMD said about a decade ago: Benchmarking is like sex. Everybody brags about it, everybody loves doing it and nobody can agree on performance.
bviking wrote:

Code: Select all

indy 20# mpd
21163:mpd: rld: Fatal Error: Cannot Successfully map soname 'libFLAC.so.5' version 'sgi5.2' under any of the filenames /usr/nekoware/lib/libFLAC.so.5:/usr/lib32/libFLAC.so.5:/usr/lib32/internal/libFLAC.so.5:/lib32/libFLAC.so.5:/opt/lib32/libFLAC.so.5:/usr/nekoware/lib
/libFLAC.so.5.5:/usr/lib32/libFLAC.so.5.5:/usr/lib32/internal/libFLAC.so.5.5:/lib32/libFLAC.so.5.5:/opt/lib32/libFLAC.so.5.5:


Do a "Find" for libFLAC ? If it's not there, then you are missing a library. If it is, then this might be one of those cases for LD_LIBRARYN32_PATH. There's a current thread about that.

Unless you are particularly attached to MPD, ritchan's suggestion is probably a good one.
Thanks for the suggestions.

I have libFLAC.so.9 in /usr/nekoware/lib.

It seems that libFLAC.so.5 is expected.

ldd gives this:

Code: Select all

indy 4# ldd /usr/nekoware/bin/mpd
libsocket.so  =>         /usr/lib32/libsocket.so
libnsl.so  =>    /usr/lib32/libnsl.so
libao.so.3  =>   /usr/nekoware/lib/libao.so.3
libdl.so  =>     /usr/lib32/libdl.so
libshout.so.4  =>        /usr/nekoware/lib/libshout.so.4
libtheora.so.1  =>       /usr/nekoware/lib/libtheora.so.1
libspeex.so.2  =>        /usr/nekoware/lib/libspeex.so.2
libiconv.so.3  =>        /usr/nekoware/lib/libiconv.so.3
libmad.so.1  =>  /usr/nekoware/lib/libmad.so.1
libfaad.so.1  =>         /usr/nekoware/lib/libfaad.so.1
libvorbisfile.so.4  =>   /usr/nekoware/lib/libvorbisfile.so.4
libvorbisenc.so.3  =>    /usr/nekoware/lib/libvorbisenc.so.3
libvorbis.so.1  =>       /usr/nekoware/lib/libvorbis.so.1
libogg.so.1  =>  /usr/nekoware/lib/libogg.so.1
22575: 21:02:28 /usr/nekoware/bin/mpd: rld: Fatal Error exit/longjmp: Cannot Successfully map soname 'libFLAC.so.5' version 'sgi5.2' under any of the filenames /usr/nekoware/lib/libFLAC.so.5:/usr/lib32/libFLAC.so.5:/usr/lib32/internal/libFLAC.so.5:/lib32/libFLAC.so.5:/opt/lib32/libFLAC.so.5:/usr/nekoware/lib/libFLAC.so.5.5:/usr/lib32/libFLAC.so.5.5:/usr/lib32/internal/libFLAC.so.5.5:/lib32/libFLAC.so.5.5:/opt/lib32/libFLAC.so.5.5:
22575:/usr/nekoware/bin/mpd: rld: Fatal Error: Cannot Successfully map soname 'libFLAC.so.5' version 'sgi5.2' under any of the filenames /usr/nekoware/lib/libFLAC.so.5:/usr/lib32/libFLAC.so.5:/usr/lib32/internal/libFLAC.so.5:/lib32/libFLAC.so.5:/opt/lib32/libFLAC.so.5:/usr/nekoware/lib/libFLAC.so.5.5:/usr/lib32/libFLAC.so.5.5:/usr/lib32/internal/libFLAC.so.5.5:/lib32/libFLAC.so.5.5:/opt/lib32/libFLAC.so.5.5:


I'll look into xmms - although from a quick look nekoware doesn't seem to have a tardist of xmms2?
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI:
bviking wrote: Thanks for the suggestions.
I have libFLAC.so.9 in /usr/nekoware/lib.
It seems that libFLAC.so.5 is expected.

Quick and dirty ? make a link, rename it with the wrong number and try it.
Quick and dirty ? make a link, rename it with the wrong number and try it.


Hmm. Thanks for the suggestion, but unfortunately no cigar - I still get the same output.
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI:
bviking wrote: Hmm. Thanks for the suggestion, but unfortunately no cigar - I still get the same output.

Did a couple things, maybe can save you a few moments :

Searched for libFLAC.so.5, I don't have it either. Judging by the original post, perhaps the op compiled it with his mpd.

Did a quick download of xmms2,

Code: Select all

fewel 17% ./waf configure --prefix=/usr/testware -p
Traceback (most recent call last):
File "./waf", line 11, in <module>
imp.load_source("waf","waf-light")
File "waf-light", line 126, in <module>
import Scripting
File "/usr/people/me/sata/xmms2/wafadmin/Scripting.py", line 7, in <module>
import os, sys, shutil, traceback, time
ImportError: No module named time

Piss on them from a great height. Maybe I'll give mpd a shot a little later.

Edit :

Went here, there's been a lot of recent work on MPD

http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki

grabbed the source for the server, it compiled out of the box.. Yippee. Someone with a brain. Didn't try any of the clients. Xmms2, you may lick my sweaty nutsack.

bviking, do you have a compiler ? There are a ton of options from which you might want to choose. I could email you the server demon but it would be better if you set it up the way you want. Or maybe we could get canavan involved in this ? He's good with all the audio stuff. I'm just a buffoon beating the ground with a stick as far as coding goes.
Thanks hamei
At least I know it's not just me!
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI:
grabbed the source for the server, it compiled out of the box.. Yippee. Someone with a brain. Didn't try any of the clients. Xmms2, you may lick my sweaty nutsack.
Over here, it compiles, but without libmad support, i.e. no mp3. Just like with ffmpeg, curl and sqlite, it appears to require pkgconfig support for almost everything, but I don't see anything related to pkgconfig in either the libmad sources or tne nekoware package. It turns out those .pc-files are only part of the debian packages. I've just sent maxk of the mpd project an email about this - if he's not out cycling or flying

The otther problem of course is that the old mpd versions don't compile against the current libflac.
what an adventure!

I grabbed mpd-0.13.0 to give this a go. I needed to install neko_pkgconfig in order to get the configure script to run but am compiling now.

Will post back once I've had a poke around.
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI:
mmm. seems I posted too soon.

my build fails with the following:

Code: Select all

[snip]

ld32: WARNING 134: weak definition of get_myaddress in /usr/lib32/libnsl.so preempts that weak definition in /usr/lib32/libc.so.
ld32: WARNING 134: weak definition of host2netname in /usr/lib32/libnsl.so preempts that weak definition in /usr/lib32/libc.so.
ld32: WARNING 134: weak definition of netname2host in /usr/lib32/libnsl.so preempts that weak definition in /usr/lib32/libc.so.
ld32: WARNING 85: definition of _netname2host in /usr/lib32/libnsl.so preempts that definition in /usr/lib32/libc.so.
ld32: WARNING 134: weak definition of user2netname in /usr/lib32/libnsl.so preempts that weak definition in /usr/lib32/libc.so.
ld32: WARNING 85: definition of _getnetname in /usr/lib32/libnsl.so preempts that definition in /usr/lib32/libc.so.
ld32: Giving up after printing 50 warnings.  Use -wall to print all warnings.
ld32: ERROR 33: Unresolved text symbol "vorbis_encode_init_vbr" -- 1st referenced by mpd-audioOutput_shout.o.
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld32: ERROR 33: Unresolved text symbol "vorbis_encode_init" -- 1st referenced by mpd-audioOutput_shout.o.
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld32: ERROR 33: Unresolved text symbol "dirname" -- 1st referenced by mpd-directory.o.
Use linker option -v to see when and which objects, archives and dsos are loaded.
ld32: INFO 152: Output file removed because of error.
collect2: ld returned 2 exit status
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
*** Error code 1 (bu21)
:Indy: :Indy: :Indy: :O2: :O2: :1600SW: :1600SW: :O2000: :320: :PI: