Configuring Linux to work with the Actisys IR210L motherboard IR module:
You may have noticed that your motherboard has an 'IR header'. Most motherboards manufactured in the last several years come with one.
However, it's about impossible to find the actual IR transceiver that plugs into this header - I've never seen a motherboard that ships with one.
Here's the best supplier: Actisys. They will sell you the IR210L IR module for $42.
Here's how to set it up under Linux:
This module should work on any motherboard which has an IR header.
Module is SIR only, max speed of 115Kbps.
Actisys sold an FIR module (IR-2000L) at one time, but it has been withdrawn because of motherboard ir implementation problems.
I tested with the Abit BE6-II motherboard. One annoyance is that this motherboard apparently doesn't have a separate UART for the IR module, so you lose the second serial port on the system when IR is enabled (IR module becomes ttyS1).
After enabling ir in the bios, you just need to install irdautils package (IR drivers are built in to 2.2.x linux kernels). Then edit /etc/sysconfig/irda and point DEVICE at your ir device. On the abit motherboard, this is '/dev/ttyS1' (same as the second serial port). You can find the irdautils at the Linux-IrDA homepage.
Although the actisys docs says the device only works at half duplex, I left the bios at full duplex and it still worked.
You may need to add a few /dev entries, at a minumum ircomm0:
mknod ircomm0 c 161 0 mknod ircomm1 c 161 1 mknod irlpt0 c 161 16 mknod irlpt1 c 161 17
Add necessary /etc/modules.conf entries:
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty
Enable driver with /etc/irda/drivers start. You should then see a new device irda0 under ifconfig.
I then ran irdadump and attempted to beam a file from a palm III to the PC. irdadump showed incoming data from the palm.
There is some sort of user-space OBEX utility to allow beaming of files from palms, however I wasn't able to get that to work.
I installed an IR update on the palm, and then was able to hot-sync over the IR link instead of via the cradle. One annoyance is that max speed is fixed at 57.6K when the IR link can do 115.2K. Apparently this can be hacked.
Connecting systems via IrLAN
A convenient way to connect two systems with IR devices is IrLAN. This mechanism gives you network devices which act like ethernet devices.
Just about everything you need to make this work is contained in the irda-utils package. Basically you just need to get the irlan kernel module installed and configure the new 'irlan0' network device on each system. You can then treay irlan0 just like eth0 (ftp files across, ssh, etc.).
Add an /etc/modules.conf alias for the irlan0 device:
alias irlan0 irlan
You may also have to add a module .conf option if you are connecting linux machines directly together:
options irlan access=2
Then, just bring up the irlan0 device and give it an address and route:
ifconfig irlan0 up address 192.168.30.1 mask 255.255.255.0 route add -net 192.168.30.0 netmask 255.255.255.0 dev irlan0
(If you are connecting two linux systems, make the address 192.168.30.2 on the other).
I just tried IrLAN under a 2.4.0 kernel, and ifconfig'ing the irlan0 device causes a system reboot. I've posted a message on the linux-ir mailing list about that.
That's about it. Note that it helps to have the ir modules pointed at each other before you begin.