Home of the Squeezebox™ & Transporter® network music players.
Results 1 to 8 of 8

Threaded View

  1. #1

    Building & running Squeezeplay v7.8 trunk on Ubuntu 12.04

    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:

    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.
    Last edited by Braklet; 2015-07-15 at 14:12. Reason: 14.04 x86_64 update

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •