[mythtv-users] MythTV and DISH - a great solution

John Goerzen jgoerzen at complete.org
Fri Sep 24 12:58:16 EDT 2004

On Friday 24 September 2004 10:47 am, Michael T. Dean wrote:
> >Yeah, and incidentally -- HOW (and I mean in a SANE way)?  I have a
> >homebrow IR transmitter for my dish network system and I would like
> > to use the IR receiver on my PVR-250.  Both have drivers, but lircd
> > seems to work with only one at a time.  I'm not willing to go
> > around and hack my kernel to use different major numbers for one
> > set of devices, run two lircds, etc.  WTF is lirc so broken that
> > its entire design assumes only one IR device on a system anyway?
> Because none of the people who were upset about it have submitted
> patches to allow it to use multiple devices.  ;)  Since you meet the
> qualifications for a person to fix it (i.e. a programmer (assuming
> from your sig) who's upset about the current design), you could be
> the one who finally fixes it.

Unfortunately... programmer yes.  Kernel hacker, no.  So I will probably 
not be the one to fix it.  I may, however, be one to work around it in 
a way that doesn't involve kernel hacking :-)

I've toyed with it a bit already.  The 2.6 patches have a benefit over 
2.4 in that one can build multiple modules there.  The trick is lircd, 
which is used both by the receive and the transmit code.  It doesn't 
work with multiple modules.  If memory serves, you can even load these 
modules at once and they get different minor numbers.  (I'm not at my 
mythtv box right now so I can't be certain...)

At first I thought that I could just be clever and make my 
channel-changing script stop lircd, move a symlink in /dev, and restart 
it.  Didn't work since myth holds the socket to lircd open (or at least 
doesn't bother to reopen in with lircd restarts... so if lircd 
restarts, myth's lirc receiver is dead)

So now I'm pondering writing a little program that listens out there on 
the named socket for lircd and relays messages back and forth, being 
careful to reconnect if lircd dies.  Then, I could use my kill lircd 
and move the symlink hack in my channel changing script and poof -- 
have something that works without hacking either lircd or the kernel.

But it's not a fix, it's a workaround.

John Goerzen
Author, Foundations of Python Network Programming

More information about the mythtv-users mailing list