Arch Linux

Please read this before reporting a bug:

Do NOT report bugs when a package is just outdated, or it is in Unsupported. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!

FS#23673 - [lirc-utils] lircd init script should set remote protocol to "lirc"

Attached to Project: Arch Linux
Opened by Aaron Barany (akb825) - Sunday, 10 April 2011, 04:13 GMT
Last edited by Ray Rashif (schivmeister) - Tuesday, 26 March 2013, 22:32 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Eric Belanger (Snowman)
Ionut Biru (wonder)
Ray Rashif (schivmeister)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No


With a recent update to lirc, the legacy kernel modules (such as lirc_mceusb) have been removed, so the modules that come with the kernel are loaded instead. Unlike the legacy modules, the standard kernel modules treat remotes as keyboards by default, so utilities such as lircd don't recognize remote input. In order to get lirc to recognize the remote input, the remote protocol must be changed by executing the following command:
echo lirc > /sys/class/rc/rc0/protocols

I emailed the developer of lirc to try to get this in lircd itself, but he told me that it should be done by the package maintainers of each distribution. That being the case, the above command should be executed when /etc/rc.conf/lircd is started.

Additional info:
lirc 1:0.9.0-1
lirc-utils 1:0.9.0-1

Steps to reproduce:
1. Attempt to press any remote button. Notice how no lirc application (including irw) accept remote input. However, directional buttons on the remote is treated like arrow keys.
2. As root, execute the command:
echo lirc > /sys/class/rc/rc0/protocols
3. Press a remote button, and notice how the buttons are now recognized.
This task depends upon

Closed by  Ray Rashif (schivmeister)
Tuesday, 26 March 2013, 22:32 GMT
Reason for closing:  Won't fix
Additional comments about closing:  Please open a new bug report if this affects you on a systemd-based system.
Comment by Aaron Barany (akb825) - Friday, 15 April 2011, 02:56 GMT
It looks like there are multiple directories under /sys/class/rc for common configurations like having a TV tuner card. I think it would be best to execute the echo command for all files with the pattern /sys/class/rc/rc*/protocols.
Comment by Heiko Baums (cyberpatrol) - Friday, 22 April 2011, 07:51 GMT
Are you sure that a missing lirc in /sys/class/rc/rc0/protocols is the reason? Because my remote control doesn't work anymore, too, but I already have lirc in this file. Or is this bug already fixed and am I having a different issue?
Comment by Aaron Barany (akb825) - Friday, 22 April 2011, 08:05 GMT
First look through this thread ( to see if any suggestions solve your problem. If not, then please post what you tried and any additional information in that thread.
Comment by Heiko Baums (cyberpatrol) - Friday, 22 April 2011, 10:52 GMT
@Aaron: Thanks for the link, I'll continue posting there.
Comment by Heiko Baums (cyberpatrol) - Friday, 22 April 2011, 16:38 GMT
Removed my ranting. But there must be a bug somewhere in lirc or a missing documentation about some important changes again. If this doesn't have anything to do with this issue I'll open a new bug report.
Comment by Heiko Baums (cyberpatrol) - Wednesday, 27 April 2011, 10:15 GMT
Due to my problems and due to several e-mails on the lirc mailing list it doesn't seem to be such a good idea to activate lirc as the default protocol by the init script. It seems to be better to activate all available protocols, because lirc is only meant for using /dev/lirc0 which is not usable by every remote control. In my case if using the protocol lirc and the device /dev/lirc0 my keyboard doesn't work anymore. As far as I understand the protocol lirc is meant for handling the remote control as a keyboard or as raw IR which is currently known as fragile.

I guess the best way would be to add a variable LIRC_PROTOCOL or LIRC_PROTOCOLS to /etc/conf.d/lircd in which the user can set the protocol he needs. If this variable is set then only this or these protocols should be activated by the initscript otherwise all for this device available protocols should be activated at once.

Activating one single protocol can be done by
echo "protocol" > /sys/class/rc/rc0/protocols

Activating all protocols at once can be done by
echo "+protocol1 +protocol2 +protocol3 ..." > /sys/class/rc/rc0/protocols
Comment by Alexander F. Rødseth (xyproto) - Sunday, 11 November 2012, 21:21 GMT
This package is currently an orphan. Assigning to the maintainers of packages that depends on this one.
Comment by Ray Rashif (schivmeister) - Wednesday, 20 February 2013, 20:35 GMT
Seems like this has been forgotten; "init script" is largely an obsolete phrase now, so what do we do with this one? Any of you familiar with lirc, please check whether there is a simple way to set this remote protocol at startup (if there's a systemd unit). Otherwise, we state a valid workaround and close.
Comment by Eric Belanger (Snowman) - Friday, 22 March 2013, 18:11 GMT
I don't use lirc but here's what I think.
Given that this bug refers to the initscript daemon and is 2 years old, I would tend to think that we should close this bug as "won't fix" (or remove the initscript stuff, at least in svn trunk). If there is an issue with the service files, someone will open a new bug report with current information.