#!/bin/bash exec 2>&1 #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. /etc/runit/lirc.sh else . /etc/systemconfig [ -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] |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 fi if [ 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 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 $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/hiddev0 --driver=dvico --output /dev/lircd" # echo $LCMD 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/hiddev0 --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 " /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