From 9a303f31cba2f320a41a3a00e8cfd64e0259dbfe Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Mon, 23 Apr 2012 12:46:30 -0500 Subject: runit-scripts: replace lircd with remotes --- abs/core/runit-scripts/PKGBUILD | 2 +- abs/core/runit-scripts/runit.install | 13 +- .../runitscripts/services/lircd/finish | 23 --- .../runit-scripts/runitscripts/services/lircd/run | 163 ------------------- .../runitscripts/services/remotes/finish | 8 +- .../runitscripts/services/remotes/run | 173 ++++++++++----------- 6 files changed, 100 insertions(+), 282 deletions(-) delete mode 100755 abs/core/runit-scripts/runitscripts/services/lircd/finish delete mode 100755 abs/core/runit-scripts/runitscripts/services/lircd/run diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD index b368cd0..da205a5 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=58 +pkgrel=59 pkgdesc="collection of startup scripts for runit" url="http://smarden.org/runit/" license="BSD" diff --git a/abs/core/runit-scripts/runit.install b/abs/core/runit-scripts/runit.install index 2f9cf90..213d10f 100755 --- a/abs/core/runit-scripts/runit.install +++ b/abs/core/runit-scripts/runit.install @@ -3,7 +3,7 @@ post_install () { [ -e /service ] || mkdir /service - servicelist="acpid cron frontend lircd ntpd alsa-utils avahi dbus sshd rsyslog tty2 tty3" + servicelist="acpid cron frontend remotes ntpd alsa-utils avahi dbus sshd rsyslog tty2 tty3" for i in $servicelist do ln -s /etc/sv/$i /service/$i @@ -43,6 +43,17 @@ post_upgrade(){ fi + if [ -e /service/lircd ] + then + /sbin/sv stop lircd + /sbin/remove_service.sh lircd + /sbin/add_service.sh remotes + fi + + if [ -e /etc/sv/lircd ] + then + rm -r /etc/sv/lircd + fi } diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/finish b/abs/core/runit-scripts/runitscripts/services/lircd/finish deleted file mode 100755 index f6d8b95..0000000 --- a/abs/core/runit-scripts/runitscripts/services/lircd/finish +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -export TERM=linux -. /etc/rc.conf -. /etc/rc.d/functions -. /usr/MythVantage/bin/install_functions.sh - -killall -9 lircd 2>/dev/null -rm -f /var/run/lirc*.pid -[ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime -touch /etc/sv/lircd/.runtime/`date +%s` -numfiles=`/usr/bin/file_time_offset.py -s4 -d/etc/sv/lircd/.runtime ` -if [ $numfiles -gt 3 ] -then - rm -f /etc/sv/lircd/.runtime/* 2>/dev/null - sv stop lircd - printhl " lircd is not able to start, disabling it" -fi - - - - - - in_kernel_support "enable" \ No newline at end of file diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/run b/abs/core/runit-scripts/runitscripts/services/lircd/run deleted file mode 100755 index 93d9585..0000000 --- a/abs/core/runit-scripts/runitscripts/services/lircd/run +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/bash - -exec 2>&1 -export TERM=linux - -. /etc/rc.conf -. /etc/rc.d/functions -. /usr/MythVantage/bin/install_functions.sh - -LOG=/tmp/lirc.log - -if [ -f $LOG ] -then - rm -f $LOG -fi - - - - - - - - -#since what we do may not be enough -#if your one of those people, this is where you place your stuff -#This means place your lirc stuff in /etc/runit/lirc.sh. -#Anything in that file will be used and the rest of this file is ignored - -if [ -f /etc/runit/lirc.sh ] -then - #program must not terminate. - - stat_runit "Starting lirc" - - /etc/runit/lirc.sh -else - . /etc/systemconfig - stat_runit "Starting lirc" - - in_kernel_support "disable" - - [ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime - [ -e /var/run/lirc ] || mkdir -p /var/run/lirc - - function dvico_detect { - if [[ x$Remotetype = xdvico* ]] || [ x$Remotetype = "xDvico-Dual-Digital4-rev2" ] - then - RunDvico=true - else - RunDvico=false - fi - } - - 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 - - dvico_detect - - if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] - then - CMD="/usr/sbin/lircd -r -n --driver=commandir" - printhl " Using commandir" - $CMD >>$LOG 2>>$LOG - #echo $CMD - elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] - then - sv start igdaemon - CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" - printhl " Using iguanaIR usb" - #echo $CMD - $CMD >>$LOG 2>>$LOG - - elif [ x$ReceiverType = "xSiliconDust_HDHR" ] - then - # if using the SiliconDust_HDHR as an I/R Receiver - printhl " Using SiliconDust on port 5000" - CMD="/usr/sbin/lircd -H udp -d 5000 -n" - exec $CMD >>$LOG 2>>$LOG - 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" - #echo $CMD - $CMD >>$LOG 2>>$LOG - LASTCMD="--connect=localhost:876$i $LASTCMD " - done - - if [ $RunDvico = "true" ] - then - if [[ x$Remotetype = xdvico* ]] - then - LCMD="/usr/sbin/lircd -r -n -d /dev/remotes/dvicoIR --driver=dvico --output /var/run/lirc/lircd" - else - LCMD="/usr/sbin/lircd -r -n -d /dev/remotes/dvicoDualDigital4 --driver=devinput --output /var/run/lirc/lircd" - fi - - if [ $num_lirc -lt 0 ] - then - # Only run Dvico - printhl " Device $Remotetype" - #echo $LCMD - exec $LCMD >>$LOG 2>>$LOG - elif [ $num_lirc -gt -1 ] - then - i=$((i+1)) - CMD="$LCMD --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" - $CMD >> $LOG - LASTCMD="--connect=localhost:876$i $LASTCMD " - printhl " Device Dvico" - /usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD >>$LOG 2>>$LOG - fi - elif [[ x$Remotetype = ximon* ]] - then - /usr/bin/ir-keytable -c -p lirc -w /etc/rc_keymaps/imon_pad - LCMD="/usr/sbin/lircd -r -n --driver devinput -d /dev/remotes/SoundGraph --output /var/run/lirc/lircd" - exec $LCMD >>$LOG 2>>$LOG - else - LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" - #echo $LCMD - exec $LCMD >>$LOG 2>>$LOG - fi - fi -fi diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/finish b/abs/core/runit-scripts/runitscripts/services/remotes/finish index ac04a33..c1a5554 100755 --- a/abs/core/runit-scripts/runitscripts/services/remotes/finish +++ b/abs/core/runit-scripts/runitscripts/services/remotes/finish @@ -4,6 +4,9 @@ export TERM=linux . /etc/rc.d/functions . /usr/MythVantage/bin/install_functions.sh +LOG=/tmp/remotes.log +echo "`date` --- finish started" >> $LOG + killall -9 lircd 2>/dev/null rm -f /var/run/lirc*.pid [ -e /etc/sv/remotes/.runtime ] || mkdir -p /etc/sv/remotes/.runtime @@ -12,10 +15,11 @@ numfiles=`/usr/bin/file_time_offset.py -s4 -d/etc/sv/remotes/.runtime ` if [ $numfiles -gt 3 ] then rm -f /etc/sv/remotes/.runtime/* 2>/dev/null - sv stop remotes + sv stop remotes >> $LOG printhl " remotes is not able to start, disabling it" + echo " remotes is not able to start, disabling it" >> $LOG fi - +echo "Enable in kernel remote driver" >> $LOG in_kernel_support "enable" diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run index d32b09e..35d3f80 100755 --- a/abs/core/runit-scripts/runitscripts/services/remotes/run +++ b/abs/core/runit-scripts/runitscripts/services/remotes/run @@ -14,112 +14,101 @@ then rm -f $LOG 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/remotes.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)) -if [ -f /etc/remotes.sh ] +serial_port="" + +if [ x$ReceiverType = xSerial ] +then + serial_port=$ReceiverSerialport +elif [ x$HostBlasterType = xSerial ] then - #program must not terminate. + serial_port=$HostSerialPort_blasterlirc +fi - stat_runit "Starting remotes from /etc/remotes.sh" +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 - /etc/remotes.sh +if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] +then + CMD="/usr/sbin/lircd -r -n --driver=commandir" + printhl " Using commandir" + echo $CMD >>$LOG + exec $CMD >>$LOG 2>>$LOG +elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] +then + sv start igdaemon + CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" + printhl " Using iguanaIR usb" + echo $CMD >>$LOG + exec $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 + exec $CMD >>$LOG 2>>$LOG else - . /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)) + LASTCMD="" - serial_port="" + 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 + exec $CMD >>$LOG 2>>$LOG + LASTCMD="--connect=localhost:876$i $LASTCMD " + done - if [ x$ReceiverType = xSerial ] - then - serial_port=$ReceiverSerialport - elif [ x$HostBlasterType = xSerial ] - then - serial_port=$HostSerialPort_blasterlirc - fi + echo $LASTCMD >>$LOG - if [ -n "$serial_port" ] + if [ -f /etc/remote.run ] 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 + #program must not terminate. - if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ] - then - CMD="/usr/sbin/lircd -r -n --driver=commandir" - printhl " Using commandir" - $CMD >>$LOG 2>>$LOG - #echo $CMD - elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ] - then - sv start igdaemon - CMD="/usr/sbin/lircd -r -n --driver=iguanaIR" - printhl " Using iguanaIR usb" - #echo $CMD - $CMD >>$LOG 2>>$LOG - elif [ x$ReceiverType = "xSiliconDust_HDHR" ] - then - # if using the SiliconDust_HDHR as an I/R Receiver - printhl " Using SiliconDust on port 5000" - CMD="/usr/sbin/lircd -H udp -d 5000 -n" - exec $CMD >>$LOG 2>>$LOG + stat_runit "Starting remotes from /etc/remote.run" + echo "Starting remotes from /etc/remote.run" >>$LOG + exec /etc/remote.run $LASTCMD >>$LOG 2>>$LOG 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" - #echo $CMD - $CMD >>$LOG 2>>$LOG - LASTCMD="--connect=localhost:876$i $LASTCMD " - done - - if [ -f /etc/remote.run ] - then - #program must not terminate. - - stat_runit "Starting remotes from /etc/remote.run" - - /etc/remote.run - else - in_kernel_support "disable" - LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD" - #echo $LCMD - exec $LCMD >>$LOG 2>>$LOG - fi + 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 $LCMD >>$LOG + exec $LCMD >>$LOG 2>>$LOG fi fi -- cgit v0.12