[HowTo] Utilize RC6 and RC6-Clone remotes with OSMC

[[ This has been tested with OSMC Version_ID 2015.12-3, on a Raspberry Pi 2B. While the modifications and steps here should work with other versions and models, I cannot make any guarantee on that, but most everything here is a standard Linux action, so I can’t see why not. ]]

Hello,

If you’ve used an RC6 (or clone) remote with OSMC, you’ve probably noticed a few issues, which this guide was meant to address. The RC6 remote works with very limited functionality out-of-box with the OSMC Remote (default osmc-remote-lircd profile) setting in the Remotes page, but has nearly full functionality with the RC6 Remote (rc6-mce-lircd profile) setting as well as the LIRCd Full (lircd-full profile) setting.
However, when on either of those two profiles, the RC6 remote has a strange double-press behavior, where if you press the remote button very quickly you get one step, press it firmly you get two steps, which can be very annoying when changing channels or navigating.
This guide is meant to address a good profile setting to use and eliminating the double-press. Unfortunately I have not found a way to change any repeat time - so holding a button down after this takes about 1 to 1.5 seconds to get it to start repeating - in the event of scrolling through a large list. Luckily, the channel up and down buttons seem to function as page up and down in the lists, so that makes things easier.

In my experience, the problem was that both LIRCd and the IR_RC6_DECODER module in kernel were interpreting the rc6 commands, and both were executing functions based upon those commands - thus the double-press behavior. This guide has us disabling IR_RC6_DECODER.

I’m not sure as to the privilege level required for most of these commands, so all of the commands I used were with sudo - forgive me if that’s not necessary.

First, using the keyboard or remote, go to the Remotes page in My OSMC and choose the rc6-mce-lircd profile. Confirm when it asks that you wish to keep those settings (the double-presses should not severely limit your ability to confirm the changes).
Then, SSH to the device, and type the following command:

sudo rmmod ir_rc6_decoder

Now, on the OSMC, try the remote again, using the up and down arrows to scroll through the remote list. Try firm presses and quick presses to verify that the buttons work and no more double-presses occur. If double-presses are still occurring, make sure the module was disabled, in SSH type:

lsmod

and make sure ir_rc6_decoder is not present. If it is, repeat the command above, if not, something else may be causing the problem.

Next, in the SSH window, type the following command:

sudo nano /etc/modprobe.d/blacklist-rc6.conf

This should open a nano text editor window. Enter the following two lines:

blacklist ir_rc6_decoder
install ir_rc6_decoder /bin/true

You can end it with a new line (enter key) or not, but save with Control+X, and typing “y” when prompted to save.

Now, in OSMC, go out of the remote menu, go to power menu, and restart. Or, in SSH, type in:

sudo reboot

Either way, the system should come back up momentarily. Verify the double-pressing is gone, and enjoy your new remote. I’ve noticed about 90% of the buttons work and any that don’t you can try to use a guide with LIRCd and OSMC to set up new functionality.

Good luck!

Hi

@DBMandrake brought this issue to my attention a couple of days ago, and I believe this commit will prevent the RC6 decoder from being loaded by default:

Would you like to test a new kernel to see if this issue is resolved?

  • Edit /etc/apt/sources.list, and change deb http://apt.osmc.tv jessie main to deb http://apt.osmc.tv jessie-devel main
  • Run sudo apt-get update
  • Run sudo apt-get install rbp2-kernel-osmc

Reboot, and edit /etc/apt/sources.list back to the original repository. I’d be interested in your findings.

Sam

I’ll test this out in the next day or two and see if not blacklisting the module changes after that commit, if so it’d be a welcome addition!

After I applied those updates and re-edited the sources.list, I commented out my blacklist and install lines in that blacklist file I created, and rebooted again. Remote back to double-pressing, sorry! :frowning:

EDIT:

lsmod shows ir_rc6_decoder and ir_rc6_mce both still.

Hi

That’s mighty odd that you’re still seeing an issue. I spoke to @DBMandrake about this issue today, and he was unable to see the IR decoder in /sys/class/rc/.

  • What does ls /sys/class/rc/show you?
  • Can you verify your’re on Linux 4.4? What does uname -r show?
  • How are you connected? Via a GPIO or a USB receiver? My recent patch only disables loading of RC6 keymap for GPIO IR based receivers.
  • Finally, does this work: ```
    sudo -s
    echo lirc > /sys/class/rc/rc0/protocols


Sam

Oh!

It’s a USB IR Receiver that came with the RC6 clone.

So that’s the problem there. :stuck_out_tongue:

Sys class RC has rc0

and I didn’t do the other command yet because usb ir so I’m assuming it won’t help.

Hi

Try run the command which reconfigures the protocol as LIRC. This ensures the passing of just raw IR and should fix your issue.

I’ll think about a udev rule for this and whether that’s a good idea.

Can you run dmesg and also apt-get update, apt-get install usb-utils and get me the output of lsusb?

Sam

I have usb-utils from before we did the updating, here’s the output:

Bus 001 Device 004: ID 04f3:01a4 Elan Microelectronics Corp. Wireless Keyboard
Bus 001 Device 005: ID 147a:e042 Formosa Industrial Computing, Inc.
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The Formosa device is the wireless IR, the wireless keyboard is an RF plug for a wireless KB/M combo.

dmesg gave me the message log which includes the bootup init of the IR - haven’t done much with the IR since the tests and rebooting
Not sure what output you want from there.

I ran the command and removed the blacklist and rebooted.
Still double-presses.

Ran the command again, tried immediately without reboot.
No more double-press.

I think that the rc0 protocols file is being rewritten on boot.

My suggestion was not meant to be permanent, but rather to be a quick run-time test.

So are you saying it works? And can you also verify you are on 4.4 as requested above.

Sam

Oh certainly, I misunderstood the behavior.

Yes, the solution of echoing the command does work as a run-time test.

And yes, 4.4.0-1-osmc

I added kernel based decode support for your receiver some time ago:

This is why the kernel picks it up. As LIRC does as well, this is why you are getting double presses.

I don’t think we actually need these decoders in the kernel at all. I’ll remove them in the next update.

Edit: I’ll just blacklist them and mark them as conffile.

Sam

Well wouldn’t THAT explain it. :slightly_smiling:

Sounds like my solution too! :slightly_smiling:

My Microsoft MCE remote will work on my Vero 4k but I’m suffering from the double-press behaviour described in this how-to. If I SSH to my device, and execute

sudo rmmod ir_rc6_decoder

I’m told the Module ir_rc6_decoder is not currently loaded. If I check lsmod it is indeed no listed. I saw rc_rc6_mce was so I tried

sudo rmmod rc_rc6_mce

but I’m still left with the double-press behaviour, even after rebooting and trying with ‘Disable RC6’ unchecked in the MyOSMC > Remotes screen.

What else can I try?

What remote profile are you using?
Are you using the internal receiver?

1 Like

You say what, internal receiver?! Oeps, I thought I read there was only internal RF…

So I unplugged the external IR receiver and no more double clicking behaviour, thanks!