JUL 2015 UPDATE: I modified the procedure to work with Ubuntu 14.04 x86_64, see post 8 : http://forums.slimdevices.com/showth...l=1#post824281
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:
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:
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.
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:
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:
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.
Comment