Raspberry Pi - LIRC GPIO driver OpenELEC HOWTO

Install OpenELEC:

You can find the official guide here.

Recompile kernel or download it:

Download pre-patched kernel:

Download the kernel from here (we have builds thanks to roadkill). When finished, unpack and install openelec as usual.

Configure LIRC:

Start your RPi and connect to it via SSH. (Default credentials are: root / openelec)

Check if the driver works correctly:

Check dmesg output:
root ~ # dmesg | grep lirc_rpi
[    1.089250] lirc_rpi lirc_rpi.0: lirc_dev: driver lirc_rpi registered at minor = 0
[    1.089276] lirc_rpi: driver registered!
[    2.046551] lirc_rpi: auto-detected active low receiver on GPIO pin 18
Start mode2 and push some buttons on your remote you should see something like this on your console:
root ~ # mode2 -d /dev/lirc0
space 4960669
pulse 2697
space 880
pulse 477
space 816
pulse 499
space 379
pulse 472
space 439

Start lirc correctly at startup:

We need to start lirc with the proper output socket path so the command below adds this to your autostart script. (I don't know how is this set properly? I tried hardware.conf with no luck ... If anybody knows this can you send it to me? Till then, this crap works...)
echo "killall lircd; /usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput --output=/var/run/lirc/lircd --pidfile=/var/run/lirc/lircd-lirc0.pid /storage/.config/lircd.conf" >> /storage/.config/autostart.sh

Record your buttons:

To record you remote codes we need to start a program called irrecord. (Check lirc manual)
killall lircd
irrecord -d /dev/lirc0 /storage/.config/lircd.conf

Reboot and verify:

Reconnect via SSH and launch irw to verify that our button presses are recognised by lircd.

Create Lircmap.xml:

To map the lirc events to real actions in XBMC you need to place a Lircmap.xml file in you userdata folder. Detailed guide here. If you are familiar with sshfs, use it ;).
Reboot or restart XBMC when done.
Should look something like this:
    <remote device="/storage/.config/lircd.conf">

Modified: 2012-06-10