LIRC Device Examples

From ArchWiki
Revision as of 12:21, 8 December 2013 by Graysky (Talk | contribs) (fixed streamzap)

Jump to: navigation, search


There is a dedicated wiki page with information about X10

Asus DH Deluxe series motherboard

Check the output of:

$ cat /dev/usb/hiddevX

where X is 0,1 or bigger, and press some buttons on remote. If you can see reply, device works fine, follow steps:

1. In file /etc/conf.d/lircd.conf add:


2. Reload LIRC:

/etc/rc.d/lircd restart

ASRock ION series (Nuvoton) quickstart

$ ln -s /usr/share/lirc/remotes/lirc_wb677/lircd.conf.wb677 /etc/lirc/lircd.conf
$ /etc/rc.d/lircd restart

Streamzap PC Remote (USB)

This particular remote is known to not function with the lirc-utils package included lirc.service. Flyspray #37958 has been created. Until it is acted upon, users can create a custom service file that does work:

Description=LIRC Daemon

ExecStartPre=/bin/mkdir -p /run/lirc
ExecStartPre=/bin/rm -f /dev/lircd
ExecStartPre=/bin/rm -f /run/lirc/lircd
ExecStartPre=/bin/ln -s /run/lirc/lircd /dev/lircd
ExecStart=/usr/bin/lircd -d /dev/lirc0 -P /run/lirc/
ExecStopPost=/bin/rm -f /dev/lircd
ExecStopPost=/bin/rm -fR /run/lirc

Note: When the batteries in this remote are low, it may stop working even though the red LED on the received still flashes when you hit buttons!

Serial Port "Home Brew" IR Receiver

Here's how to get a "Home Brew" serial port IR receiver working:

1. Create a udev rule to give non-privleged users read/write access to the serial port. I will be using ttyS0 in my example.

# For serial port ttyS0 and LIRC

2. Create the needed modprobe configs

install lirc_serial /usr/bin/setserial /dev/ttyS0 uart none && /sbin/modprobe --first-time --ignore-install lirc_serial
options lirc_serial type=0
remove lirc_serial /sbin/modprobe -r --first-time --ignore-remove lirc_serial && /sbin/modprobe -r lirc_dev
Note: Using udev rules to run the setserial command does not work in my experience because lirc_serial gets loaded before the serial port rules are applied.

3. Install your systemd service file.

Description=Linux Infrared Remote Control

ExecStartPre=/bin/rm -f /dev/lirc /dev/lircd /var/run/lirc/lircd
ExecStart=/usr/sbin/lircd -n -r -P /run/lirc/ -d /dev/lirc0 -o /run/lirc/lircd
ExecStartPost=/usr/bin/ln -sf /run/lirc/lircd /dev/lircd
ExecStartPost=/usr/bin/ln -sf /dev/lirc0 /dev/lirc
ExecReload=/bin/kill -SIGHUP $MAINPID


4. We still need the default tmpfiles to be created, so copy that config file to /etc/tmpfiles.d/lirc.conf.

# cp -a /usr/lib/tmpfiles.d/lirc.conf /etc/tmpfiles.d/lirc.conf

5. Create a .lircrc file in your home directory for your user or a /etc/lirc/lircrc file for system wide use.

6. Have your service start at boot and then test with a reboot

# systemctl enable lirc.service
# systemctl reboot

or load the module and start the lirc.service.

# modprobe lirc_serial
# systemctl start lirc.service

Receivers that do not depend on a kernel module

Usually, you only need to specify your the device where the receiver is plugged in and the lirc driver. This is an example for pinnacle or miro serial receivers):


Then, start lircd daemon and create the remote/s configuration (/etc/lirc/lircd.conf), either by copying one of the configured defaults that comes with lirc-utils or by using irrecord. Even if you find your remote in the list of preconfigured remotes it might not work so you will have to use irrecord anyway.

After this you can use irw to check the remote, create your ~/.lircrc to assign remote buttons to actions and start irexec if you need to run arbitrary commands.