Quantcast
Channel: Squeezebox : Community : Forums - SqueezeOS Software Platform
Viewing all articles
Browse latest Browse all 4

Building & running Squeezeplay v7.8 trunk on Ubuntu 12.04

0
0
The subject of building Squeezeplay on Linux comes up occasionally but the most popular Googled guides are also a bit out of date, so here's what I just pulled off on my i386 Xubuntu box.

1. Set up your environment:

I'm not sure if this dependency list is up to date since I know I've had to update these libraries for other projects from time to time. Therefore I simply copied this list from the excellent though old http://www.jfwhome.com/2009/11/22/co...-ubuntu-amd64/ . If you're doing this from scratch you may find that you have to update the library list, but this will at least get you moving in the right direction.

sudo apt-get install build-essential flex bison subversion automake libtool libpng12-dev libjpeg62-dev libexpat1-dev libreadline5-dev xorg-dev libflac++-dev libvorbis-dev libvorbisidec-dev libasound-dev

2. Pull a Squeezeplay v7.8 snapshot:

cd <builddir>
svn co http://svn.slimdevices.com/repos/jiv...nk/squeezeplay

3. Tweak <builddir>/squeezeplay/src/Makefile.linux:

On line 10, change ${PWD} to $(shell pwd) . After the change, line 10 will look like this:

SRC_DIR = $(realpath $(shell pwd)) .

Search for 'luaprofiler-2.0', change line from:
cd luaprofiler-2.0 && make -f Makefile.linux install
to:
cd luaprofiler-2.0 && LD="gcc -shared" make -f Makefile.linux install

4. Tweak <builddir>/squeezeplay/src/squeezeplay/src/audio/decode/decode.c:

Search for 'elapsed:%llu' , change printf line from '%llu' to '%"PRIu64"' . After the change, the line will look something like this:

printf("elapsed:%"PRIu64" buffers: %0.1f%%/%0.1f%%\n", elapsed, dbuf, obuf);

5. Kludge the Squeezeplay PulseAudio library by downloading the latest library snapshot:

http://www.portaudio.com/archives/pa_snapshot.tgz

Delete all contents in <builddir>/squeezeplay/src/portaudio_v19_1360, then expand the library snapshot in this directory.

6. Kludge the Squeezeplay SDL library by downloading 1.2.15 source from:

http://www.libsdl.org/download-1.2.php

Delete all contents in <builddir>/squeezeplay/src/SDL-1.2.13 then expand the latest source in this directory.

7. cd <builddir>/squeezeplay/src/, execute "sudo make -f Makefile.linux" . If the build succeeds your results will be in <builddir>/squeezeplay/build (as directories you can copy to /opt/squeezeplay AND a tarball).

This gets you a working build but there's some other stuff you'll have to tweak to get around PulseAudio.

8. Modify your ALSA configuration:

a. Copy /usr/share/alsa/alsa.conf to /usr/share/alsa/alsa-nopulse.conf.
b. Comment OUT any Pulse invocation in also-nopulse.conf. In my case I commented every alsa.conf.d invocation within the @hooks/files section of this file, leaving "/etc/asound.conf" and "~/.asoundrc" in place, e.g.:

@hooks [
{
func load
files [
# {
# @func concat
# strings [
# { @func datadir }
# "/alsa.conf.d/"
# ]
# }
"/etc/asound.conf"
"~/.asoundrc"
]
errors false
}
]

9. Modify the squeezeplay.sh script you just built (<builddir>/squeezeplay/bin/squeezeplay.sh) to bypass PulseAudio using your new script:

Change "./jive" to:

ALSA_CONFIG_PATH=/usr/share/alsa/alsa-nopulse.conf ./jive

10. My system has some remaining permissions issues so I have to run /opt/squeezeplay/bin/squeezeplay.sh with root privilege. I got tired of tracking problems down so if anyone knows how to get it running as a normal user, please add to the thread.

Viewing all articles
Browse latest Browse all 4

Latest Images

Trending Articles





Latest Images