2.4. Configuration

2.4.1. Device Numbers

mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irlpt0 c 161 16
mknod /dev/irlpt1 c 161 17
mknod /dev/irnet c 10 187
chmod 666 /dev/ir*
There might be some other device number necessary if you want to use the irkbd features. You may find the latest device numbers in ../src/linux/Documentation/devices.txt.

2.4.2. Device Arrangement

First you should put your IrDA devices in range. Though it might be possible that the Linux/IrDA service detects every new device automagically I only have good experience with the devices in range during the configuration process.

Keep your infrared devices together in a range below one meter and an angle of 30 degree. There has to be a direct line of sight between them. If this is not possible, you may use a mirror (an unused M$ CD should work quite good).

2.4.3. /etc/modules.conf

Add the following lines to your /etc/conf.modules file:

# IrDA over a normal serial port, or a serial port compatible IrDA port
alias tty-ldisc-11 irtty
# IrCOMM (for printing, PPP, Minicom etc)
alias char-major-161 ircomm-tty     # if you want IrCOMM support
# IRLAN
alias irlan0 irlan
# To be able to attach some serial dongles
# These values are hard-coded in irattach (not instance order)
alias irda-dongle-0 tekram          # Tekram IrMate IR-210B
alias irda-dongle-1 esi             # ESI JetEye
alias irda-dongle-2 actisys         # Actisys IR-220L
alias irda-dongle-3 actisys         # Actisys IR-220L+
alias irda-dongle-4 girbil          # Greenwich GIrBIL
alias irda-dongle-5 litelink        # Parallax LiteLink
alias irda-dongle-6 airport         # Adaptec Airport 1000 and 2000
# To use the FIR driver. This applies only to the specific device!!!
#options nsc-ircc dongle_id=0x09        # NSC driver on a IBM Thinkpad laptop
#options nsc-ircc dongle_id=0x08        # HP Omnibook 6000
#alias irda0 nsc-ircc
#alias irda0 smc-ircc
# IrNET module...
alias char-major-10-187 irnet       # Official allocation of IrNET
Then do a depmod -a to update, and then all IrDA modules should be automagically loaded when you need them. Note for testing reasons you may load them manually, but please make sure not to load them twice. There might be some other entries necessary, if you want to use the irkbd features or an USB dongle. A template file is included into the irda-utils package.

2.4.4. /etc/irda

Have a look into the files in /etc/irda. Edit them to reflect your setup.

2.4.5. BIOS Configuration

Make sure your infrared port is enabled in the BIOS and check what interrupt and port address it uses. With some laptops it seems necessary to have Window$x installed to be able to set BIOS parameters.

I have got reports, that connected to a docking station the infrared port was disabled.

2.4.6. Serial Port (setserial)

To avoid some conflicts with serial devices you should do setserial /dev/ttyS1 uart none. Choose the ttySx according to your SIR port. Hint: dmesg | grep tty.

From Florian Lohoff You should also set "port 0x0 irq 0" otherwise you will see interesting effects if there is suddenly a different S1 e.g. by inserting a modem PCMCIA card. The serial driver will then touch the OLD ports without having acquired those which will cause the irda stuff to die/hang. This is a bug i havent been able to find in the serial driver but it definitly exists (Put a printk into the serial_out serial_in stuff).

2.4.7. Starting IrDA

Most important, you must sync your disks!!! Maybe you have to reboot your machine. Have you read the disclaimer?

There are three sorts of low level drivers: SIR, dongle and FIR. To start with Linux/IrDA I recommend to use the SIR method.

Load the modules modprobe irda irtty. irattach /dev/ttyS1 -s 1 to attach the IrDA device to the IrDA services. Check lsmod and dmesg.

irdadump should show all available IrDA devices in range now. Hint: If you are connecting different Linux boxes, you may use hostname YOUR_HOSTNAME to set a unique hostname for each computer.

On the "server" side do pppd /dev/ircomm0 LOCAL_IP:REMOTE_IP On the "client" side do pppd /dev/ircomm0 .

You may now test the connection with ping. And use all sorts of networking connections (ssh, NFS, ...) now.