Upgrade to 8.0.1 - Remote Key Not Working

  • Hi Folks,

    I am having a bit of a strange issue after upgrading this morning. The remote seems to work except the KEY_OK button. This makes doing anything in kodi a little difficult and have had to resort to a keyboard for now.

    Kodi Log shows no key press when I press this key but does for other keys, this is me pressing right.....

    09:55:45.003 T:139858677500032 DEBUG: OnKey: right (0xf083) pressed, action is Right
    09:55:45.180 T:139858677500032 DEBUG: Keyboard: scancode: 0x72, sym: 0x0113, unicode: 0x0000, modifier: 0x0
    09:55:45.705 T:139858677500032 DEBUG: Previous line repeats 1 times.
    09:55:45.705 T:139858677500032 DEBUG: OnKey: right (0xf083) pressed, action is Right
    09:55:45.996 T:139858677500032 DEBUG: Keyboard: scancode: 0x72, sym: 0x0113, unicode: 0x0000, modifier: 0x0

    if I run irw /run/lirc/lircd-lirc0 I get the following output:

    000000037ff07bdd 00 KEY_OK URC-7980-MCE
    000000037ff07bdd 00 KEY_OK_LIRCUP URC-7980-MCE
    000000037ff07bdd 00 KEY_OK URC-7980-MCE
    000000037ff07bdd 00 KEY_OK_LIRCUP URC-7980-MCE

    /storage/.kodi/userdata/Lircmap.xml
    <lircmap>
    <remote device="devinput">
    <left>KEY_LEFT</left>
    <right>KEY_RIGHT</right>
    <up>KEY_UP</up>
    <down>KEY_DOWN</down>
    <select>KEY_OK</select>
    <enter>KEY_ENTER</enter>
    <clear>KEY_DELETE</clear>
    <rootmenu>KEY_EXIT</rootmenu>
    <back>KEY_BACK</back>
    <start>KEY_MEDIA</start>
    <playlist>KEY_DVD</playlist>
    <record>KEY_RECORD</record>
    <play>KEY_PLAY</play>
    <pause>KEY_PAUSE</pause>
    <stop>KEY_STOP</stop>
    <forward>KEY_FASTFORWARD</forward>
    <reverse>KEY_REWIND</reverse>
    <volumeplus>KEY_VOLUMEUP</volumeplus>
    <volumeminus>KEY_VOLUMEDOWN</volumeminus>
    <pageplus>KEY_CHANNELUP</pageplus>
    <pageminus>KEY_CHANNELDOWN</pageminus>
    <skipplus>KEY_NEXT</skipplus>
    <skipminus>KEY_PREVIOUS</skipminus>
    <title>KEY_TITLE</title>
    <subtitle>KEY_SUBTITLE</subtitle>
    <language>KEY_LANGUAGE</language>
    <mute>KEY_MUTE</mute>
    <power>KEY_POWER</power>
    <mytv>KEY_EPG</mytv>
    <one>KEY_1</one>
    <two>KEY_2</two>
    <three>KEY_3</three>
    <four>KEY_4</four>
    <five>KEY_5</five>
    <six>KEY_6</six>
    <seven>KEY_7</seven>
    <eight>KEY_8</eight>
    <nine>KEY_9</nine>
    <zero>KEY_0</zero>
    <one>KEY_NUMERIC_1</one>
    <two>KEY_NUMERIC_2</two>
    <three>KEY_NUMERIC_3</three>
    <four>KEY_NUMERIC_4</four>
    <five>KEY_NUMERIC_5</five>
    <six>KEY_NUMERIC_6</six>
    <seven>KEY_NUMERIC_7</seven>
    <eight>KEY_NUMERIC_8</eight>
    <nine>KEY_NUMERIC_9</nine>
    <zero>KEY_NUMERIC_0</zero>
    <star>KEY_NUMERIC_STAR</star>
    <hash>KEY_NUMERIC_POUND</hash>
    <red>KEY_RED</red>
    <green>KEY_GREEN</green>
    <yellow>KEY_YELLOW</yellow>
    <blue>KEY_BLUE</blue>
    <display>KEY_AUX</display>
    <menu>KEY_MENU</menu>
    <info>KEY_INFO</info>
    <info>KEY_PROPS</info>
    <recordedtv>KEY_PVR</recordedtv>
    <teletext>KEY_TEXT</teletext>
    <clear>KEY_DELETE</clear>
    </remote>
    </lircmap>

    /storage/.kodi/userdata/keymaps/remote.xml
    <keymap>
    <global>
    <remote>
    <play>PlayPause</play>
    <pause>Pause</pause>
    <stop>Stop</stop>
    <forward>FastForward</forward>
    <reverse>Rewind</reverse>
    <left>Left</left>
    <right>Right</right>
    <up>Up</up>
    <down>Down</down>
    <select>Select</select>
    <enter>FullScreen</enter>
    <playlist>Playlist</playlist>
    <pageplus>PageUp</pageplus>
    <pageminus>PageDown</pageminus>
    <back>Back</back>
    <rootmenu>PreviousMenu</rootmenu>
    <menu>ContextMenu</menu>
    <info>Info</info>
    <skipplus>SkipNext</skipplus>
    <skipminus>SkipPrevious</skipminus>
    <display>FullScreen</display>
    <record>Record</record>
    <eject>EjectTray()</eject>
    <volumeplus>VolumeUp</volumeplus>
    <volumeminus>VolumeDown</volumeminus>
    <mute>Mute</mute>
    <power>ShutDown()</power>
    <mytv>ActivateWindow(TVGuide)</mytv>
    <livetv>ActivateWindow(TVChannels)</livetv>
    <liveradio>ActivateWindow(RadioChannels)</liveradio>
    <epgsearch>ActivateWindow(TVSearch)</epgsearch>
    <red>ActivateWindow(Videos,TvShowTitles,return)</red>
    <green>ActivateWindow(Videos,MoviesTitles,return)</green>
    <yellow>ActivateWindow(MyMusic)</yellow>
    <blue>ActivateWindow(RadioChannels)</blue>
    <zero>Number0</zero>
    <one>Number1</one>
    <two>JumpSMS2</two>
    <three>JumpSMS3</three>
    <four>JumpSMS4</four>
    <five>JumpSMS5</five>
    <six>JumpSMS6</six>
    <seven>JumpSMS7</seven>
    <eight>JumpSMS8</eight>
    <nine>JumpSMS9</nine>
    <print>Screenshot</print>
    </remote>
    </global>
    <Home>
    <remote>
    <info>ActivateWindow(SystemInfo)</info>
    <record>ActivateWindow(TVRecordings)</record>
    </remote>
    </Home>
    </keymap>

    Any ideas?

    Not sure if it make any difference but the machine was converted from OpenElec to LibreElec some time ago and has been kept fully up to date running the latest version of 7 stable until this morning.


  • Interesting. This looks like eventlircd isn't picking up the input events from lircd-uinput and instead kodi is processing them - which can't handle KEY_OK.

    Which system are you using, is this x86?

    Pllease post some logfiles and infos about your system:

    Code
    dmesg | paste
    journalctl -a | paste
    lsof | grep /dev/input | paste
    grep . /sys/class/input/event*/device/name | paste

    Then, we need some infos about the lircd-uinput event device. First find out which of the event devices is the one of lircd-uinput:

    Code
    grep -l lircd-uinput /sys/class/input/event*/device/name


    You should get a single line like this /sys/class/input/event1/device/name

    Then run the following two commands, replace event1 with the eventXX name you got from above, and post the output:

    Code
    udevadm info -a -p /sys/class/input/event1 | paste
    udevadm test -a add /sys/class/input/event1 2>&1 | paste

    so long,

    Hias

  • I think the punchline is that lircd-uinput isn't running anymore.

    I noticed this problem as well after upgrading to 8.0.1 (and now running 8.0.2). The keycodes I defined in Lircmap.xml are not working, while the other ones are.

    dmesg: WLCi

    journalctl -a: WLQW

    lsof | grep /dev/input: SGfP

    grep . /sys/class/input/event*/device/name: WFBH

    You'll see there's no lircd-uinput event device. event9 is my remote.

  • I downgraded to 8.0.0 and the remote is working correctly again but there's no lircd-uinput involved. So it's something else.

    I then dug some more and realised what the special keys were about - they are keys that I remapped using an rc_keymap and the way these are enabled changed in 8.0.1

    I had previous dropped a keymap file in ~/.config/rc_keymaps/ but now it seems I'm supposed to edit ~/.config/rc_maps.cfg to specify that I want to use the map. I made this change and now the remote is working correctly.

    This seems a major change that should have been highlighted. Even the README in ~/.cinfig/rc_keymaps/ still describes the old system.

  • I had previous dropped a keymap file in ~/.config/rc_keymaps/ but now it seems I'm supposed to edit ~/.config/rc_maps.cfg to specify that I want to use the map. I made this change and now the remote is working correctly.

    This seems a major change that should have been highlighted. Even the README in ~/.cinfig/rc_keymaps/ still describes the old system.

    Overriding existing keymaps via files in .config/rc_keymaps still works as before, but what's changed is that LE now loads the libreelec_multi keymap for remote receivers that use the rc-rc6-mce table - instead of the rc6_mce keymap before. See /etc/rc_maps.cfg:

    Code
    # use combined multi-table on MCE receivers
    #*      rc-rc6-mce               rc6_mce
    *       rc-rc6-mce               libreelec_multi

    so long,

    Hias