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 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html