[mythtv-users] lirc with hauppauge nova-t 500: only receives numbers

Stephen Worthington stephen_agent at jsw.gen.nz
Mon Jul 15 02:10:22 UTC 2013


On Sun, 14 Jul 2013 21:59:58 +0100, you wrote:

>2013/7/13 Stephen Worthington <stephen_agent at jsw.gen.nz>:
>> On Sat, 13 Jul 2013 12:08:53 +0100, you wrote:
>>
>>>Hi -
>>>
>>>I've installed mythtv on Xubuntu 13.04 (from the deb packages), and
>>>MythTV works fine, hurrah. The tuner is a Hauppauge NOVA-T 500 dual
>>>tuner with remote.
>>>
>>>But when I use the remote, lirc is only giving me numbers, none of the
>>>other controls (ok, left, right, play, fwd, rw, pause...). I see this
>>>in Mythfrontend (I can change channels while watching live TV but
>>>can't do anything else) and also in "irw" (if I press the numbers on
>>>the keypad the numbers come out in the Terminal window, but nothing
>>>else).
>>>
>>>When the lirc package was installing, I selected the appropriate
>>>model. So /etc/lirc/lircd.conf only contains some comment lines plus:
>>>
>>>  include "/usr/share/lirc/extras/more_remotes/hauppauge/lircd.conf.hauppauge_novat500"
>>>
>>>Has anyone seen this? I've been searching the web and couldn't find
>>>anyone having the same symptoms, but I imagine it's a symptom of a
>>>misconfiguration somewhere. I'd be grateful for any suggestions.
>>>
>>>Thanks
>>>Dan
>>
>> I would guess that the same old non-working config for the TD-500 that
>> is in 12.04 is still in 13.04 - it used to work before the move of the
>> remote code into the kernel, but has not since then (11.04?).
>>
>> I have a Nova TD-500 set up on my mother's MythTV box and I have an
>> HVR-500 (same remote) on my laptop.  Both are running on Mythbuntu
>> 12.04.  I made a copy of my working config for someone else - it is
>> still available here:
>>
>>   http://www.jsw.gen.nz/mythtv/Nova-TD-500-lirc.bz2
>>
>> And look here for good information on setting up and debugging lirc
>> remotes:
>>
>>  http://linhes.org/projects/linhes/wiki/Architecture_and_Customization
>>
>> There are some LinHes specific bits on that page but it mostly applies
>> to Ubuntu also and it gives good explanations of how it works.
>
>Thanks for this info! I tried putting all of your files in the
>appropriate places and rebooting, but it hasn't made the situation any
>different. I may indeed have to go through more debugging, haven't
>gone through that webpage yet.
>
> (To be specific on what I did: I had to create /etc/rc_keymaps, then
>in there I put "hauppauge" and "rc_maps.cfg"; I used your "mplayer"
>and "mythtv" in my ~/lirc, your "lircd.conf" in my /etc/lirc, your
>"lircd.conf.devinput" in my /usr/share/lirc/remotes/devinput, your
>"hardware.conf" in my /etc/lirc.)
>
>Best
>Dan

If you have more than one tuner, they may have an IR device each, and
the device names may change around on each boot.  So the first step is
a udev rule to lock down the TD-500 IR device.  I did that by adding a
file /etc/udev/rules.d/10-local.rules:

# Hauppauge Nova TD-500 remote control
SUBSYSTEM=="input", KERNEL=="event*",
ATTRS{idVendor}=="2040",ATTRS{idProduct}=="8400", SYMLINK+="lirc0"

(Two lines only - the SUBSYSTEM= line is all one line)

It may not be necessary to do that any more with more recent
udev/kernels as I think they somehow provide a stable address
somewhere.  But I still do it to create a device /dev/lirc0 that it is
easy to use in the lirc files.  You may need to run lsusb and find the
correct USB ID for your TD-500 card if it is not identical to mine.
This is what I get for lsusb:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 1b80:e39a Afatech DVB-T395U [af9015]
Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 003 Device 002: ID 2040:8400 Hauppauge WinTV Nova-T-500
Bus 002 Device 003: ID 046d:c52e Logitech, Inc.

and you can see the TD-500 is 2040:8400.  Once you have set up the
correct udev rule, reboot.  You should then be able to see a
/dev/lirc0 device in the /dev directory.

The next step is to get your IR device to use the new keytable.  To do
that, I added this to /etc/rc.local:

ir-keytable -s rc1 -a /etc/rc_maps.cfg

The correct device might not be rc1, so first run ir-keytable with no
options and see what devices it reports.  I get:

Found /sys/class/rc/rc2/ (/dev/input/event5) with:
        Driver af9015, table rc-empty
        Supported protocols: NEC
        Enabled protocols:
        Repeat delay = 500 ms, repeat period = 125 ms
Found /sys/class/rc/rc1/ (/dev/input/event6) with:
        Driver dib0700, table rc-dib0700-rc5
        Supported protocols: NEC RC-5 RC-6
        Enabled protocols: RC-5
        Repeat delay = 500 ms, repeat period = 125 ms

so the rc1 device on /dev/input/event6 is the one that comes from the
TD-500 (dib0700 is the driver used by the TD-500).  If the correct
device is rc1, then I think that is the default and you may not need
the rc.local line, but I put it in just to be sure.  For testing, just
run the ir-keytable command manually rather than having to reboot to
get rc.local to be run.

Check that the keytable is working using ir-keytable -t as explained
on that web page.  Do not forget to add a -s option if your remote is
not on rc1.  Press each key on your remote and make sure it has the
correct response,  If irkeytable -t is working, then you can try
restarting lirc:

/etc/init.d/lirc restart

and try testing with irw (again, see that web page).  Again, check
that each key produces the correct response.  If irw works, then you
can restart mythfrontend and see if it will respond.  After that, you
may need to configure some of the keystrokes recognised by
mythfrontend if you want to use the same setup I posted, for example
set up Ctrl-Alt-G to jump directly to the Guide page to get the Guide
button working.  That is done from a setup page in mythfrontend, or
from mythweb.

One other thing I do with all my tuners is to lock them down in the
tuner order so they can not move around for mythbackend.  If you have
different types of tuners (eg DVB-T and DVB-S), then having them swap
around makes them not work in mythbackend as they will be assigned the
wrong tuner type.  So it is best to add an option in the
/etc/modprobe.d directory.  I added a new file options-dvb.conf:

options dvb_usb_dib0700 adapter_nr=0,1

and reboot.  This will make the first two tuners on the dib0700 driver
appear to mythbackend always as tuners /dev/dvb/adapter0 and
/dev/dvb/adapter1.  Other manufacturer's tuners also use the dib0700
driver (eg some AverMedia ones like mine), so if you have other
dib0700 tuners, you can not fix which one is which between the various
dib0700 ones, but as they are all DVB-T that does not matter much.
Most tuner drivers use the same adapter_nr option for doing this.

I have probably forgotten something - it is quite a while since I got
my TD-500s working.  So let me know if you have any problems.


More information about the mythtv-users mailing list