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.