Lirc on the Sharp Zaurus
Update 24/06/03: I've just switched over to using OpenZaurus, so I won't be able to verify myself if later versions work on the Sharp ROM. However, it does mean that as soon as I get the time I'll be able to sort out the mess I made when building lirc, and provide a clean patch with config files and scripts back to the openzaurus repositories, and further up to lirc.org if they want it. I'll post here as soon as I've had the chance to do this.
LIRC on Zaurus
I have repackaged the LIRC (Linux Infra-Red Control) project to suit a Sharp Zaurus SL-5500 using the Sharp-supplied ROM (UPDATE: Jared has just informed me that it works on OZ 3.1 as well - Thanks Jared). I cannot vouch for it working on other models.
The binary packages elsewhere on the web (as at 01/01/2003) would not work on my unit. Since it took a lot of effort to set up the cross-compile environment, and then to make it work at all, I decided to put the package up here so that others need not experience the pain...
You can download the latest ipkg here.
Problems I had with lirc on the Zaurus were:
- Binary module loaded with errors about missing symbols for irq
- Other Binary packages were built for the IPAQ, so had mismatched module symbols and settings
- Binary package did not include mode2, or set up the device file
- I had vnc installed on the Zaurus, which uses device-major-61 for simulated keyboard input (kbdsim.o).
This conflicts with LIRC, and causes the lirc_sir module to refuse to load, giving a "Device is busy" error, and a message in the syslog "init_chrdev() failed".
- My /dev/lirc device would disappear after each reboot (probably due to my ignorance of how to set it up)
Consequently, this package:
- Was built from the 0.6.6 release of LIRC
- Was configured to use device-major-62 for the /dev/lirc device file
- Includes the mode2 utility and other non-X tools from lirc (consequently, this ipkg is rather large at 350kB).
- Removes and re-creates /dev/lirc as a major-62 node at installation
- Adds the /etc/rc.d/init.d/lirc init script to each of the runlevels
- Starts lircd after installation
- Re-creates the device file at startup if it's missing, and loads the module.
- Works for me :-)
Once you have this package installed, you will need to place a config file containing remote
controller definitions into /etc/lircd.conf, and then probably go and get Opie-remote, which you can find
over at http://www.rit.edu/~tfs1812/. This is also where you'll find
the other lirc package, which i suspect may have been built for a Zaurus running Opie/OpenZaurus, not the Sharp ROM.
I hope this helps out anyone who has had anywhere near as much trouble getting lirc on zaurus as I did! Any comments are welcome, and can be sent to zaurus at purple dot dropbear dot id dot au.
- 04/01/2003: Fixed init script so that it looks for lircd in /usr/sbin, not /usr/bin (thanks Craig for pointing that out). Released lirc_0.6.6-zaurus1_arm.ipk
- 01/01/2003: Released lirc_0.6.6-zaurus_arm.ipk