The 'pro' of this remote however is that it's a 'standard' MCE RC6 remote so the buttons can be translated and mapped with lirc. I couldn't do this with my old remote as it emulates a keyboard device.
For a relatively popular remote, surprisingly little information can be found on the web on how to set it up properly with lirc and XBMC, just the usual array of forum posts and incomplete or non-working advice. So some reading was required of the lirc & XBMC's Lircmap.xml documentation.
So here's the solution, if you discount creating the map files (as I've supplied them here) it's actually very simple. I've tested this on Debian (Testing) & Fedora 18 so I assume this would work just as well on derivatives such as Ubuntu/Mint and CentOS/RHEL respectively.
So first, install lirc...Either use your preferred software installer GUI or save time by opening a terminal & using the command line;
On Debian & Ubuntu
sudo apt-get install lirc
sudo yum install lirc
Configure lircThe lirc daemon is configured with the file /etc/lirc/lircd.conf.
In the terminal, you can open this file for editing in gedit (or your preferred text editor);
Append the following text your lircd.conf.
sudo gedit /etc/lirc/lircd.conf
begin remote name rc118 bits 13 flags RC6|CONST_LENGTH eps 30 aeps 100 header 2700 855 one 486 419 zero 486 419 pre_data_bits 24 pre_data 0x1BFF83 gap 107341 min_repeat 1 toggle_bit_mask 0x8000 rc6_mask 0x100000000 begin codes Power 0x1BF3 Record 0x1BE8 Stop 0x1BE6 Pause 0x1BE7 Rewind 0x1BEA Forward 0x1BEB Previous 0x1BE4 Play 0x1BE9 Next 0x1BE5 Zoomout 0x1BD9 Zoomin 0x1BDA Eject 0x1BB7 Select 0x1BDB Menu 0x1BF2 Back 0x1BDC Info 0x1BF0 Up 0x1BE1 Down 0x1BE0 Left 0x1BDF Right 0x1BDE OK 0x1BDD Vol+ 0x1BEF Vol- 0x1BEE Chan+ 0x1BED Chan- 0x1BEC Mute 0x1BF1 PICTURES 0x1BB6 VIDEOS 0x1BB5 MUSIC 0x1BB8 1 0x1BFE 2 0x1BFD 3 0x1BFC 4 0x1BFB 5 0x1BFA 6 0x1BF9 7 0x1BF8 8 0x1BF7 9 0x1BF6 0 0x1BFF Star 0x1BE2 Hash 0x1BE3 Clear 0x1BF5 Keyboard 0x1BA5 Edit 0x1BF4 Red 0x1BA4 Green 0x1BA3 Yellow 0x1BA2 Blue 0x1BA1 end codes end remote
On Debian...The Debian package of lirc comes with a /etc/lirc/hardware.conf file, the Fedora install does not and just works without one. On Debian I had to also amend the hardware.conf file by amending the DRIVER & DEVICE variables to...
This is likely to be the same for most installations but if in doubt of what your device is, look in /dev;
ls -l /dev/lirc*
sudo service lirc restart
Configure XBMCXBMC already comes with a set of key maps for remote controls via lirc in the file /usr/share/xbmc/system/Lircmap.xml. You can also have a user specific Lircmap.xml in your ~/.xbmc/userdata directory.
Here we'll put our mappings for our 'rc118' lirc remote (this name being defined in our /etc/lirc/lircd.conf file) to our user Lircmap.xml file.
In a terminal, open a new file in gedit (or your preferred text editor);
Paste the following text into your new file;
Save your new file.
<lircmap> <remote device="rc118"> <mypictures>PICTURES</mypictures> <liveradio>RADIO</liveradio> <myvideo>VIDEOS</myvideo> <mymusic>MUSIC</mymusic> <record>Record</record> <pause>Pause</pause> <stop>Stop</stop> <skipminus>Previous</skipminus> <play>Play</play> <skipplus>Next</skipplus> <reverse>Rewind</reverse> <forward>Forward</forward> <start>Menu</start> <back>Back</back> <info>Info</info> <volumeplus>Vol+</volumeplus> <volumeminus>Vol-</volumeminus> <left>Left</left> <right>Right</right> <up>Up</up> <down>Down</down> <select>OK</select> <channelplus>Chan+</channelplus> <channelminus>Chan-</channelminus> <mute>Mute</mute> <recordedtv>Eject</recordedtv> <guide>Zoomout</guide> <livetv>Zoomin</livetv> <menu>Select</menu> <one>1</one> <two>2</two> <three>3</three> <four>4</four> <five>5</five> <six>6</six> <seven>7</seven> <eight>8</eight> <nine>9</nine> <star>Star</star> <zero>0</zero> <hash>Hash</hash> <clear>Clear</clear> <teletext>Keyboard</teletext> <enter>Edit</enter> <red>Red</red> <green>Green</green> <yellow>Yellow</yellow> <blue>Blue</blue> </remote> </lircmap>
Disable the remote's kernel driverNow the RC118 remote is handled by lirc you have no need for the Linux kernel to handle it. To prevent XBMC from receiving input from both lirc and xinput (resulting in double key presses for those buttons that did work out of the box) you need to disable the relevant kernel module.
Unload the RC6 decoder driver with the following command;
To disable this driver so it's not loaded when the system is booted, blacklist it as follows;
sudo modprobe -r ir_rc6_decoder
echo "blacklist ir_rc6_decoder" | sudo tee -a /etc/modprobe.d/ir_rc6_decoder.conf
Now start or restart XBMC and your AIM RC118 remote works completely.