#!/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" ] 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)) #/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 if [ x$ReceiverType = xSerial ] then case $ReceiverSerialport in ttyS0) FLAGS="io=0x3f8 irq=4" ;; ttyS1) FLAGS="io=0x2f8 irq=3" ;; ttyS2) FLAGS="io=0x3e8 irq=4" ;; ttyS3) FLAGS="io=0x2f8 irq=3" ;; esac /usr/bin/setserial /dev/$ReceiverSerialport uart none sleep .5 /sbin/modprobe lirc_serial $FLAGS sleep .5 elif [ x$HostBlasterType = xSerial ] then case $HostSerialPort_blasterlirc in ttyS0) FLAGS="io=0x3f8 irq=4" ;; ttyS1) FLAGS="io=0x2f8 irq=3" ;; ttyS2) FLAGS="io=0x3e8 irq=4" ;; ttyS3) FLAGS="io=0x2f8 irq=3" ;; esac /usr/bin/setserial /dev/$ReceiverSerialport uart none sleep .5 /sbin/modprobe lirc_serial $FLAGS sleep .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 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" $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" # echo $CMD printhl " Device $i" $CMD >>$LOG 2>>$LOG LASTCMD="--connect=localhost:876$i $LASTCMD " done if [ $RunDvico = "true" -a $num_lirc -lt 0 ] then #only run dvicio LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico --output /dev/lircd" # echo $LCMD printhl " Device Dvicio" exec $LCMD >>$LOG 2>>$LOG elif [ $RunDvico = true -a $num_lirc -gt -1 ] then #chain them together i=$((i+1)) CMD="/usr/sbin/lircd -d /dev/usb/dvicoIR --driver=dvico --output=/dev/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i" # echo $CMD $CMD >> $LOG LASTCMD="--connect=localhost:876$i $LASTCMD " printhl " Device Dvicio" /usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd $LASTCMD >>$LOG 2>>$LOG else LCMD="/usr/sbin/lircd -n -d /dev/lirc0 --output /dev/lircd $LASTCMD" # echo $LCMD exec $LCMD >>$LOG 2>>$LOG fi fi fi