I'm trying to get a
single board computer with StrongARM SA1110 processor to run IRDA. I'm
using linux 2.4.9.
Discovery seems to
work well on everything I have tried to connect to (Palm, Cassiopeia, Win2000
laptop, other SBCs). But I seem to be unable to transfer data using IrNET,
IrLAN, or IrCOMM.
Right now I'm
testing by trying to get 2 of my single board computers to talk with each other
using IrCOMM.
I have sa1100_ir.o
and irda.o built into the kernel and everything else is a
module.
To get things
started, on both systems I run:
insmod
./ircomm.o
insmod
./irtty.o # (or ./irport.o)
insmod
./ircomm-tty.o
irattach
irda0 -s 1
echo 38400
> /proc/sys/net/irda/max_baud_rate
echo 9 >
/proc/sys/net/irda/debug
The at this point
discovery seems to work fine. Both computers have good looking discovery
entries for the other one.
So I try to send
something across from one to the other.
On the first
computer I run:
cat
/dev/ircomm0 > /tmp/foo
On the second
computer I run:
echo
foobarbaz > /dev/ircomm0
The 'cat' on
the first computer seems to wait for some data to come over the port, but
eventually it returns with zero status and outputs
nothing.
The 'echo' on the
second computer sometimes will return immediately, other times it hangs forever
and eventually I kill it. The characters 'foobarbaz' never seem to make it
from the second computer to the first one.
I get a lot of
debugging output. There is so much, that I'm having a hard time
understanding it. I seem to get a lot
of watchdogtimer
expirations.
Can anyone point me
toward a good debugging strategy from here?
Thanks,
Robert
Whaley
