From 34e77b742c61508b8e5ee0c7275fc59f7453c425 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Fri, 4 May 2012 00:28:59 -0500 Subject: runit-scripts: remotes run: add support for /etc/runit/lirc.sh. refs #821 --- abs/core/runit-scripts/PKGBUILD | 2 +- .../runitscripts/services/remotes/run | 186 +++++++++++---------- 2 files changed, 101 insertions(+), 87 deletions(-) diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD index 9357169..48e469d 100755 --- a/abs/core/runit-scripts/PKGBUILD +++ b/abs/core/runit-scripts/PKGBUILD @@ -1,6 +1,6 @@ pkgname=runit-scripts pkgver=2.1.1 -pkgrel=62 +pkgrel=63 pkgdesc="collection of startup scripts for runit" url="http://smarden.org/runit/" license="BSD" diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run index 9d46b0e..0943a8e 100755 --- a/abs/core/runit-scripts/runitscripts/services/remotes/run +++ b/abs/core/runit-scripts/runitscripts/services/remotes/run @@ -17,99 +17,113 @@ fi echo "`date` --- run started" >> $LOG -. /etc/systemconfig -stat_runit "Starting remotes" -[ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime -[ -e /var/run/lirc ] || mkdir -p /var/run/lirc +#What is done in this file may not be enough to start your specific remote. +#If that is true of your remote place your remote startup commands in: +# /etc/runit/lirc.sh +#Anything in that file will be used and the rest of this file is ignored. -num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l ` -num_lirc=$((num_lirc-1)) - -serial_port="" - -if [ x$ReceiverType = xSerial ] -then - serial_port=$ReceiverSerialport -elif [ x$HostBlasterType = xSerial ] -then - serial_port=$HostSerialPort_blasterlirc -fi - -if [ -n "$serial_port" ] -then - #/dev/ttyS0 (COM1), port 0x3f8, irq 4 - #/dev/ttyS1 (COM2), port 0x2f8, irq 3 - #/dev/ttyS2 (COM3), port 0x3e8, irq 4 - #/dev/ttyS3 (COM4), port 0x2e8, irq 3 - - case $serial_port in - ttyS0) - FLAGS="io=0x3f8 irq=4" - ;; - ttyS1) - FLAGS="io=0x2f8 irq=3" - ;; - ttyS2) - FLAGS="io=0x3e8 irq=4" - ;; - ttyS3) - FLAGS="io=0x2e8 irq=3" - ;; - esac - /usr/bin/setserial /dev/$serial_port uart none - sleep 0.5 - /sbin/modprobe lirc_serial $FLAGS - sleep 0.5 -fi - -if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] -then - CMD="/usr/sbin/lircd -r -n --driver=commandir" - printhl " Using commandir" - echo $CMD >>$LOG - $CMD >>$LOG 2>>$LOG -elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] +if [ -f /etc/runit/lirc.sh ] then - sv start igdaemon - CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" - printhl " Using iguanaIR usb" - echo $CMD >>$LOG - $CMD >>$LOG 2>>$LOG -elif [ x$ReceiverType = "xSiliconDust_HDHR" ] -then - # if using the SiliconDust_HDHR as an I/R Receiver - CMD="/usr/sbin/lircd -H udp -d 5000 -n" - printhl " Using SiliconDust on port 5000" - echo $CMD >>$LOG - $CMD >>$LOG 2>>$LOG + #program must not terminate. + stat_runit "Starting remotes from /etc/runit/lirc.sh" + echo "Starting remotes from /etc/runit/lirc.sh" >>$LOG + /etc/runit/lirc.sh else - LASTCMD="" - - for i in `seq 1 $num_lirc` - do - CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" - printhl " Device $i" + . /etc/systemconfig + stat_runit "Starting remotes" + + [ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime + [ -e /var/run/lirc ] || mkdir -p /var/run/lirc + + num_lirc=`ls -la /dev/lirc[0-9] 2>/dev/null |wc -l ` + num_lirc=$((num_lirc-1)) + + serial_port="" + + if [ x$ReceiverType = xSerial ] + then + serial_port=$ReceiverSerialport + elif [ x$HostBlasterType = xSerial ] + then + serial_port=$HostSerialPort_blasterlirc + fi + + if [ -n "$serial_port" ] + then + #/dev/ttyS0 (COM1), port 0x3f8, irq 4 + #/dev/ttyS1 (COM2), port 0x2f8, irq 3 + #/dev/ttyS2 (COM3), port 0x3e8, irq 4 + #/dev/ttyS3 (COM4), port 0x2e8, irq 3 + + case $serial_port in + ttyS0) + FLAGS="io=0x3f8 irq=4" + ;; + ttyS1) + FLAGS="io=0x2f8 irq=3" + ;; + ttyS2) + FLAGS="io=0x3e8 irq=4" + ;; + ttyS3) + FLAGS="io=0x2e8 irq=3" + ;; + esac + /usr/bin/setserial /dev/$serial_port uart none + sleep 0.5 + /sbin/modprobe lirc_serial $FLAGS + sleep 0.5 + fi + + if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] + then + CMD="/usr/sbin/lircd -r -n --driver=commandir" + printhl " Using commandir" echo $CMD >>$LOG $CMD >>$LOG 2>>$LOG - LASTCMD="--connect=localhost:876$i $LASTCMD " - done - - echo $LASTCMD >>$LOG - - if [ -f /etc/remote.run ] + elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] then - #program must not terminate. - - stat_runit "Starting remotes from /etc/remote.run" - LCMD="/etc/remote.run $LASTCMD" - echo "Starting remotes from $LCMD" >>$LOG - exec $LCMD >>$LOG 2>>$LOG + sv start igdaemon + CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" + printhl " Using iguanaIR usb" + echo $CMD >>$LOG + $CMD >>$LOG 2>>$LOG + elif [ x$ReceiverType = "xSiliconDust_HDHR" ] + then + # if using the SiliconDust_HDHR as an I/R Receiver + CMD="/usr/sbin/lircd -H udp -d 5000 -n" + printhl " Using SiliconDust on port 5000" + echo $CMD >>$LOG + $CMD >>$LOG 2>>$LOG else - echo "Disable in kernel remote driver" >>$LOG - in_kernel_support "disable" - LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" - echo "Starting remotes from $LCMD" >>$LOG - exec $LCMD >>$LOG 2>>$LOG + LASTCMD="" + + for i in `seq 1 $num_lirc` + do + CMD="/usr/sbin/lircd -r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" + printhl " Device $i" + echo $CMD >>$LOG + $CMD >>$LOG 2>>$LOG + LASTCMD="--connect=localhost:876$i $LASTCMD " + done + + echo $LASTCMD >>$LOG + + if [ -f /etc/remote.run ] + then + #program must not terminate. + + stat_runit "Starting remotes from /etc/remote.run" + LCMD="/etc/remote.run $LASTCMD" + echo "Starting remotes from $LCMD" >>$LOG + exec $LCMD >>$LOG 2>>$LOG + else + echo "Disable in kernel remote driver" >>$LOG + in_kernel_support "disable" + LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" + echo "Starting remotes from $LCMD" >>$LOG + exec $LCMD >>$LOG 2>>$LOG + fi fi fi -- cgit v0.12