OpenWrt/Music
Appearance
< OpenWrt
OpenWrt music streaming
Streaming music via OpenWrt on 4MB flash router
Install packages
opkg update opkg install kmod-usb-audio kmod-usb-ohci kmod-usb-core kmod-sound-core opkg install madplay mpc opkg install snmpd opkg install coreutils-stty
create files
mkdir /etc/scripts ; cd /etc/scripts touch madplay.sh ; chmod +x $_ touch mpc_alarm.sh ; chmod +x $_ touch mpc_stop.sh ; chmod +x $_ touch serial.sh ; chmod +x $_ touch madplay_ip.conf ; touch mpc_ip.conf
cd /etc/init.d touch madplay ; chmod +x $_ touch serial ; chmod +x $_
file contents
- /etc/scripts/madplay.sh:
#! /bin/sh while true do sleep 2 wget -O - `cat /etc/scripts/madplay_ip.conf` | madplay - sleep 8 done
- /etc/scripts/mpc_alarm.sh:
#!/bin/sh IP=`cat /etc/scripts/mpc_ip.conf` mpc -h $IP clear mpc -h $IP repeat on mpc -h $IP random off mpc -h $IP single off mpc -h $IP consume off mpc -h $IP enable 2 mpc -h $IP load "Alarm Clock Intro" mpc -h $IP shuffle mpc -h $IP play sleep 60 mpc -h $IP stop mpc -h $IP clear mpc -h $IP load "Alarm Clock" mpc -h $IP random on mpc -h $IP play
- /etc/scripts/mpc_stop.sh:
#!/bin/sh IP=`cat /etc/scripts/mpc_ip.conf` mpc -h $IP stop
- /etc/scripts/serial.sh:
#! /bin/sh
#
port="/dev/ttyATH0"
stty -F $port 9600 -echo
echo "!C,booted*" > $port
while true
do
serialinput=""
until serialinput=$(echo $serialinput | egrep "!A,|!C,") # egrep "|" = OR
do
serialinput=$(head -n 1 < $port)
done
echo "$serialinput"
case "$serialinput" in
"!C,AlarmStart*" ) /etc/scripts/mpc_alarm.sh &;;
"!C,AlarmStop*" ) /etc/scripts/mpc_stop.sh &;;
esac
done
- /etc/init.d/madplay:
#!/bin/sh /etc/rc.common
# madplay script
START=99
DAEMON=/etc/scripts/madplay.sh
DAEMONNAME=madplay
PIDFILE=/var/run/madplay.pid
start() {
echo -n "starting: $DAEMONNAME"
if [ -f $PIDFILE ] ; then
echo
echo "$DAEMONNAME already running (PID=`cat $PIDFILE`)"
exit
fi
touch $PIDFILE
start-stop-daemon -S -p $PIDFILE -m -b -x $DAEMON
echo "(PID=`cat $PIDFILE`)"
}
stop() {
if [ ! -f $PIDFILE ] ; then
echo "$DAEMONNAME is not running"
exit
fi
PID=`cat $PIDFILE`
echo "stopping: $DAEMONNAME(PID=$PID)"
kill -INT $PID
pkill -INT -P $PID
rm -f $PIDFILE
}
- /etc/init.d/serial:
#!/bin/sh /etc/rc.common
# serial interface script
START=99
DAEMON=/etc/scripts/serial.sh
DAEMONNAME=serial
PIDFILE=/var/run/serial.pid
start() {
echo -n "starting: $DAEMONNAME"
if [ -f $PIDFILE ] ; then
echo
echo "$DAEMONNAME already running (PID=`cat $PIDFILE`)"
exit
fi
touch $PIDFILE
start-stop-daemon -S -p $PIDFILE -m -b -x $DAEMON
echo "(PID=`cat $PIDFILE`)"
}
stop() {
if [ ! -f $PIDFILE ] ; then
echo "$DAEMONNAME is not running"
exit
fi
PID=`cat $PIDFILE`
echo "stopping: $DAEMONNAME(PID=$PID)"
kill -INT $PID
pkill -INT -P $PID
rm -f $PIDFILE
}