[mythtv-users] Major chnages to ir-keytable in v4l-utils version 1.20.0?

Tom Dexter digitalaudiorock at gmail.com
Sun Jan 24 16:00:03 UTC 2021


On 1/24/21, Tom Dexter <digitalaudiorock at gmail.com> wrote:
> On 1/24/21, Tom Dexter <digitalaudiorock at gmail.com> wrote:
>> Wow did I just get burned. I've been using ir-keytable for MythTV
>> flawlessly for many years under Gentoo. Today, the update of
>> media-tv/v4l-utils and media-libs/libv4l from 1.16.6 to 1.20.0 broke
>> everything I'm doing. They also removed the old versions, and I just
>> spent all morning digging them up and putting them in my local repo to
>> get 1.16.6 back and everything's working again.
>>
>> It appears there must have been very major changes in 1.20.0.
>>
>> What I've always done is to use a script that runs at boot time to
>> load the keymap etc. What it does is to parse the output of the
>> ir-keytable command to find the entry for the driver I'm using
>> (currently iguanair), and figure out the correct /sys/class/rc/rcN
>> path and the correct input dev (/dev/input/eventN), and then to do
>> something like this:
>>
>> echo nec > /sys/class/rc/rc1/protocols
>> /usr/bin/ir-keytable -D 1000 -P 900 -c -w /etc/rc_keymaps/tivo34_nec
>> -d /dev/input/event2
>>
>> Like I say...this has worked for years. Part of what changed is the
>> format of the ir-keytable output, which tripped up the parsing in my
>> script. But even when I fixed that, the above ir-keytable command
>> failed with this error:
>>
>> /usr/bin/ir-keytable -p nec -D 1000 -P 900 -c -w
>> /etc/rc_keymaps/tivo34_nec -d /dev/input/event2
>> Missing protocol in /etc/rc_keymaps/tivo34_nec
>> ir-keytable: Failed to read table file /etc/rc_keymaps/tivo34_nec
>> Try `ir-keytable --help' or `ir-keytable --usage' for more information.
>>
>> Apparently the keytable file needs the protocol now. Mine has never
>> had anything but the scan codes, like this:
>>
>> cat /etc/rc_keymaps/tivo34_nec
>> 0x3085c031	KEY_0
>> 0x3085d028	KEY_1
>> 0x3085d029	KEY_2
>> 0x3085d02a	KEY_3
>> 0x3085d02b	KEY_4
>> ...etc...
>>
>> I see there's a new man page "man rc_keymap" that describes the file
>> as being in toml format with the protocols and the scan codes. I'm
>> just starting to understand what it appears they want there. What
>> sucks is that updating to 1.20.0 again in order to screw around with
>> that requires downtime for the frontend that we use a lot.
>>
>> Like I said, I *think* I understand for format, but if anyone else is
>> familiar with this, here's what I also need to understand:
>>
>> If I have the "nec" format defined in that key table, does that mean
>> it's no longer necessary for me to manually write it to the
>> /sys/class/rc/rcN/protocols as I've been doing?
>>
>> Thanks!
>> Tom
>>
>
> OK...I found this which seems to explain a lot:
>
> https://forum.mythtv.org/viewtopic.php?t=3729&start=30
>
> So that simple format I was using no longer works. From what I see
> there, I *think* that I no longer need to manually write to
> /sys/class/rc if the command I use specifies -s (--sysdev) set to, for
> example rc1.
>
> Will reply when/if I get that working.
>
> Tom
>

OK...Got this working with changes like those referenced in the above link.

I was correct that there's no need to manually write out the protocol
as long as -s is specified. The other change however is that the "-d"
option to specify the input device (/dev/input/eventN) is no longer a
valid option, and apparently not needed.

Wow though...this crap doesn't seem to be documented worth a shit
frankly, let alone these major changes in 1.20.0. All pretty
disingenuous if you ask me.

Tom


More information about the mythtv-users mailing list