I was able to get LIRC working with the nuvoton-cir kernel module. I'm not sure at what point the module was added to the Ubuntu kernel, but I know for sure that it is in 2.6.38-5-generic (the default kernel in the latest Natty build).
Something to note, at some point in all this I started having to use 'sudo irw' rather than just 'irw'.
To confirm the module is in your kernel build, run 'lsmod | grep nuvoton' and you should see something like:
Code:
nuvoton_cir 17643 0
rc_core 25760 10 mceusb,ir_lirc_codec,ir_sony_decoder,ir_jvc_decoder,ir_rc6_decoder,ir_rc5_decoder,rc_rc6_mce,ir_nec_decoder,nuvoton_cir
Just make sure 'nuvoton_cir' is there.
To make LIRC work with the in-kernel module, I had to install LIRC 0.9.0-pre1. I compiled it from Git and, to avoid having to deal with configuration and initscripts, I installed it right over the top of the apt package. The commands to do this are (you may have to install dependencies for this to work):
Code:
git clone git://lirc.git.sourceforge.net/gitroot/lirc/lirc
cd lirc
./autogen.sh
./configure --with-driver=userspace --prefix=/usr
make
sudo make install
Then I ran 'sudo dpkg-reconfigure lirc' and selected 'Windows Media Center Transceivers/Remotes (all)' under 'Remote control configuration' and 'None' under 'IR transmitter'.
At this point I was getting the appropriate response in 'sudo irw', but I got no response from XBMC. Everything appeared to be in order, so I just rebooted and the remote started working properly.
Something to note, before I installed the new version of LIRC, immediately upon booting from the new kernel, the arrow keys were working. Apparently the in-kernel decoding passes the arrow key presses (and some others) to XBMC. Once you get LIRC working with the in-kernel module, you will have double key presses for some keys. In
this thread on the LIRC mailing list, a guy posts a link to
here with a new initscript that disables the in-kernel decoding. Replace /etc/init.d/lirc with this new initscript. Then give it execute permissions with 'sudo chmod +x /etc/init.d/lirc'. Note that I had to download the file to my laptop then scp it my ASRock, because I couldn't get it download via wget.
Also, before I installed the new version of LIRC, I uninstalled all the ASRock IR driver packages, as they are no longer needed.
Hopefully I didn't miss anything.