IrDA on Linux

Installing irda-utils

% wget http://www.cs.uit.no/linux-irda/irda-utils/irda-utils-0.9.4.tar.gz
# make install
# vi /etc/init.d/irda
# cd /etc/rc3.d/
# ln -s ../init.d/irda S99irda
# cd /etc/rc0.d/
# ln -s ../init.d/irda K10irda
# mkdir -p /etc/irda
# cp etc/drivers /etc/irda/
# vi /etc/irda/drivers

Let's get ready for IrCOMM

# ls /lib/modules/2.2.10/*/ir*
/lib/modules/2.2.10/misc/ircomm_tty.o  /lib/modules/2.2.10/net/ircomm.o
/lib/modules/2.2.10/misc/irda.o        /lib/modules/2.2.10/net/irda.o
/lib/modules/2.2.10/misc/irport.o      /lib/modules/2.2.10/net/irlan.o
/lib/modules/2.2.10/misc/irtty.o

# mknod /dev/ircomm c 161 0

/* this procedure is for older version
# mknod /dev/ircomm c 60 64
# mknod /dev/irnine c 60 64
*/

# chgrp dialout /dev/ircomm
# chmod g+w /dev/ircomm
/* maybe it's obsolete 
# ls -al /dev/ircomm
crw-rw-r--   1 root     dialout   60,  64 Aug 25 01:57 /dev/ircomm
*/
# ls -al /dev/ircomm
crw-rw-r--   1 root     dialout  161,   0 Nov 23 02:13 /dev/ircomm
# insmod irda
# insmod ircomm
# cat /proc/modules | grep ir
ircomm                 8576   0 (unused)
irda                  58369   0 [ircomm]

irda

# ls -Lal /dev/ttyS2
crw-rw---- 1 root dialout   4,   66  Mar   4  1999 /dev/ttyS2
add the following two lines in /etc/modutils/aliases (or /etc/conf.modules?)
alias tty-ldisc-11 irtty
alias char-major-161 ircomm_tty (char-major-60 is obsolete, i guess)

It's a show time

1. HotSync -> LocalSync on Palm
2. launch pilot-xfer using Ir port
% pilot-xfer (-p /dev/ircomm) -l (IR-HOWTO Chap. 6 says starting pilot-xfer before starting HotSync on the pilot is not gonna work.)

Relations

# ls -al /dev/pilot
lrwxrwxrwx   1 root     root            5 Sep 30 01:24 /dev/pilot -> ircomm
in my understanding,
/dev/ttyS2 is configured via irattach ttyS2 and connected to /dev/ircomm

Trouble shooting

/proc/tty/drivers /proc/net/irda (only for IrLAN?) /etc/irda/*
# setserial /dev/ttyS2 irq 10
# modprobe ircomm-tty
Warning: /lib/modules/2.2.18-21k/net/irda.o symbol for parameter irda_debug not found
# irattach /dev/ttyS2 -s
1.1 Tue Nov  9 15:30:55 1999 Dag Brattli
# irmanager 
# irdump
13:42:18.845524 xid:cmd 3f1557be > ffffffff S=6 s=0 (14) 
13:42:18.935505 xid:cmd 3f1557be > ffffffff S=6 s=1 (14) 
13:42:19.025510 xid:cmd 3f1557be > ffffffff S=6 s=2 (14) 
13:42:19.115520 xid:cmd 3f1557be > ffffffff S=6 s=3 (14) 
13:42:19.205516 xid:cmd 3f1557be > ffffffff S=6 s=4 (14) 
13:42:19.295518 xid:cmd 3f1557be > ffffffff S=6 s=5 (14) 
13:42:19.385521 xid:cmd 3f1557be > ffffffff S=6 s=* abyss hint=0400 [ Computer ] (21) 
13:42:21.845613 xid:cmd 3f1557be > ffffffff S=6 s=0 (14) 
13:42:21.935599 xid:cmd 3f1557be > ffffffff S=6 s=1 (14) 
13:42:22.025603 xid:cmd 3f1557be > ffffffff S=6 s=2 (14) 
13:42:22.115604 xid:cmd 3f1557be > ffffffff S=6 s=3 (14) 
13:42:22.205605 xid:cmd 3f1557be > ffffffff S=6 s=4 (14) 
13:42:22.295606 xid:cmd 3f1557be > ffffffff S=6 s=5 (14) 
13:42:22.385616 xid:cmd 3f1557be > ffffffff S=6 s=* abyss hint=0400 [ Computer ] (21) 
...
...
...

13:42:45.846368 xid:cmd 3f1557be > ffffffff S=6 s=0 (14) 
13:42:45.936360 xid:cmd 3f1557be > ffffffff S=6 s=1 (14) 
13:42:46.026355 xid:cmd 3f1557be > ffffffff S=6 s=2 (14) 
13:42:46.116359 xid:cmd 3f1557be > ffffffff S=6 s=3 (14) 
13:42:46.206359 xid:cmd 3f1557be > ffffffff S=6 s=4 (14) 
13:42:46.296366 xid:cmd 3f1557be > ffffffff S=6 s=5 (14) 
13:42:46.386372 xid:cmd 3f1557be > ffffffff S=6 s=* abyss hint=0400 [ Computer ] (21) 

70 packets received by filter
# 

% pilot-xfer -l
Waiting for connection on /dev/pilot (press the HotSync button now)...
Connected
Reading list of databases in RAM...
'AvGoFlagB'
'AvGoPref'
'AvGoVersion'
'MapiDB'
'AvGoAuthMQ'
'AbroadJ_CityDatabaseNote_DB'
'AbroadJ_CurrCodeRate_DB'
'AbroadJ_CurrCodeRateTransit_DB'
'AbroadJ_CurrExchange_DB'
'AvGoChanMQ'
'BirthdateDB'
'Datebk3DB'
'AddressDB'
'DatebookDB'
'ExpenseDB'
'LauncherDB'
'MailDB'
'MemoDB'
'NetworkDB'
'ToDoDB'
'AkibaMap.pdb'
'TOKYOTrainMap'
'Tokyo'
'Extension Registry'
'AvGoDocsMQ'
'J-OS Pro HACK'
'SaveScreenHack'
'AdrJRooter'
'AvGoHistory'
'J-OS IM Learning DB'
'K-3_Memories'
'AbroadJ_MainMemo_DB'
'AvGoNewsMQ'
'AbroadJ_WorldClock_DB'
'AbroadJ_WorldClockTransit_DB'
'AddressJ Localizer'
'AkibaMap'
'Abroad!'
'AvantGo'
'Birthdat'
'DateBk3'
'K-3'
'MobileLink'
'MAP PILOT'
'Tealmeal'
'Viewer III'
'AddressJ'
'HackMaster'
'GraffitiDemo'
'FlashPro'
% 

abyss:/home/dxy[11:08pm] lsmod
Module                  Size  Used by
irtty                   4944   2 (autoclean)
ircomm-tty             17136   0
ircomm                  5936   0 [ircomm-tty]
irda                   74768   2 [irtty ircomm-tty ircomm]
serial_cs               5488   0 (unused)
serial                 18592   1 [serial_cs]
3c589_cs                8448   1
usbcore                43888   1 (autoclean)
ds                      6352   1 [serial_cs 3c589_cs]
i82365                 22288   1
pcmcia_core            51040   0 [serial_cs 3c589_cs ds i82365]
autofs                  9200   1 (autoclean)
lockd                  43856   0 (autoclean) (unused)
sunrpc                 58896   0 (autoclean) [lockd]
opl3                   11472   0
sb                     33920   0
uart401                 6224   0 [sb]
sound                  57568   0 [opl3 sb uart401]
soundlow                 464   0 [sound]
soundcore               2608   5 [sb sound]
abyss:/home/dxy[11:08pm] 

abyss:/home/dxy[11:09pm] cat /proc/interrupts 
           CPU0       
  0:     433979          XT-PIC  timer
  1:      14786          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  5:          1          XT-PIC  soundblaster
  8:          1          XT-PIC  rtc
  9:          0          XT-PIC  i82365
 10:      11801          XT-PIC  serial
 11:       1672          XT-PIC  3c589_cs
 12:      22115          XT-PIC  PS/2 Mouse
 13:          1          XT-PIC  fpu
 14:       8034          XT-PIC  ide0
NMI:          0
abyss:/home/dxy[11:09pm] 

abyss:/home/dxy[11:09pm] cat /proc/ioports 
0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
0220-022f : soundblaster
02e8-02ef : serial(set)
02f8-02ff : serial(auto)
0300-030f : 3c589_cs
0388-038b : Yamaha OPL3
03c0-03df : vga+
03e8-03ef : serial(set)
03f6-03f6 : ide0
03f8-03ff : serial(auto)
fcf0-fcf7 : ide0
fcf8-fcff : ide1
abyss:/home/dxy[11:09pm] 


abyss:/proc/tty[11:11pm] cat /proc/tty/ldiscs
n_tty       0
irda       11
abyss:/proc/tty[11:11pm] 

abyss:/proc/tty[11:11pm] cat drivers
ircomm               /dev/ircomm   161    0-31 serial
serial               /dev/cua        5   64-67 serial:callout
serial               /dev/ttyS       4   64-67 serial
pty_slave            /dev/pts      136   0-255 pty:slave
pty_master           /dev/ptm      128   0-255 pty:master
pty_slave            /dev/ttyp       3   0-255 pty:slave
pty_master           /dev/pty        2   0-255 pty:master
/dev/tty0            /dev/tty0       4       0 system:vtmaster
/dev/ptmx            /dev/ptmx       5       2 system
/dev/console         /dev/console    5       1 system:console
/dev/tty             /dev/tty        5       0 system:/dev/tty
unknown              /dev/tty        4    1-63 console
abyss:/proc/tty[11:11pm] 

abyss:/home/dxy/palm/backup/20010214[12:34am] ifconfig irda0
irda0     Link encap:IrLAP  HWaddr 3f:15:57:be  
          UP RUNNING NOARP  MTU:2048  Metric:1
          RX packets:35871 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48112 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:8 

abyss:/home/dxy/palm/backup/20010214[12:34am] 


Links

Linux IrDA Project
Linux IR HOWTO
Infrared Devices working with Linux
IrCOMM support for Linux
Ir
http://www.ita.chalmers.se/~svinto/hypermail/linux-irda/
http://www4.pasta.cs.uit.no/pipermail/irda/
Pasta Project IrDA mailing list
Installing Linux on a Sony Vaio Z505SX notebook
Unofficial irda-utils Debian package
Linux IrDA snapshot archive
Linux IrDA on the Toshiba Tecra 8000
Linux IrDA on the Sony Vaio PCG-C1F