Skip to content

Instantly share code, notes, and snippets.

@alukach
Last active January 3, 2016 03:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alukach/8402410 to your computer and use it in GitHub Desktop.
Save alukach/8402410 to your computer and use it in GitHub Desktop.

Jambox Setup Instructions

Directions largely taken from RaspyFi RC2's "How It's Made"

Basic Setup

  1. Download Ubuntu 13.10 Minimal CD
  2. Create bootable USB
  3. Install OS... *. Software Selection: Install only 'OpenSSH Server'
  4. Install base packages: sudo apt-get install vim htop
  5. Install general dependencies for building packages: sudo apt-get install autoconf automake g++ gcc make
  6. Disable suspend on closing laptop lid
  7. Setup wifi: sudo apt-get install wicd-curses (optional?)

Notes: Way more free space! Now only using 890mb, when lubuntu was using something close to 2.4gb.

anthony@jambox:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       2.7G  890M  1.7G  35% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            488M  4.0K  488M   1% /dev
tmpfs           100M  552K   99M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            497M     0  497M   0% /run/shm
none            100M     0  100M   0% /run/user
anthony@jambox:~$

DAC

  1. Figure out which card corresponds to your USB DAC: cat /proc/asound/cards
  2. Create ~/.asoundrc file with:
pcm.!default {
        type hw
        card 1
        device 0
}

Airplay

Shairplay vs ShairPort

MPD

  1. Install mpd & mpc:
anthony@jambox:~$ sudo apt-get install mpd mpc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  avahi-daemon dconf-gsettings-backend dconf-service freepats glib-networking glib-networking-common
  glib-networking-services gsettings-desktop-schemas libao-common libao4 libasound2 libasound2-data
  libasyncns0 libaudiofile1 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7
  libavahi-glib1 libavcodec53 libavformat53 libavutil51 libcdio-cdda1 libcdio-paranoia1 libcdio13
  libconfig++9 libdaemon0 libdconf1 libfaad2 libffado2 libflac8 libfluidsynth1 libglibmm-2.4-1c2a
  libgme0 libgsm1 libid3tag0 libiec61883-0 libiso9660-8 libjack-jackd2-0 libmad0 libmikmod2 libmms0
  libmodplug1 libmp3lame0 libmpcdec6 libmpdclient2 libmpg123-0 libnss-mdns libogg0 liborc-0.4-0
  libproxy1 libpulse0 libraw1394-11 libresid-builder0c2a libsamplerate0 libschroedinger-1.0-0
  libshout3 libsidplay2 libsidutils0 libsndfile1 libsoup2.4-1 libspeex1 libtheora0 libva1 libvorbis0a
  libvorbisenc2 libvorbisfile3 libvpx1 libwavpack1 libwildmidi-config libwildmidi1 libxml++2.6-2
  libyajl2
Suggested packages:
  avahi-autoipd libaudio2 libesd0 libesd-alsa0 libasound2-plugins alsa-utils jackd2
  pulseaudio-esound-compat oss-compat pulseaudio libraw1394-doc speex icecast2 mpd-client
The following NEW packages will be installed:
  avahi-daemon dconf-gsettings-backend dconf-service freepats glib-networking glib-networking-common
  glib-networking-services gsettings-desktop-schemas libao-common libao4 libasound2 libasound2-data
  libasyncns0 libaudiofile1 libavahi-client3 libavahi-common-data libavahi-common3 libavahi-core7
  libavahi-glib1 libavcodec53 libavformat53 libavutil51 libcdio-cdda1 libcdio-paranoia1 libcdio13
  libconfig++9 libdaemon0 libdconf1 libfaad2 libffado2 libflac8 libfluidsynth1 libglibmm-2.4-1c2a
  libgme0 libgsm1 libid3tag0 libiec61883-0 libiso9660-8 libjack-jackd2-0 libmad0 libmikmod2 libmms0
  libmodplug1 libmp3lame0 libmpcdec6 libmpdclient2 libmpg123-0 libnss-mdns libogg0 liborc-0.4-0
  libproxy1 libpulse0 libraw1394-11 libresid-builder0c2a libsamplerate0 libschroedinger-1.0-0
  libshout3 libsidplay2 libsidutils0 libsndfile1 libsoup2.4-1 libspeex1 libtheora0 libva1 libvorbis0a
  libvorbisenc2 libvorbisfile3 libvpx1 libwavpack1 libwildmidi-config libwildmidi1 libxml++2.6-2
  libyajl2 mpc mpd
0 upgraded, 75 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.3 MB of archives.
After this operation, 79.0 MB of additional disk space will be used.
Do you want to continue [Y/n]?
  1. Install dependencies for building MPD packages: sudo apt-get install libfaad2 libfaad-dev libflac8 libflac-dev libogg0 libogg-dev libvorbis0a libvorbis-dev libid3tag0 libid3tag0-dev libmad0 libmad0-dev libcue-dev libcue1 libasound2 libasound-dev libasound2-dev libao-dev libwavpack-dev libwavpack1 libsamplerate0 libsamplerate-dev libmikmod2-dev libmikmod2 libmikmod-dev libshout-dev libavformat-dev libavcodec-dev libavutil-dev libaudiofile-dev libcurl4-openssl-dev libmms-dev libmms0 libtwolame-dev libtwolame0 libmp3lame-dev
  2. Clone, configure and build mpd:
cd ~/
sudo su
git clone git://git.musicpd.org/master/mpd.git
cd ./mpd
./autogen.sh
./configure --disable-bzip2 --disable-iso9660 --disable-zzip --enable-id3 --disable-sqlite --enable-ffmpeg --enable-alsa --disable-wave-encoder --enable-pipe-output --enable-httpd-output --disable-recorder-output --disable-sndfile --enable-oss --enable-shout --disable-pulse --disable-ao --disable-mad --disable-inotify --disable-ipv6 --enable-curl --disable-mms --disable-wavpack --disable-lame-encoder --disable-twolame-encoder --enable-vorbis --enable-lsr --with-zeroconf=auto
make
make install
sudo su
/etc/init.d/mpd stop
echo DAEMON=/usr/local/bin/mpd >>/etc/default/mpd
/etc/init.d/mpd start
mkdir -p ~/.mpd/playlists # Is this correct? Where should this playlist live?
  1. Edit /etc/mpd.conf:
    • #group "nogroup" -> group "audio"
    • bind_to_address "localhost" -> bind_to_address "any"
    • #auto_update "yes" -> `auto_update "yes"'
audio_output {
type "alsa"
name "My ALSA Device"
device "hw:0,0" # optional
format "44100:16:2" # optional
mixer_device "default" # optional
mixer_control "PCM" # optional
mixer_index "0" # optional

becomes

audio_output {
type "alsa"
name "USB Dac"
device "hw:0,0" # optional
format "44100:16:2" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment