Merlin remote partly not working

I’m trying to use my merlin-remote (http://cdn.pollin.de/article/big/G711057.JPG) with osmc (raspberry pi 2). Only some buttons are working:

00:46:05 T:1957085184   DEBUG: LIRC: Update - NEW at 3517204:69 0 KEY_LEFT linux-input-layer (KEY_LEFT)
00:46:05 T:1957085184   DEBUG: OnKey: 169 (0xa9) pressed, action is Left
00:46:05 T:1957085184   DEBUG: LIRC: Update - NEW at 3517433:69 0 KEY_LEFT_UP linux-input-layer (KEY_LEFT_UP)
00:46:06 T:1957085184   DEBUG: LIRC: Update - NEW at 3518984:14 0 KEY_T linux-input-layer (KEY_T)
00:46:07 T:1957085184   DEBUG: LIRC: Update - NEW at 3519064:14 0 KEY_T_UP linux-input-layer (KEY_T_UP)

Obviously LIRC recognises both (left and t) but kodi only uses left and not “t” (like all other letters). I tried to change the remote in “my osmc”-settings, without success.

What can I do?

Thanks!

No idea for solving this problem? The problem still exists.

I did a little more debugging using a normal usb-keyboard next to the IR-remote-keyboard with the usb-ir-receiver. Here are the debug-logs from kodi. With the normal usb-keyboard:

00:16:14 22205.302734 T:1958433328   DEBUG: Keyboard: scancode: 0x10, sym: 0x0071, unicode: 0x0071, modifier: 0x0
00:16:14 22205.302734 T:1958433328   DEBUG: OnKey: q (0xf051) pressed, trying keyboard action f171

and a “q” is printed in the kodi input line (virtual keyboard)

00:16:16 22206.718750 T:1958433328   DEBUG: LIRC: Update - NEW at 22188868:10 0 KEY_Q linux-input-layer (KEY_Q)
00:16:16 22206.785156 T:1958433328   DEBUG: LIRC: Update - NEW at 22188935:10 0 KEY_Q_UP linux-input-layer (KEY_Q_UP)

and nothing is printed in the input line in kodi.

How can I configure kodi to print the p with the ir-remote?

Thanks a lot!

Hey guys!

This bug (I think it is!) drives me mad! So please: Could someone of the devs have a look at it? Thanks!

I did further investigation: After killing the lircd and eventlircd process everything works fine:

$ ps aux | grep lirc
root       275  0.0  0.1   1880  1216 ?        Ss   15:44   0:00 /usr/sbin/eventlircd --evmap=/etc/eventlircd.d --socket=/var/run/lirc/lircd --repeat-filter --release=_UP -f
root       333  0.0  0.3   5828  2452 ?        S    15:44   0:00 sudo -u osmc /usr/lib/kodi/kodi.bin --standalone -fs --lircdev /var/run/lirc/lircd
root       334  0.0  0.0   1836   140 ?        Ss   15:44   0:00 /usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput --output=/var/run/lirc/lircd-lirc0 --pidfile=/var/run/lirc/lircd-lirc0.pid /etc/lirc/lircd.conf
osmc       336 33.3  9.6 431788 72260 ?        Sl   15:44   0:25 /usr/lib/kodi/kodi.bin --standalone -fs --lircdev /var/run/lirc/lircd
osmc       476  0.0  0.2   3764  1660 pts/0    S+   15:45   0:00 grep lirc

and:

$ sudo kill 334
$ sudo kill 275
$ ps aux | grep lirc
root       333  0.0  0.3   5828  2452 ?        S    15:44   0:00 sudo -u osmc /usr/lib/kodi/kodi.bin --standalone -fs --lircdev /var/run/lirc/lircd
osmc       336 22.2  9.9 438988 75092 ?        Rl   15:44   1:09 /usr/lib/kodi/kodi.bin --standalone -fs --lircdev /var/run/lirc/lircd
osmc       507  0.0  0.2   3764  1628 pts/0    S+   15:49   0:00 grep lirc

Now I can use my IR remote without any problems:

15:50:41 386.369110 T:1958203952   DEBUG: Keyboard: scancode: 0x10, sym: 0x0071, unicode: 0x0071, modifier: 0x0
15:50:41 386.369385 T:1958203952   DEBUG: OnKey: q (0xf051) pressed, trying keyboard action f171
  1. Could someone explain?
  2. Is this a bug? How to remove it? (I don’t won’t to ssh into osmc after every reboot to kill the two processes… And i didn’t found any startup files in /etc/init.d/).

Thanks!

The problem is its very difficult to solve these remote related problems without having a remote on hand to test with.

It looks like eventlircd is capturing the “keyboard” device and remapping it to look like a remote. This will be the result of a udev rule matching the hardware ID of your device and activating eventlircd for the device.

Most likely it is a rule in this file: /lib/udev/rules.d/98-eventlircd.rules. See below the following section of this file:

#-------------------------------------------------------------------------------
# Ask eventlircd to handle USB HID devices that show up as event devices and are
# known to be remote controls. For simplicity, the event map file names have the
# format <BUSTYPE>_<VENDOR>_<PRODUCT>.evmap.
#-------------------------------------------------------------------------------

One of the rules below that probably matches your device. To find out which you would need to install lsusb:

sudo apt-get install usbutils

Then run

lsusb

Take a note of the vendor ID and device ID of your keyboard device (it might have more than one if it is a multifunction device)

This is the two groups of 4 character hexidecimal numbers with a colon between them, the vendor ID is the first then the device ID. Then see if you can find those in the rules file. If you can, comment out the three lines related to that particular rule then reboot.

Let us know if that helps and we may be able to add the change to a future update.

Hey DBMandrake!

Thanks for the explanation. You are right. eventlircd is capturing the keyboard… And it is an udev rule:

ENV{ID_VENDOR_ID}=="4243", ENV{ID_MODEL_ID}=="ee08", \
ENV{eventlircd_enable}="true", \
ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap"

(no need for lsusb, dmesg shows it all:

[    2.800316] usb 1-1.3: New USB device found, idVendor=4243, idProduct=ee08
[    2.800344] usb 1-1.3: New USB device strings: Mfr=1, Product=5, SerialNumber=0
[    2.800368] usb 1-1.3: Product: IR/ RF Control
[    2.800391] usb 1-1.3: Manufacturer: Linux4Media GmbH
[    2.810187] input: Linux4Media GmbH IR/ RF Control as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:4243:EE08.0003/input/input2
[    2.861666] hid-generic 0003:4243:EE08.0003: input,hidraw2: USB HID v1.11 Keyboard [Linux4Media GmbH IR/ RF Control] on usb-3f980000.usb-1.3/input0
[    2.869162] input: Linux4Media GmbH IR/ RF Control as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.3/1-1.3:1.1/0003:4243:EE08.0004/input/input3
[    2.921207] hid-generic 0003:4243:EE08.0004: input,hidraw3: USB HID v1.11 Mouse [Linux4Media GmbH IR/ RF Control] on usb-3f980000.usb-1.3/input1
[    2.926771] hid-generic 0003:4243:EE08.0005: hiddev0,hidraw4: USB HID v1.11 Device [Linux4Media GmbH IR/ RF Control] on usb-3f980000.usb-1.3/input2

)

After I commented out the line in eventlircd.rules and rebooted the rp2 the remote works completely!

I suggest, that you remove the line in eventlircd.rules. The receiver is not only for the merlin keyboard, but also for “normal” merlin-IR-remotes (http://cdn.pollin.de/article/big/G620185.JPG). I also own this remote and the remote works fine without eventlircd!

Thanks again and have a nice WE!

Before I make this change, can you confirm that the button mappings for the remote have not changed in such a way that some buttons no longer work or perform the wrong functions ? Please test all the buttons both before and after.

Changing a remote from a remote device back to a keyboard device will use different key mappings in Kodi (remote.xml vs keyboard.xml etc) and will probably change the function of some buttons.

Ping @ursus

I have not made this change yet as I have not heard confirmation back from you for the question above.

A better alternative might be to customise /etc/eventlircd.d/03_4243_ee08.evmap to give the desired button mappings.

Sorry for the delay!

I did the testing you suggested. Here are the results.

  1. lines commented out in 98-eventlircd.rules:

For the “keyboard” (http://cdn.pollin.de/article/big/G711057.JPG):

All the keys listed here: http://kodi.wiki/view/Keyboard_controls are working, except for

  • backslash and
  • “END”, “DEL” and “Home” (there are no such keys).

But: The “Record”-key, which isn’t listed in http://kodi.wiki/view/Keyboard_controls, is not working.

For the “remote” (http://cdn.pollin.de/article/big/G620185.JPG):

Also the “Record”-key isn’t working. And there is no key mapped to “Info” and no key mapped to “ContextMenu”.

I solved the issues for both remotes with this keyboard.xml:

<keymap>
  <global>
    <keyboard>
      <record>Record</record>
      <f1>Info</f1>
      <f7 mod="ctrl,shift,alt">ContextMenu</f7>
    </keyboard>
  </global>
</keymap>

Now both remotes are working fully.

  1. without the #-signs in 98-eventlircd.rules:

As described in my first post: Most keys of the keyboard aren’t working (but the “Record”-key is working).

For the remote: There is also no key mapped to the “ContextMenu”, but “Info” is mapped to the “HELP”-key. The “Record”-key is working.

Altogether: If you would made this change the situaton for the normal merlin remote would make two keys without function: “Record” and “Help”. So I don’t suggest this change any more.

Maybe changing /etc/eventlircd.d/03_4243_ee08.evmap is a resolution. I tried to add “KEY_Q = q”. But this didn’t change any behaviour. What should I write to the right side of the equal-sign?