3

I've recently started using a media-center running OSMC (debian + kodi) on a Raspberry Pi 3. To control it, I use a remote from a different media center that emulates a keyboard. It works great for the most part, except some of the keys are non-repeating, which means they don't support long-press in kodi, since this is detected by key repetition within 250ms or something on that order.

It makes perfect sense that these keys aren't repeating, we're talking power, mute, play/pause and home, but long-press would be nice on a remote with few buttons.

As a solution, I'm thinking either

  1. Enabling repetition for these keys somehow. It has to be deep enough to effect kodi though.

  2. Remapping the keys to something else that is repeating. Kodi can easily handle remapping internally, so any unused letter or such could work.

I've pursued the second solution so far, and it seems the best solution would be to use udev's hwdb-files. I've hit a bit of a snag there, though, as only two of the keys produce scancodes in showkey and both of these produce two keys (power produces 0x74 0xf4, mute 0x71 0xf1) and I'm not sure how to correctly input this in a hwdb-file. This is my attempt so far, treating the two codes as down/up. Neither this nor KEYBOARD_KEY_74f4 seems to work.

evdev:input:b0003v2252p0120*
 KEYBOARD_KEY_74=y
 KEYBOARD_KEY_71=u

The other keys produce keycodes when checking those, but no scancodes. Another thread mentioned checking dmsg, which had logged:

[ 2804.839920] keyboard: can't emulate rawmode for keycode 164
[ 3319.596577] keyboard: can't emulate rawmode for keycode 172

So the keys work and produce keycodes, but somehow no scancodes?

To wrap up: What is wrong with my hwdb-file? Why can't I find the scancodes of the last two keys? Is what I'm attempting even possible or is there some easier way to accomplish it that I'm missing?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.