Re: ir-keytable: infinite loops, segfaults

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 23, 2016 at 10:34:19PM +0000, Sean Young wrote:
> > Not sure why Driver is (null), dvb_usb_cxusb is loaded.
> 
> That's a mistake, I've fixed that now.

Ah. I see the added module_name struct members.

> > I tried -t and it generated events constantly, before I could press
> > any keys.
> > # ir-keytable -s rc1 -t
> > Testing events. Please, press CTRL-C to abort.
> > 1479903007.535509: event type EV_MSC(0x04): scancode = 0x00
> > 1479903007.535509: event type EV_SYN(0x00).
> > 1479903007.635521: event type EV_MSC(0x04): scancode = 0x00
> 
> That's also been fixed.
> 

yep, works nicely.

Things are looking much better!
As shown below I am able to clear a keytable and put in a fresh one.
Having a bit of trouble with key remapping.
I guess we still have to work out the protocol in use.

Test details:
# ir-keytable -v
Found device /sys/class/rc/rc0/
Found device /sys/class/rc/rc1/
Found device /sys/class/rc/rc2/
Input sysfs node is /sys/class/rc/rc0/input8/
Event sysfs node is /sys/class/rc/rc0/input8/event5/
Parsing uevent /sys/class/rc/rc0/input8/event5/uevent
/sys/class/rc/rc0/input8/event5/uevent uevent MAJOR=13
/sys/class/rc/rc0/input8/event5/uevent uevent MINOR=69
/sys/class/rc/rc0/input8/event5/uevent uevent DEVNAME=input/event5
Parsing uevent /sys/class/rc/rc0/uevent
/sys/class/rc/rc0/uevent uevent NAME=rc-imon-mce
/sys/class/rc/rc0/uevent uevent DRV_NAME=imon
input device is /dev/input/event5
/sys/class/rc/rc0/protocols protocol rc-6 (enabled)
Found /sys/class/rc/rc0/ (/dev/input/event5) with:
	Driver imon, table rc-imon-mce
	Supported protocols: rc-6 
	Enabled protocols: rc-6 
	Name: iMON Remote (15c2:ffdc)
	bus: 3, vendor/product: 15c2:ffdc, version: 0x0000
Input sysfs node is /sys/class/rc/rc1/input18/
Event sysfs node is /sys/class/rc/rc1/input18/event15/
Parsing uevent /sys/class/rc/rc1/input18/event15/uevent
/sys/class/rc/rc1/input18/event15/uevent uevent MAJOR=13
/sys/class/rc/rc1/input18/event15/uevent uevent MINOR=79
/sys/class/rc/rc1/input18/event15/uevent uevent DEVNAME=input/event15
Parsing uevent /sys/class/rc/rc1/uevent
/sys/class/rc/rc1/uevent uevent NAME=rc-dvico-mce
/sys/class/rc/rc1/uevent uevent DRV_NAME=dvb_usb_cxusb
input device is /dev/input/event15
/sys/class/rc/rc1/protocols protocol unknown (disabled)
Found /sys/class/rc/rc1/ (/dev/input/event15) with:
	Driver dvb_usb_cxusb, table rc-dvico-mce
	Supported protocols: unknown 
	Enabled protocols: 
	Name: IR-receiver inside an USB DVB re
	bus: 3, vendor/product: 0fe9:db78, version: 0x827b
Input sysfs node is /sys/class/rc/rc2/input19/
Event sysfs node is /sys/class/rc/rc2/input19/event16/
Parsing uevent /sys/class/rc/rc2/input19/event16/uevent
/sys/class/rc/rc2/input19/event16/uevent uevent MAJOR=13
/sys/class/rc/rc2/input19/event16/uevent uevent MINOR=80
/sys/class/rc/rc2/input19/event16/uevent uevent DEVNAME=input/event16
Parsing uevent /sys/class/rc/rc2/uevent
/sys/class/rc/rc2/uevent uevent NAME=rc-empty
/sys/class/rc/rc2/uevent uevent DRV_NAME=dvb_usb_af9035
input device is /dev/input/event16
/sys/class/rc/rc2/protocols protocol nec (disabled)
Found /sys/class/rc/rc2/ (/dev/input/event16) with:
	Driver dvb_usb_af9035, table rc-empty
	Supported protocols: nec 
	Enabled protocols: 
	Name: Leadtek WinFast DTV Dongle Dual
	bus: 3, vendor/product: 0413:6a05, version: 0x0200
	Repeat delay = 500 ms, repeat period = 125 ms
	Repeat delay = 500 ms, repeat period = 125 ms
	Repeat delay = 500 ms, repeat period = 125 ms

# ir-keytable -r -v -s rc1
Found device /sys/class/rc/rc0/
Found device /sys/class/rc/rc1/
Found device /sys/class/rc/rc2/
Input sysfs node is /sys/class/rc/rc1/input18/
Event sysfs node is /sys/class/rc/rc1/input18/event15/
Parsing uevent /sys/class/rc/rc1/input18/event15/uevent
/sys/class/rc/rc1/input18/event15/uevent uevent MAJOR=13
/sys/class/rc/rc1/input18/event15/uevent uevent MINOR=79
/sys/class/rc/rc1/input18/event15/uevent uevent DEVNAME=input/event15
Parsing uevent /sys/class/rc/rc1/uevent
/sys/class/rc/rc1/uevent uevent NAME=rc-dvico-mce
/sys/class/rc/rc1/uevent uevent DRV_NAME=dvb_usb_cxusb
input device is /dev/input/event15
/sys/class/rc/rc1/protocols protocol unknown (disabled)
Opening /dev/input/event15
Input Protocol version: 0x00010001
Enabled protocols: 
scancode 0xfe01 = KEY_RECORD (0xa7)
scancode 0xfe02 = KEY_TV (0x179)
scancode 0xfe03 = KEY_0 (0x0b)
scancode 0xfe05 = KEY_VOLUMEDOWN (0x72)
scancode 0xfe07 = KEY_4 (0x05)
scancode 0xfe09 = KEY_CHANNELDOWN (0x193)
scancode 0xfe0a = KEY_EPG (0x16d)
scancode 0xfe0b = KEY_1 (0x02)
scancode 0xfe0d = KEY_STOP (0x80)
scancode 0xfe0e = KEY_MP3 (0x187)
scancode 0xfe0f = KEY_PREVIOUSSONG (0xa5)
scancode 0xfe11 = KEY_CHANNELUP (0x192)
scancode 0xfe12 = KEY_NEXTSONG (0xa3)
scancode 0xfe13 = KEY_ANGLE (0x173)
scancode 0xfe15 = KEY_VOLUMEUP (0x73)
scancode 0xfe16 = KEY_SETUP (0x8d)
scancode 0xfe17 = KEY_2 (0x03)
scancode 0xfe19 = KEY_OPEN (0x86)
scancode 0xfe1a = KEY_DVD (0x185)
scancode 0xfe1b = KEY_3 (0x04)
scancode 0xfe1e = KEY_FAVORITES (0x16c)
scancode 0xfe1f = KEY_ZOOM (0x174)
scancode 0xfe42 = KEY_ENTER (0x1c)
scancode 0xfe43 = KEY_REWIND (0xa8)
scancode 0xfe46 = KEY_POWER2 (0x164)
scancode 0xfe47 = KEY_PLAYPAUSE (0xa4)
scancode 0xfe48 = KEY_7 (0x08)
scancode 0xfe49 = KEY_BACK (0x9e)
scancode 0xfe4c = KEY_8 (0x09)
scancode 0xfe4d = KEY_MENU (0x8b)
scancode 0xfe4e = KEY_POWER (0x74)
scancode 0xfe4f = KEY_FASTFORWARD (0xd0)
scancode 0xfe50 = KEY_5 (0x06)
scancode 0xfe51 = KEY_UP (0x67)
scancode 0xfe52 = KEY_CAMERA (0xd4)
scancode 0xfe53 = KEY_DOWN (0x6c)
scancode 0xfe54 = KEY_6 (0x07)
scancode 0xfe55 = KEY_TAB (0x0f)
scancode 0xfe57 = KEY_MUTE (0x71)
scancode 0xfe58 = KEY_9 (0x0a)
scancode 0xfe59 = KEY_INFO (0x166)
scancode 0xfe5a = KEY_TUNER (0x182)
scancode 0xfe5b = KEY_LEFT (0x69)
scancode 0xfe5e = KEY_OK (0x160)
scancode 0xfe5f = KEY_RIGHT (0x6a)

# ir-keytable -s rc1 -t
Testing events. Please, press CTRL-C to abort.
1479985656.760267: event type EV_MSC(0x04): scancode = 0xfe47
1479985656.760267: event type EV_KEY(0x01) key_down: KEY_PLAYPAUSE(0x00a4)
1479985656.760267: event type EV_SYN(0x00).
1479985657.011045: event type EV_KEY(0x01) key_up: KEY_PLAYPAUSE(0x00a4)
1479985657.011045: event type EV_SYN(0x00).
1479985671.812267: event type EV_MSC(0x04): scancode = 0xfe53
1479985671.812267: event type EV_KEY(0x01) key_down: KEY_DOWN(0x006c)
1479985671.812267: event type EV_SYN(0x00).
1479985672.063048: event type EV_KEY(0x01) key_up: KEY_DOWN(0x006c)
1479985672.063048: event type EV_SYN(0x00).
1479985674.520279: event type EV_MSC(0x04): scancode = 0xfe52
1479985674.520279: event type EV_KEY(0x01) key_down: KEY_CAMERA(0x00d4)
1479985674.520279: event type EV_SYN(0x00).
1479985674.771044: event type EV_KEY(0x01) key_up: KEY_CAMERA(0x00d4)
1479985674.771044: event type EV_SYN(0x00).
1479985675.628312: event type EV_MSC(0x04): scancode = 0xfe4d
1479985675.628312: event type EV_KEY(0x01) key_down: KEY_MENU(0x008b)
1479985675.628312: event type EV_SYN(0x00).
1479985675.879045: event type EV_KEY(0x01) key_up: KEY_MENU(0x008b)
1479985675.879045: event type EV_SYN(0x00).
1479985677.732236: event type EV_MSC(0x04): scancode = 0xfe49
1479985677.732236: event type EV_KEY(0x01) key_down: KEY_BACK(0x009e)
1479985677.732236: event type EV_SYN(0x00).
1479985677.983043: event type EV_KEY(0x01) key_up: KEY_BACK(0x009e)
1479985677.983043: event type EV_SYN(0x00).
1479985687.464239: event type EV_MSC(0x04): scancode = 0xfe5e
1479985687.464239: event type EV_KEY(0x01) key_down: KEY_OK(0x0160)
1479985687.464239: event type EV_SYN(0x00).
1479985687.715043: event type EV_KEY(0x01) key_up: KEY_OK(0x0160)
1479985687.715043: event type EV_SYN(0x00).
1479985696.396382: event type EV_MSC(0x04): scancode = 0xfe42
1479985696.396382: event type EV_KEY(0x01) key_down: KEY_ENTER(0x001c)
1479985696.396382: event type EV_SYN(0x00).
1479985696.647049: event type EV_KEY(0x01) key_up: KEY_ENTER(0x001c)
1479985696.647049: event type EV_SYN(0x00).
1479985701.220194: event type EV_MSC(0x04): scancode = 0xfe0d
1479985701.220194: event type EV_KEY(0x01) key_down: KEY_STOP(0x0080)
1479985701.220194: event type EV_SYN(0x00).
1479985701.471047: event type EV_KEY(0x01) key_up: KEY_STOP(0x0080)
1479985701.471047: event type EV_SYN(0x00).
^C

# diff  dvice_mce dvico_mce_new
--- dvico_mce   2016-11-24 22:18:48.000000000 +1100
+++ dvico_mce_new   2016-11-24 22:11:02.000000000 +1100
@@ -12,7 +12,7 @@
 0xfe5b KEY_LEFT
 0xfe5f KEY_RIGHT
 0xfe53 KEY_DOWN
-0xfe5e KEY_OK
+0xfe5e KEY_ENTER
 0xfe59 KEY_INFO
 0xfe55 KEY_TAB
 0xfe0f KEY_PREVIOUSSONG

# ir-keyable -v -s rc1 -c
Found device /sys/class/rc/rc0/
Found device /sys/class/rc/rc1/
Found device /sys/class/rc/rc2/
Input sysfs node is /sys/class/rc/rc1/input18/
Event sysfs node is /sys/class/rc/rc1/input18/event15/
Parsing uevent /sys/class/rc/rc1/input18/event15/uevent
/sys/class/rc/rc1/input18/event15/uevent uevent MAJOR=13
/sys/class/rc/rc1/input18/event15/uevent uevent MINOR=79
/sys/class/rc/rc1/input18/event15/uevent uevent DEVNAME=input/event15
Parsing uevent /sys/class/rc/rc1/uevent
/sys/class/rc/rc1/uevent uevent NAME=rc-dvico-mce
/sys/class/rc/rc1/uevent uevent DRV_NAME=dvb_usb_cxusb
input device is /dev/input/event15
/sys/class/rc/rc1/protocols protocol unknown (disabled)
Opening /dev/input/event15
Input Protocol version: 0x00010001
Deleting entry 1
Deleting entry 2
Deleting entry 3
Deleting entry 4
Deleting entry 5
Deleting entry 6
Deleting entry 7
Deleting entry 8
Deleting entry 9
Deleting entry 10
Deleting entry 11
Deleting entry 12
Deleting entry 13
Deleting entry 14
Deleting entry 15
Deleting entry 16
Deleting entry 17
Deleting entry 18
Deleting entry 19
Deleting entry 20
Deleting entry 21
Deleting entry 22
Deleting entry 23
Deleting entry 24
Deleting entry 25
Deleting entry 26
Deleting entry 27
Deleting entry 28
Deleting entry 29
Deleting entry 30
Deleting entry 31
Deleting entry 32
Deleting entry 33
Deleting entry 34
Deleting entry 35
Deleting entry 36
Deleting entry 37
Deleting entry 38
Deleting entry 39
Deleting entry 40
Deleting entry 41
Deleting entry 42
Deleting entry 43
Deleting entry 44
Deleting entry 45
Deleting entry 46
Old keytable cleared

# ir-keyable -v -s rc1 -w dvico-mce-new
Parsing ./dvico_mce_new 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_ENTER:	value=28
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_PLAYPAUSE:	value=164
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
Found device /sys/class/rc/rc0/
Found device /sys/class/rc/rc1/
Found device /sys/class/rc/rc2/
Input sysfs node is /sys/class/rc/rc1/input18/
Event sysfs node is /sys/class/rc/rc1/input18/event15/
Parsing uevent /sys/class/rc/rc1/input18/event15/uevent
/sys/class/rc/rc1/input18/event15/uevent uevent MAJOR=13
/sys/class/rc/rc1/input18/event15/uevent uevent MINOR=79
/sys/class/rc/rc1/input18/event15/uevent uevent DEVNAME=input/event15
Parsing uevent /sys/class/rc/rc1/uevent
/sys/class/rc/rc1/uevent uevent NAME=rc-dvico-mce
/sys/class/rc/rc1/uevent uevent DRV_NAME=dvb_usb_cxusb
input device is /dev/input/event15
/sys/class/rc/rc1/protocols protocol unknown (disabled)
Opening /dev/input/event15
Input Protocol version: 0x00010001
	fe4e=0074
	fe01=00a7
	fe0d=0080
	fe57=0071
	fe4f=00d0
	fe47=00a4
	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=001c
	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
/sys/class/rc/rc1//protocols: Invalid argument
Couldn't change the IR protocols

# ir-keyable -v -s rc1 -r
Found device /sys/class/rc/rc0/
Found device /sys/class/rc/rc1/
Found device /sys/class/rc/rc2/
Input sysfs node is /sys/class/rc/rc1/input18/
Event sysfs node is /sys/class/rc/rc1/input18/event15/
Parsing uevent /sys/class/rc/rc1/input18/event15/uevent
/sys/class/rc/rc1/input18/event15/uevent uevent MAJOR=13
/sys/class/rc/rc1/input18/event15/uevent uevent MINOR=79
/sys/class/rc/rc1/input18/event15/uevent uevent DEVNAME=input/event15
Parsing uevent /sys/class/rc/rc1/uevent
/sys/class/rc/rc1/uevent uevent NAME=rc-dvico-mce
/sys/class/rc/rc1/uevent uevent DRV_NAME=dvb_usb_cxusb
input device is /dev/input/event15
/sys/class/rc/rc1/protocols protocol unknown (disabled)
Opening /dev/input/event15
Input Protocol version: 0x00010001
Enabled protocols: 
scancode 0xfe01 = KEY_RECORD (0xa7)
scancode 0xfe02 = KEY_TV (0x179)
scancode 0xfe03 = KEY_0 (0x0b)
scancode 0xfe05 = KEY_VOLUMEDOWN (0x72)
scancode 0xfe07 = KEY_4 (0x05)
scancode 0xfe09 = KEY_CHANNELDOWN (0x193)
scancode 0xfe0a = KEY_EPG (0x16d)
scancode 0xfe0b = KEY_1 (0x02)
scancode 0xfe0d = KEY_STOP (0x80)
scancode 0xfe0e = KEY_MP3 (0x187)
scancode 0xfe0f = KEY_PREVIOUSSONG (0xa5)
scancode 0xfe11 = KEY_CHANNELUP (0x192)
scancode 0xfe12 = KEY_NEXTSONG (0xa3)
scancode 0xfe13 = KEY_ANGLE (0x173)
scancode 0xfe15 = KEY_VOLUMEUP (0x73)
scancode 0xfe16 = KEY_SETUP (0x8d)
scancode 0xfe17 = KEY_2 (0x03)
scancode 0xfe19 = KEY_OPEN (0x86)
scancode 0xfe1a = KEY_DVD (0x185)
scancode 0xfe1b = KEY_3 (0x04)
scancode 0xfe1e = KEY_FAVORITES (0x16c)
scancode 0xfe1f = KEY_ZOOM (0x174)
scancode 0xfe42 = KEY_ENTER (0x1c)
scancode 0xfe43 = KEY_REWIND (0xa8)
scancode 0xfe46 = KEY_POWER2 (0x164)
scancode 0xfe47 = KEY_PLAYPAUSE (0xa4)
scancode 0xfe48 = KEY_7 (0x08)
scancode 0xfe49 = KEY_BACK (0x9e)
scancode 0xfe4c = KEY_8 (0x09)
scancode 0xfe4d = KEY_MENU (0x8b)
scancode 0xfe4e = KEY_POWER (0x74)
scancode 0xfe4f = KEY_FASTFORWARD (0xd0)
scancode 0xfe50 = KEY_5 (0x06)
scancode 0xfe51 = KEY_UP (0x67)
scancode 0xfe52 = KEY_CAMERA (0xd4)
scancode 0xfe53 = KEY_DOWN (0x6c)
scancode 0xfe54 = KEY_6 (0x07)
scancode 0xfe55 = KEY_TAB (0x0f)
scancode 0xfe57 = KEY_MUTE (0x71)
scancode 0xfe58 = KEY_9 (0x0a)
scancode 0xfe59 = KEY_INFO (0x166)
scancode 0xfe5a = KEY_TUNER (0x182)
scancode 0xfe5b = KEY_LEFT (0x69)
scancode 0xfe5e = KEY_ENTER (0x1c)    ##NB
scancode 0xfe5f = KEY_RIGHT (0x6a)

# cat /sys/class/rc/rc1/protocols
unknown

Mapping KEY_OK to KEY_ENTER worked (ie the behaviour when the
OK key was pressed changed), but others did not. For example
I mapped KEY_BACK (0x9e, decimal 158) to KEY_ESC (001)
and KEY_PLAYPAUSE (0xa4, 164) to KEY_PAUSE (119).
But I did not observe any change in behaviour for these two.
ir-keytable -t did show the correct KEY_foo and descimal code, eg.
# ir-keytable -s rc1 -t
Testing events. Please, press CTRL-C to abort.
1479989250.528206: event type EV_MSC(0x04): scancode = 0xfe47
1479989250.528206: event type EV_KEY(0x01) key_down: KEY_PAUSE(0x0077)
1479989250.528206: event type EV_SYN(0x00).
1479989250.779044: event type EV_KEY(0x01) key_up: KEY_PAUSE(0x0077)
1479989250.779044: event type EV_SYN(0x00).
^C

I notice that KEY_ENTER existed in the original keymap but _PAUSE
and _ESC don't, but I don't understand the significance of that.

Vince

--
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



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux