Setup

overall system setup

Client and server form a system, so some configuration details are common for client and server.

define a time source

The server and all clients need a common timesource to sync playback. NTP is used to realize this. In NTP, all clients get the time rom a NTP server. So you need access to a NTP server. Three different NTP setups are possible:

Use a public NTP server

In the internet there are serveral NTP servers available for public use. Configure all cleints and the server to get the time from one of those. Probably the best results can be avieved, if all clients and the server use the same NTP server.

Use a NTP server in your network

If there is a NTP server already setup for a different reason, kerberos 5 login for example, use it. Probably the clients and the server are already set up to get teir time from that NTP server.

setup your own NTP server

setup a NTP server on the same computer as the muroa server. You will get the best results with this setup. It works without a connection to the internet.

configure the client

The client accepts several commandline options:

--realtime-prio

Try to get realtime priority in the scheduler (SCHED_FIFO, prio 50). This leads to less dropouts in playback, even on weak systems with heavy load from differen processes. muroad needs root privileges to get realtime prio, So either start it as root or as part of the boot process, or set the binary SUID root. After setting itself to realtime scheduler, muroad drops root provileges again for security reasons.

--user

muroad runs as different user. You can create a user account with very little access rights to run muroad in:

adduser --home /tmp/ --shell /bin/false --disabled-login --no-create-home  --gecos "user for muroa daemon" muroa

or when using busybox:

adduser -h /tmp/ -s /bin/false -D -H muroa

Many systems use a special group for accessing audio hardware (soundcard), normally called 'audio'. Find out with:

ls -l /dev/dsp /dev/snd/
crw-rw---- 1 root audio 14, 3 2007-09-10 08:47 /dev/dsp

/dev/snd:
...
crw-rw---- 1 root audio 116,  9 2007-09-10 08:47 hwC1D0
...

In this example, root and users in the 'audio' group are allowed to use audio hardware. Set 'audio' as primary group for the 'muroa' user to that group to get write permission to audio hardware:

adduser --home /tmp/ --shell /bin/false --ingroup audio --disabled-login --no-create-home  --gecos "user for muroa daemon" muroa
--fork

fork into background. Useful to run muroad as deamon or start it from a startup script when booting.