Difference between revisions of "LIRC Device Examples"

From ArchWiki
Jump to: navigation, search
(alphabetized)
(removed outdated and poorly written section and general cleanup)
Line 11: Line 11:
 
{{bc|$ cat /dev/usb/hiddevX}}
 
{{bc|$ cat /dev/usb/hiddevX}}
  
where X is 0,1 or bigger, and press some buttons on remote.
+
where X is 0,1 or bigger, and press some buttons on remote. If characters result, then the device is working, follow steps:<br>
If you can see reply, device works fine, follow steps:<br>
+
  
 
1. In file {{ic|/etc/conf.d/lircd.conf}} add:<br>
 
1. In file {{ic|/etc/conf.d/lircd.conf}} add:<br>
 
{{bc|1=LIRC_DRIVER="dvico"}}
 
{{bc|1=LIRC_DRIVER="dvico"}}
 
2. Reload LIRC:  
 
2. Reload LIRC:  
{{bc|/etc/rc.d/lircd restart}}
+
# systemctl restart lirc
  
 
===ASRock ION series (Nuvoton) quickstart===
 
===ASRock ION series (Nuvoton) quickstart===
  
 
  $ ln -s /usr/share/lirc/remotes/lirc_wb677/lircd.conf.wb677 /etc/lirc/lircd.conf
 
  $ ln -s /usr/share/lirc/remotes/lirc_wb677/lircd.conf.wb677 /etc/lirc/lircd.conf
  $ /etc/rc.d/lircd restart
+
  # systemctl restart lirc
 
+
=== 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):
+
 
+
  LIRC_DEVICE="/dev/ttySX"
+
  LIRC_DRIVER="pinsys"
+
 
+
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.
+
  
 
=== Serial Port "Home Brew" IR Receiver ===
 
=== 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. In this example, ttyS0 is used.
 
+
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.
+
 
{{hc|/etc/udev/rules.d/z98-serial.rules|
 
{{hc|/etc/udev/rules.d/z98-serial.rules|
 
# For serial port ttyS0 and LIRC
 
# For serial port ttyS0 and LIRC
Line 50: Line 36:
 
{{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.}}
 
{{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.
+
3. Install a custom systemd service file.
 
{{hc|/etc/systemd/system/lirc.service|[Unit]
 
{{hc|/etc/systemd/system/lirc.service|[Unit]
 
Description&#61;Linux Infrared Remote Control
 
Description&#61;Linux Infrared Remote Control
Line 70: Line 56:
 
{{bc|# cp -a /usr/lib/tmpfiles.d/lirc.conf /etc/tmpfiles.d/lirc.conf}}
 
{{bc|# cp -a /usr/lib/tmpfiles.d/lirc.conf /etc/tmpfiles.d/lirc.conf}}
  
5. Create a {{ic|.lircrc}} file in your home directory for your user or a {{ic|/etc/lirc/lircrc}} file for system wide use.
+
5. Create a {{ic|~/.lircrc}} or a {{ic|/etc/lirc/lircrc}} file for system wide use.
  
6. Have your service start at boot and then test with a reboot
+
6. Have the service start at boot and then test with a reboot
 
{{bc|1=# systemctl enable lirc.service
 
{{bc|1=# systemctl enable lirc.service
 
# systemctl reboot}}
 
# systemctl reboot}}
Line 102: Line 88:
 
}}
 
}}
  
{{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!}}
+
{{Note|When the batteries in this remote are low, it may stop working even though the red LED on the received still flashes upon receiving signals!}}
  
 
=== X10 ===
 
=== X10 ===
 
There is a dedicated wiki page with information about [[X10]]
 
There is a dedicated wiki page with information about [[X10]]

Revision as of 12:31, 8 December 2013

Summary help replacing me
The purpose of this article is list out device specific examples of function LIRC configurations.
Related
LIRC - Main LIRC article.

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. Reload LIRC:

# systemctl restart lirc

ASRock ION series (Nuvoton) quickstart

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

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. Have the 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

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:

/etc/systemd/system/my-lirc.service
[Unit]
Description=LIRC Daemon
After=network.target

[Service]
Type=forking
PIDFile=/run/lirc/lircd.pid
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/lircd.pid
ExecStopPost=/bin/rm -f /dev/lircd
ExecStopPost=/bin/rm -fR /run/lirc

[Install]
WantedBy=multi-user.target
Note: When the batteries in this remote are low, it may stop working even though the red LED on the received still flashes upon receiving signals!

X10

There is a dedicated wiki page with information about X10