diff options
| author | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-09-26 01:57:08 (GMT) | 
|---|---|---|
| committer | Cecil Hugh Watson <knoppmyth@gmail.com> | 2009-09-26 01:57:08 (GMT) | 
| commit | 7b29169fff9e7c624890c5edffe85def8a293136 (patch) | |
| tree | 47753889faa3a2063b66d1c7e7681e703eb1b39a /abs/core/runit-scripts/runitscripts/services/lircd | |
| parent | c491dea779dac29afff3578bf8245943817c2339 (diff) | |
| download | linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.zip linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.gz linhes_pkgbuild-7b29169fff9e7c624890c5edffe85def8a293136.tar.bz2 | |
LinHES 6.01.00
Diffstat (limited to 'abs/core/runit-scripts/runitscripts/services/lircd')
| -rwxr-xr-x | abs/core/runit-scripts/runitscripts/services/lircd/finish | 16 | ||||
| -rwxr-xr-x | abs/core/runit-scripts/runitscripts/services/lircd/run | 138 | 
2 files changed, 154 insertions, 0 deletions
| diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/finish b/abs/core/runit-scripts/runitscripts/services/lircd/finish new file mode 100755 index 0000000..1afc41c --- /dev/null +++ b/abs/core/runit-scripts/runitscripts/services/lircd/finish @@ -0,0 +1,16 @@ +#!/bin/bash +export TERM=linux +. /etc/rc.conf +. /etc/rc.d/functions + +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      diff --git a/abs/core/runit-scripts/runitscripts/services/lircd/run b/abs/core/runit-scripts/runitscripts/services/lircd/run new file mode 100755 index 0000000..0a398ac --- /dev/null +++ b/abs/core/runit-scripts/runitscripts/services/lircd/run @@ -0,0 +1,138 @@ +#!/bin/bash + +exec 2>&1 +export TERM=linux + +. /etc/rc.conf +. /etc/rc.d/functions + +#since what we do may not be enough +#if your one of those people, this is where you place your stuff + +LOG=/tmp/lirc.log + +if [ -f $LOG ] +then +    rm -f $LOG +fi + +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" + +    [ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime + +    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 -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 -n  --driver=iguanaIR" +	printhl "       Using iguanaIR usb" +#echo $CMD +        $CMD >>$LOG 2>>$LOG +    else +        LASTCMD="" + +        for i in `seq 1 $num_lirc` +        do +            CMD="/usr/sbin/lircd -d /dev/lirc$i --output=/dev/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 -n -d /dev/usb/dvicoIR --driver=dvico  --output /dev/lircd" +            else +                LCMD="/usr/sbin/lircd -n -d /dev/input/irremote --driver=devinput  --output /dev/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=/dev/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 -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD  >>$LOG 2>>$LOG +	    fi +	else +	    LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd  $LASTCMD" +#echo $LCMD +     	    exec $LCMD >>$LOG 2>>$LOG +	fi +    fi +fi | 
