IrDA
Contents
ThinkPad IrDA configuration
IrDA can be used to communicate using Infrared to other IrDA compliant devices, such as other Notebooks, PDA's and mobile phones.
All IBM ThinkPads manufactured in the last years have integrated IrDA that can be used in one of two modes, SIR or FIR. Some very old ThinkPads only support SIR mode, or might not have IrDA support at all.
The purpose of this document is to get the IrDA hardware in your ThinkPad operational, setting up communication to other devices is not covered. However, the external links section can prove useful for this.
Serial IR (SIR)
SIR is limited to serial datarates up to 115.2Kb/s
Linux 2.4 kernel config
Edit /etc/modules.conf and add the following lines
alias tty-ldisc-11 irtty alias char-major-161 ircomm-tty
Fast IR (FIR)
FIR is the preferred mode of IrDA operation and operates at a bandwidth of 4 Mbps
Main problem here is that the chips FIR mode needs to be activated. On A, G, R, T and X model ThinkPads, the easiest way to activate FIR mode is by entering BIOS setup during boot-up by pressing F1 when prompted. Then, selecting 'Config' followed by 'Infrared' will allow you to control the IrDA operation. Here you will need to select the option to Enable the infra-red port. Be sure to save the changes, and then Exit.
Note: Changing these BIOS settings do not affect Windows 2000 or XP operating systems, but may cause memory resource issues in older windows versions, or other legacy operating systems.
If changing the BIOS setting is not an option or if the settings cannot be altered, as on some older ThinkPads, the FIR mode can be activated by running Linux OS with one of the following:
- setpnp as part of the old pcmcia-utils source package
- tpctl, but only for some old ThinkPads
If the FIR mode is not activated, attempts to load the nsc-ircc module will result in an error in syslog of "Wrong chip version ff".
Very Fast IR (VFIR)
Some Thinkpads come with an even faster version of IrDA (VFIR) that operates at 16 Mbps. This may cause some incompatibilities with devices that expect to be able to communicate in FIR mode. You can check your speed by doing the following:
cat /proc/sys/net/irda/max_baud_rate
Additionally, you can revert to regular FIR by doing the following:
echo 4000000 > /proc/sys/net/irda/max_baud_rate
Similarly, you can also set IrDA operation at the conventional serial IR port bandwidth (SIR):
echo 115200 > /proc/sys/net/irda/max_baud_rate
Linux 2.4 kernel config
Edit /etc/modules.conf and add the following lines
alias irda0 nsc-ircc options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 pre-install nsc-ircc setserial /dev/ttyS1 uart none port 0 irq 0
Linux 2.6 kernel config
Edit /etc/modprobe.conf and add the following lines
alias irda0 nsc-ircc options nsc-ircc dongle_id=0x09 io=0x2f8 irq=3 install nsc-ircc /bin/setserial /dev/ttyS1 uart none port 0 irq 0; /sbin/modprobe --ignore-install nsc-ircc
If you have a Thinkpad R51-1830WCZ infrared might not work though. You need a pnp version of the nsc-ircc driver. There exists a patch for the standard nsc-ircc driver from Jean Tourrilhes. It enables the device and probes it afterwards. You still have to call setserial and set the dongle_id parameter manually. With this driver it "works for me" (only SIR tested) but the driver needs to be reloaded after a suspend to S3 state.
Get the patch here: link nsc-ircc-pnp.diff it applied cleanly against 2.6.10. An updated version for 2.6.12-rc6 can be found here: nsc-ircc-pnp.2.6.12-rc6.diff.
Some other things you might want to do with IrDA
- add fast PPP support:
modprobe irnet
- if needed, limit further the size of the transmit window
echo 1 > /proc/sys/net/irda/max_tx_window
External links
Linux-IrDA Project (External)
Linux PCMCIA Project (External)
tpctl homepage (External)