From: Vincent McIntyre <vincent.mcintyre@gmail.com>
To: linux-media@vger.kernel.org
Subject: ir-keytable: infinite loops, segfaults
Date: Wed, 16 Nov 2016 21:52:58 +1100 [thread overview]
Message-ID: <20161116105256.GA9998@shambles.local> (raw)
Hi,
I have a fairly old dvico dual digital 4 tuner and remote.
There seem to be some issues with support for it, can I help fix them?
I am using ir-keytable 1.10.0-1 on Ubuntu 16.04 LTS,
with kernel 4.4.0-47-generic (package version 4.4.0-47-generic)
The remote's keymapping is the one in /lib/udev/rc_keymaps/dvico_mce;
kernel support for the device is in media/usb/dvb-usb/cxusb.c.
Mostly it works, in that I get correct keycodes back from evtest
and ir-keytable -t. But I want to change some of the keycode mappings
and that is not working.
# cat >testfile
0xfe47 KEY_PAUSE
^D
# ir-keytable -v -d /dev/input/event15 -w testfile
Parsing testfile keycode file
parsing 0xfe47=KEY_PAUSE: value=119
Opening /dev/input/event15
Input Protocol version: 0x00010001
fe47=0077
Wrote 1 keycode(s) to driver
So far so good, yes? But evtest still reports the same keycode
for the key I tried to modify.
# evtest
<select device 15>
<press PLAYPAUSE key on remote>
Event: time 1479206112.262746, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 1
Event: time 1479206112.262746, -------------- SYN_REPORT ------------
Event: time 1479206112.262760, type 1 (EV_KEY), code 164 (KEY_PLAYPAUSE), value 0
Event: time 1479206112.262760, -------------- SYN_REPORT ------------
# irkeytable -r -d /dev/input/event15 |grep PAUSE
Enabled protocols: unknown rc-5 sony nec sanyo mce-kbd rc-6 sharp xmp
scancode 0xfe02 = KEY_PAUSE (0x77)
scancode 0xfe47 = KEY_PLAYPAUSE (0xa4)
I thought that I might need to clear and replace the entire table
to get things working. This is where the problems really start.
First trying to clear the table causes an infinite loop.
# ir-keytable -d /dev/input/event15 -c
Opening /dev/input/event15
Input Protocol version: 0x00010001
Deleting entry 1
Deleting entry 2
Deleting entry 3
Deleting entry 4
....
Deleting entry 2114689
Deleting entry 2114690
^C
Then I tried to load a modified version of dvico_mce
The whole file was there, with just this change:
--- dvico_mce 2016-11-13 22:50:11.442092350 +1100
+++ testfile 2016-11-16 20:46:29.361411631 +1100
@@ -38,7 +38,7 @@
0xfe03 KEY_0
0xfe1f KEY_ZOOM
0xfe43 KEY_REWIND
-0xfe47 KEY_PLAYPAUSE
+0xfe47 KEY_PAUSE
0xfe4f KEY_FASTFORWARD
0xfe57 KEY_MUTE
0xfe0d KEY_STOP
The program seems to parse the modified file ok but then
segaults while reading from the input device.
# ir-keytable -v -d /dev/input/event15 -w testfile
Parsing testfile keycode file
parsing 0xfe02=KEY_TV: value=377
parsing 0xfe0e=KEY_MP3: value=391
parsing 0xfe1a=KEY_DVD: value=389
parsing 0xfe1e=KEY_FAVORITES: value=364
parsing 0xfe16=KEY_SETUP: value=141
parsing 0xfe46=KEY_POWER2: value=356
parsing 0xfe0a=KEY_EPG: value=365
parsing 0xfe49=KEY_BACK: value=158
parsing 0xfe4d=KEY_MENU: value=139
parsing 0xfe51=KEY_UP: value=103
parsing 0xfe5b=KEY_LEFT: value=105
parsing 0xfe5f=KEY_RIGHT: value=106
parsing 0xfe53=KEY_DOWN: value=108
parsing 0xfe5e=KEY_OK: value=352
parsing 0xfe59=KEY_INFO: value=358
parsing 0xfe55=KEY_TAB: value=15
parsing 0xfe0f=KEY_PREVIOUSSONG: value=165
parsing 0xfe12=KEY_NEXTSONG: value=163
parsing 0xfe42=KEY_ENTER: value=28
parsing 0xfe15=KEY_VOLUMEUP: value=115
parsing 0xfe05=KEY_VOLUMEDOWN: value=114
parsing 0xfe11=KEY_CHANNELUP: value=402
parsing 0xfe09=KEY_CHANNELDOWN: value=403
parsing 0xfe52=KEY_CAMERA: value=212
parsing 0xfe5a=KEY_TUNER: value=386
parsing 0xfe19=KEY_OPEN: value=134
parsing 0xfe0b=KEY_1: value=2
parsing 0xfe17=KEY_2: value=3
parsing 0xfe1b=KEY_3: value=4
parsing 0xfe07=KEY_4: value=5
parsing 0xfe50=KEY_5: value=6
parsing 0xfe54=KEY_6: value=7
parsing 0xfe48=KEY_7: value=8
parsing 0xfe4c=KEY_8: value=9
parsing 0xfe58=KEY_9: value=10
parsing 0xfe13=KEY_ANGLE: value=371
parsing 0xfe03=KEY_0: value=11
parsing 0xfe1f=KEY_ZOOM: value=372
parsing 0xfe43=KEY_REWIND: value=168
parsing 0xfe47=KEY_PAUSE: value=119
parsing 0xfe4f=KEY_FASTFORWARD: value=208
parsing 0xfe57=KEY_MUTE: value=113
parsing 0xfe0d=KEY_STOP: value=128
parsing 0xfe01=KEY_RECORD: value=167
parsing 0xfe4e=KEY_POWER: value=116
Read dvico_mce table
Opening /dev/input/event15
Input Protocol version: 0x00010001
fe4e=0074
fe01=00a7
fe0d=0080
fe57=0071
fe4f=00d0
fe47=0077
fe43=00a8
fe1f=0174
fe03=000b
fe13=0173
fe58=000a
fe4c=0009
fe48=0008
fe54=0007
fe50=0006
fe07=0005
fe1b=0004
fe17=0003
fe0b=0002
fe19=0086
fe5a=0182
fe52=00d4
fe09=0193
fe11=0192
fe05=0072
fe15=0073
fe42=001c
fe12=00a3
fe0f=00a5
fe55=000f
fe59=0166
fe5e=0160
fe53=006c
fe5f=006a
fe5b=0069
fe51=0067
fe4d=008b
fe49=009e
fe0a=016d
fe46=0164
fe16=008d
fe1e=016c
fe1a=0185
fe0e=0187
fe02=0179
Wrote 45 keycode(s) to driver
Segmentation fault (core dumped)
Is this just operator error?
What further diagnostics would help?
Vince
PS evtest reports this about the device:
# evtest /dev/input/event15
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xfe9 product 0xdb78 version 0x827b
Input device name: "IR-receiver inside an USB DVB receiver"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
...<elided>...
Event code 403 (KEY_CHANNELDOWN)
Properties:
Testing ... (interrupt to exit)
^C
next reply other threads:[~2016-11-16 11:00 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-16 10:52 Vincent McIntyre [this message]
2016-11-17 13:45 ` ir-keytable: infinite loops, segfaults Sean Young
2016-11-18 12:14 ` Vincent McIntyre
2016-11-18 17:40 ` Sean Young
2016-11-18 22:01 ` Vincent McIntyre
2016-11-20 13:29 ` Sean Young
2016-11-22 7:25 ` Vincent McIntyre
2016-11-22 9:20 ` Sean Young
2016-11-23 12:39 ` Vincent McIntyre
2016-11-23 22:34 ` Sean Young
2016-11-24 12:12 ` Vincent McIntyre
2016-11-24 13:34 ` Sean Young
2016-11-25 8:59 ` Vincent McIntyre
2016-11-27 0:39 ` Vincent McIntyre
2016-11-27 19:35 ` Sean Young
2016-11-28 8:35 ` Vincent McIntyre
2016-11-30 9:02 ` Vincent McIntyre
2017-02-02 11:18 ` Vincent McIntyre
2017-02-02 23:35 ` Sean Young
[not found] ` <CAEsFdVMhbxb3d=_ugYjfYSCRZsQMhtt=kmsqX81x-6UjTYc-bg@mail.gmail.com>
[not found] ` <20170204191050.GA31779@gofer.mess.org>
[not found] ` <CAEsFdVM14VngTM5X=qWTitgwox+4yD8heUqjULe8C=3z2P+h3Q@mail.gmail.com>
2017-02-07 12:33 ` Vincent McIntyre
2017-02-16 13:05 ` Vincent McIntyre
2017-02-16 13:07 ` Vincent McIntyre
2017-02-20 17:13 ` Sean Young
2017-02-21 13:07 ` Vincent McIntyre
2017-02-21 18:32 ` Sean Young
2017-02-24 15:08 ` Vincent McIntyre
2017-02-28 22:15 ` Sean Young
2017-03-02 13:48 ` Vincent McIntyre
2016-11-18 22:49 ` Vincent McIntyre
2016-11-18 23:57 ` Vincent McIntyre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161116105256.GA9998@shambles.local \
--to=vincent.mcintyre@gmail.com \
--cc=linux-media@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.