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

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki - Main LIRC article. Template:Article summary end

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