Squeezeslave on the core
Squeezeslave Setup
Here's how to setup squeezeslave to run on the core. It's fairly straight forward. One small issue is that because squeezeslave uses the OSS interface, you will need a separate sound card for each instance of squeezeslave you want to run.
Needed depends
System libraries needed are subversion and libasound2-dev
sudo apt-get install subversion sudo apt-get install libasound2-dev
Typical build
svn checkout http://squeezeslave.googlecode.com/svn/squeezeslave/trunk/squeezeslave cd squeezeslave make -f deprecated/makefile.linux26-alsa realclean make -f deprecated/makefile.linux26-alsa
Or Download Source / look at the squeezeslave wiki
Download a version of Squeezeslave. I'm running the latest version which was 0.9-143
Look at the slimdevices wiki for the latest options and install instructions http://wiki.slimdevices.com/index.php/SqueezeSlave
Installing
- You'll want to put it somewhere in your path.
- There will be a file in the /bin directory called squeezeslave (there might be something added to this to represent the version you build, just rename the file to squeezeslave and copy to your wanted directory
- Example: /usr/local/bin
Modify /etc/rc.local
Next add the following to /etc/rc.local
/usr/local/bin/squeezeslave -o4 192.168.80.1 -m00:00:00:00:00:01 -r5 -M/var/log/squeezeslave.log
- the IP address should be the IP address of your Core.
- the MAC address can be whatever you want, it just needs to be the same as the device created in linux mce
- the -o option specifies which OSS output device ie /dev/dsp1 (check with "squeezeslave -L" for available devices then use '-oN' where 'N' is the number next to your output device)
See example output using 'squeezeslave -L' below;
squeezeslave -L Output devices: 0: HDA NVidia: ALC1200 Analog (hw:0,0) 1: HDA NVidia: ALC1200 Digital (hw:0,1) 4: C-Media USB Audio Device : USB Audio (hw:1,0) 5: front 6: surround40 7: surround51 8: surround71 9: iec958 10: spdif 12: hdmi_playback 13: asym_hdmi 14: asym_analog *16: default
I am using the No.4 device in the output above and therefore would use '-o4' switch when using the squeezeslave command.
- the -r option tells squeezeslave to keep retrying to connect to the server, useful if the server is not running yet.
- the -M option makes it run as a Daemon and creates log
Setting Up Alsamixer
Next make sure all the volume levels in the mixer (alsamixer) are set correctly
alsamixer
Make sure that the settings are as desired and save (Esc button)
Setting Up LinuxMCE
Next step, manually add the squeezeslave to linuxmce as a squeezebox using the mac address you gave it.
Select Device
- Select Device->A/V Equipment
- Select SqueezeBox Player from the dropdown options
- Assign it to a room and entertainment area.
- Regen your orbiters and reload the router.
Restart the core to make sure it's starting automatically, to run it manually just run the line made in the rc.local
/usr/local/bin/squeezeslave -o5 -m 00:00:00:00:00:01 -r5 -M/var/log/squeezeslave.log
- Check with ps if it is running:
ps aux | grep squeezeslave
- Example output:
root 11502 0.0 0.8 51484 8812 ? SLl Apr07 0:33 /usr/local/bin/squeezeslave -05 -m00:00:00:00:00:02 -r5 -M/var/log/squeezeslave
That should do it.
use /usr/local/bin/squeezeslave -L for available audio devices
use /usr/local/bin/squeezeslave -h for a list of options (see below)
/usr/local/bin/squeezeslave -h
squeezeslave 0.9-143
compile flags: linux portaudio:1485 debug signals daemon
Squeezeslave is licensed free of charge. There is NO WARRANTY for
the program. This program is provided "as is" without warranty of
any kind, either expressed or implied, including, but not limited
to, the implied warranties of merchantability and fitness for a
particular purpose. The entire risk as to the quality and
performance of the program is with you. Should the program prove
defective, you assume the cost of all necessary servicing, repair
or correction.
Copyright (c) 2004-2007 Richard Titmuss,
2008-2010 Duane Paddock.
squeezeslave [options] [<server address>]
The Squeezebox Server address defaults to 127.0.0.1.
Options:
-h, --help: Prints this message.
-a, Sets the amplitude of a high-frequency tone
--predelay_amplitude <val>: produced during the predelay (see --predelay).
The frequency is set at the source's sampling
rate/2 and the amplitude is in absolute value.
For 16-bit sources, the max is 32767, but values
below 10 are likely to work. The goal is to
produce an inaudible signal that will cause DACs
to wake-up and lock before actual samples are
played out. If the DAC locks using only silence,
do not use this option (it will default to 0).
-k, --keepalive <sec>: Controls how frequently squeezeslave sends a
alive signal to SqueezeCenter. 6.5.x servers
need this to avoid dropping the player's
connection. By default, the implementation
chooses the right value: 10s for a >=6.5.x server
and 0s for a <6.5.x server, which means no
keepalive.
-M, --daemonize <logfile> Run squeezeslave as a daemon.
Messages written to specified file.
Not supported with lirc and display modes.
-L, --list List available audio devices and exit.
-m, --mac <mac_address>: Sets the mac address for this instance.
Use the colon-separated notation.
The default is 00:00:00:00:00:01.
SqueezeCenter uses this value to distinguish
multiple instances, allowing per-player settings.
-o, --output <device_id>: Sets the output device id.
The default id is 0.
The output device ids can be found with -L.
-P, --port <portnumber>: Sets the SqueezeCenter port number.
The default port is 3483.
-p, --predelay <msec>: Sets a delay before any playback is started. This
is useful if the DAC used for output is slow to
wake-up/lock, causing the first few samples to be
dropped.
--retry Causes the program to retry connecting to
SqueezeCenter until it succeeds or is stopped using
SIGTERM or keyboard entry (see -s/--signal).
If the connection to SqueezeCenter is lost, the
program will poll it until it restarts. --retry
enables retry with a 5 second delay between
attempts.
-r <sec> For a different retry interval use -r and the
desired interval in seconds. (ie. -r10)
A value is required for this option.
-s, --signal: Ignored. Always uses SIGTERM to exit.
-V, --version: Prints the squeezeslave version.
-v, --volume <sw|off>: Enables/disables volume changes done by
SqueezeCenter during its operation, such as when
changing the volume through the web interface or
when applying replay gain. Defaults to sw.
sw: volume changes performed in software.
off: volume changes ignored.
-Y, --debuglog <logfile>: Redirect debug output from stderr to <logfile>.
-d, --debug <trace_name>: Turns on debug tracing for the specified level.
The option can be used multiple times to enable
multiple levels.
Available levels:
all
slimproto
slimaudio
slimaudio_buffer
slimaudio_buffer_v
slimaudio_decoder
slimaudio_decoder_r
slimaudio_decoder_v
slimaudio_http
slimaudio_http_v
slimaudio_output
slimaudio_output_v