[mythtv-users] DCT2224 Digital Cable Box

Craig I. Hagan hagan at cih.com
Sun Jan 11 03:11:34 EST 2004


> Could someone point me to the link for the software to control the 
> DCT2224 over the serial port? I searched the archives but didn't see 
> anything.

Here is how i do it:

I use both 2.4.x and 2.6.x linux running on gentoo. I've hand built
my lirc for 2.4.x, but some mods to the ebuild (i'll include them below)
appear to work. My dongle is an actisys 220L


2.4.x kernel and lirc-0.6.6:

I hand built lirc with the following config:
#!/bin/bash

./configure \
--with-module-dir=/lib/modules/2.4.24/misc \
--with-x \
--with-syslog \
--with-driver=act200l \
--with-major=61 \
--with-port=0x2f8 \
--with-irq=3 \
--with-transmitter \
--program-suffix=gi-motorola-dct2000 \
--prefix=/usr/local/cable \
--localstatedir=/usr/local/cable/var \

I believe that my ebuild modifications (under 2.6.x) will work
for 2.4.x and would be a better way to go.


2.6.x kernel and modified ebuild.
	- I first patched 2.6.1 with patch-lirc-2.6.1-rc1-20040106.diff.bz2 
		obtained from: http://flameeyes.web.ctonet.it/#lirc
		and built the lirc_sir module
	- change the lirc-0.7 ebuild as follows:

	1) remove the --with-driver=serial from the top portion (set in 
		LIRC_OPTS)
	
	2) set the port/irq to be correct for my machine 

	3) add the follwing config options:

                --with-x \
                --with-syslog \
                --with-major=61 \
                --with-driver=act200l \
                --with-transmitter \

I then emerged it and it appears to work just fine.



For channel changing, my scripts look like this:

channel.pl:

#!/usr/bin/perl


use Time::HiRes qw(sleep);

# make sure to set this string to
# the corresponding remote in /etc/lircd.conf
$remote_name = "gi-motorola-dct2000";

$rc = "/usr/bin/irsend";

sub change_channel {
        my($channel_digit) = @_;
        system ("$rc SEND_ONCE $remote_name $channel_digit");
        sleep(0.35);
}

$channel=$ARGV[0];
sleep 1;
if (length($channel) > 2) {
        change_channel(substr($channel,0,1));
        change_channel(substr($channel,1,1));
        change_channel(substr($channel,2,1));
        system ("$rc SEND_ONCE $remote_name ENTER");
} elsif (length($channel) > 1) {
        change_channel(substr($channel,0,1));
        change_channel(substr($channel,1,1));
        system ("$rc SEND_ONCE $remote_name ENTER");
} elsif (length($channel) == 1) {
        change_channel(substr($channel,0,1));
        system ("$rc SEND_ONCE $remote_name ENTER");
}
sleep (0.25);
system ("$rc SEND_ONCE $remote_name EXIT");


change_channel.csh:
#!/bin/csh
echo "changing to $1"
/usr/local/bin/channel.pl $1 &


(i'm' trying to remember which one i have myth call)


Note that you'll probably have to obtain Time::HiRes (or you can
have second sleeps which take longer to change channels)





More information about the mythtv-users mailing list