#!/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)) serial_port="" if [ x$ReceiverType = xSerial ] then serial_port=$ReceiverSerialport elid [ 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 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" 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 Dvico LCMD="/usr/sbin/lircd -n -d /dev/usb/dvicoIR --driver=dvico --output /dev/lircd" 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" $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" exec $LCMD >>$LOG 2>>$LOG fi fi fi