LIRC Device Examples

Related articles

This article includes device specific examples of LIRC function configurations.

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 characters result, then the device is working, follow steps:

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

LIRC_DRIVER="dvico"

2. Restart lirc.service.

ASRock ION series (Nuvoton) quickstart

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

Logitech Wireless Presenter R400

The R400 Presenter can be used with default configuration from devinput. Follow the following steps to be able to use the following buttons: KEY_PAGEDOWN KEY_PAGEUP KEY_DISPLAYTOGGLE KEY_PRESENTATION.

1. Copy the default devinput configuration which should work out of the box for the R400:

# cp /usr/share/lirc/devinput/lircd.conf.devinput /etc/lirc/lircd.conf

2. Create the following Udev rule to create the correct symlink whenever you connect your presenter:

/etc/udev/rules.d/99-logitech-r400-lirc.rules
[Service]
ExecStart=
ExecStart=/usr/bin/lircd --driver=devinput --device=/dev/input/ir

3. Create the lirc service configuration file to start the lirc service with the correct settings for your presenter whenever you want to transform it into a remote control:

/etc/systemd/system/lirc.service.d/logitech-r400.conf
[Service]
ExecStart=
ExecStart=/usr/bin/lircd --driver=devinput --device=/dev/input/ir

3. Start lirc and use irw to test whether your keys are recognised:

$ irw
000000008001006d 00 KEY_PAGEDOWN devinput
0000000080010068 00 KEY_PAGEUP devinput
00000000800101af 00 KEY_DISPLAYTOGGLE devinput
00000000800101a9 00 KEY_PRESENTATION devinput

4. Create your program-specific configurations as described here.

Serial Port "Home Brew" IR Receiver

1. Create a udev rule to give non-privleged users read/write access to the serial port. In this example, ttyS0 is used.

/etc/udev/rules.d/z98-serial.rules
# For serial port ttyS0 and LIRC
KERNEL=="ttyS0",SUBSYSTEM=="tty",DRIVERS=="serial",MODE="0666"

2. Create the needed modprobe configs

/etc/modules-load.d/lirc_serial.conf
lirc_serial
/etc/modprobe.d/lirc_serial.conf
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 a custom systemd service file.

/etc/systemd/system/lirc.service
[Unit]
Description=Linux Infrared Remote Control
After=network.target

[Service]
Type=simple
PIDFile=/run/lirc/lircd.pid
ExecStartPre=/bin/rm -f /dev/lirc /dev/lircd /var/run/lirc/lircd
ExecStart=/usr/sbin/lircd -n -r -P /run/lirc/lircd.pid -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

[Install]
WantedBy=multi-user.target

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 or a /etc/lirc/lircrc file for system wide use.

6. Enable lirc.service and reboot or load the lirc_serial kernel module and start lirc.service.

MCEUSB

Configuration file can be found here.


Streamzap USB Remote

Configuration files for LIRC as well as mplayer, mythtv and kodi are available for this remote at graysky's github repo.

X10

There is a dedicated wiki page with information about X10