I have complained the lame Palm Sync socket for quite a long time, eventually, I decide to try HotSync my Palm via IrDA on my Dell Latitude D600, which is equipped with SMSC IrDA Controller.
The very first thing is to enable IrDA in the BIOS setting, since D600 has a COM1 serial port, IrDA is then assigned to COM2, aka /dev/ttyS1 in Linux.
Boot to the overweighted Windows XP, and check the IRQ/DMA/SIR/FIR in Device Manager.
The findchip in irda-utils package is supposed to probe the system, unfortunately, it does not work in D600.
Build the Kernel
Just follow this HOWTO to build IrDA modules.
--- IrDA (infrared) subsystem support --- IrDA protocol IrLAN protocol IrNET protocol IrCOMM protocol [*] Ultra (connectionless) protocol --- IrDA options [*] Cache last LSAP [*] Fast RRs (low latency) --- SIR device drivers IrTTY (uses Linux serial driver) IrPORT (IrDA serial driver) --- FIR device drivers SMSC IrCC (EXPERIMENTAL)
SIR stands for Standard IR, which uses generic serial protocol to talk with IrDA; FIR needs specific driver to achieve Fast IR. Although IrLAN and IrNET are rarely used, it does not hurt to build them as modules.
Since /dev/ttyS1 is also driven by serial, we need explicitly to tell the kernel this device is controlled by irda:
sudo setserial /dev/ttyS1 uart none
Then configure the module options in a Gentoo way, put the information collected from Windows into /etc/modules.d/irda:
options smsc-ircc2 ircc_irq=3 ircc_dma=3 ircc_sir=0x2f8 ircc_fir=0x280 alias irda0 smsc-ircc2
sudo modprobe smsc-ircc2 sudo modprobe irda sudo modprobe rcomm sudo modprobe ircomm_tty sudo /usr/sbin/irattach irda0 -s
Open another console and run
If everything is OK, some packets are dumped when the Palm is close to the laptop’s IR port.
Sync the Palm
I am using korganizer/kontact/kpilot suite. Configure the Pilot device as /dev/ircomm0; Uncheck Do not sync when screensaver is active
Glue all pieces together
 Are we still using the high-speed FIR if the kopete is configured to access /dev/ircomm0? Since FIR maps IR port to the network interface, irda0, I have tried to configure the Pilot devcie to net:irda0 or net:any according to this undocumented hack, but it does not work and kpilot hangs sometimes.
I still prefer the USB sync when downloading huge files for the sake of speed. Any idea to make dbus/ivman to link /dev/pilotto /dev/ircomm0or /dev/ttyUSB0 automatically?