View unanswered posts    View active topics

All times are UTC - 6 hours





Post new topic Reply to topic  [ 1 post ] 
Print view Previous topic   Next topic  
Author Message
Search for:
PostPosted: Mon Dec 21, 2009 2:05 pm 
Offline
Joined: Sun Feb 26, 2006 11:34 pm
Posts: 83
Location: Toronto, ON, Canada
Hi,

I have spent the past day trying to get my IRBlaster with 4 heads(i.e. Set-top boxes) working, along with my Microsoft Media Center USB remote.

Apparently there is a gap in the configuration that has yet to be resolved as of this writing. There is a ticket in Flyspray, but I thought I would include it here to share with the community, until it is resolved in the LinHES install.

In my case I was connecting 4 ExpressVu satellite receivers to two Hauppauge PVR-500, dual input card. The irblaster was a Buffalo unit from irblaster.info through COM1.

To get things working, I had to do the following:

In /etc/systemconfig I had to make sure that the #IR settings section indicated that HostSerialPort_blasterlirc="ttyS0". So the section should look like
Code:
#IR settings
Remotetype="mceusb"
ReceiverType="Default"
HostLircWait=""
ReceiverSerialport="ttyS0"
HostTransmitproto_1="301"
HostTransmitproto_2="none"
HostTransmitproto_3="none"
HostTransmitproto_4="none"
HostBlasterType="Receiver"
HostSerialPort_blasterlirc="ttyS0"


Because I have multiple receivers, each using separate remote codes, I had to include the remote codes for the 4 receivers. In the interest of simplicity, I included all 16 potential codes for my ExpressVu/Dishnet/EchoStar receiver, which can be found at LIRC's web site.

To include the definitions I used put the following at the end of /etc/lircd.conf:

Code:
include "/usr/MythVantage/templates/transmit/dish_network/lircd.conf"


I then needed a script to change the channels on the receivers. Each receiver/tuner has to have a script. I kept the location of /usr/local/bin/ from my 5.5 installation. I called the files change_channel#.sh where # was the number of the tuner.

Code:
#!/bin/sh
REMOTE_NAME=301
cmd="$1"

case $cmd in
       [0-9]*)
           for digit in $(echo $1 | sed -e 's/./& /g'); do
              irsend --device=/dev/lircd1 SEND_ONCE $REMOTE_NAME $digit
              sleep  0.3
           # If things work OK with sleep 1, try this for faster channel changes:
           # sleep 0.3
       done
           ;;

      *)
              irsend --device=/dev/lircd1 SEND_ONCE $REMOTE_NAME $cmd
                                       ;;
    esac
#    /usr/bin/fix_audio.sh &


The value of "REMOTE_NAME=301" needs to change to the name of the remote/code that is defined in the /usr/MythVantage/templates/transmit/dish_network/lircd.conf file.

For example, if you were using code 1 (the default for the receiver) you would use the value from the "name" field which is "dish1". If it was code 2 you would use the value of "dish2", and so on up to dish16.

At this point, things should be in place for a fairly conventional irblaster implementation, whether using a single or multi-head IR emitter.

Once you have created a change_channel script for each of your tuner/receiver combinations, go into mythtv-setup and map your input connection to your sources. While you're in the input configuration enter the path and file for "External Channel Change Command" (e.g. /usr/local/bin/channel_change1.sh)

We now need to do the modifications that are specific to the LinHES </=6.0.1.0. According to the ticket in Flyspray, there is a problem assigning the setserial value allowing irsend to use /dev/ttyS0. This can be resolved by creating a file called "/etc/runit/lirc.sh" with the following contents:

Code:
#!/bin/bash

exec 2>&1
export TERM=linux

. /etc/rc.conf
. /etc/rc.d/functions

LOG=/tmp/lirc.log

if [ -f $LOG ]
then
    rm -f $LOG
fi

    . /etc/systemconfig
    stat_runit "Starting lirc"

    [ -e /etc/sv/lircd/.runtime ] || mkdir -p /etc/sv/lircd/.runtime


        serial_port=$HostSerialPort_blasterlirc

    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
            CMD="/usr/sbin/lircd -r -d /dev/lirc1 --output=/dev/lircd1 --pidfile=/var/run/lircd1.pid"
       printhl "   Device 1"
            $CMD >>$LOG 2>>$LOG

        LCMD="/usr/sbin/lircd -r -n -d /dev/lirc0 --output /dev/lircd"
            exec $LCMD >>$LOG 2>>$LOG


That did it for me.

The last part with the addition of /etc/runit/lirc.sh may be deprecated in future releases, but the earlier configuration may prove useful.

Cheers,
Victor

_________________
Backend: Core 2-Quad CPU, 4GB RAM, 3TB
2 PVR-500, 1 HDHomerun
FE1: Zotac IONITX-B-E, w/2GB HD
FE2: Zotac MAG


Top
 Profile  
 

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 


All times are UTC - 6 hours




Who is online

Users browsing this forum: No registered users and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group

Theme Created By ceyhansuyu