2.1. Software
The commands provided by the irda-utils package are the basic set of
tools to get a working IrDA connection. The other tools (e-Squirt,
IrNET, ..) are optional. Since version 0.9.15 manual pages are included.
Most current manual pages are at
TuxMobil.
2.1.1. IrDA-Utils2.1.1.1. Compilation
Use the latest source of irda-utils available at Linux/IrDA
Project. Also recommended is the latest glibc library. You may find
out the current version with ldd --version.
The use of the older libc5 library may lead to compile errors.
Untar the package with tar xvzf irda-utils<VERSION>
. I recommend to do this in /usr/src.
Do a make clean (not necessary if you
compile the package for the first time).
Do a make all to build the binaries.
Do a make install, this brings all
commands into the right place
and installs some config files in /etc/irda.
Sometimes, when you compile the IrDA stack or some various IrDA package, you
may have the compiler complaining the things such as IRLMP_HINT_MASK_SET or
IRDAPROTO_ULTRA are not defined. This is because of a mess related to
kernel headers and the way most distributions deal with it. If you have the
2.4.X kernel source lying around, the fix is simple. Just copy the header
irda.h from the kernel to your include directory
cp /usr/src/linux/include/linux/irda.h /usr/include/linux
2.1.1.2. Precompiled Packages
Debian/GNU Linux provides an irda-utils package since Potato.
Also Mandrake since 6.1, Redhat
since 6.1 and SuSE since 6.1 contain RPM packages of the irda-utils.
Some caveat with precompiled packages might be some incompatibilities
between kernel version and appropriate package version.
2.1.1.3. Contents of Linux/IrDA-Utils2.1.1.3.1. irattach
irattach uses the module set as
parameter; it can be a specific
FIR driver: irattach toshoboe
or ircomm (and then it loads the module aliased
as "irda0" in /etc/modules.conf)
If you are one of the lucky people which have a FIR chipset that is
supported, then you don't need to use irattach anymore. Now you just
have to modprobe the driver.
2.1.1.3.2. irdadump
A program that displays all the frames sent, and received on the
infrared link.
One advantage of implementing IrDA device drivers as network device
drivers is that you should be able to attach sniffers to the device
(or actually the packet type). That way, it is possible to use a
really handy utility called irdadump (instead of tcpdump). This will
make debugging MUCH easier. Linux-2.2 implements the BPF (Berkeley
Packet Filter), so its possible to filter out exactly the frames you
want to see.
Note: You probably have to be root for using irdadump . CONFIG_PACKET
has to be enabled in the kernel. If compiled as a module you might
load the module manually. irdadump
has been converted into a library,
so it can be used from GUI applications as well.
Here is a sample output of a small session between Linux and a Palm
III. This log shows that the local irobex layer is not responding, so
the Palm III sends a disc frame.
dagbnb /home/dagb/linux/irda-utils/irdadump/ # ./irdadump
20:18:15.305711 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=0
20:18:15.385597 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=1
20:18:15.465568 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=2
20:18:15.545953 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=3
20:18:15.625574 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=4
20:18:15.705575 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=5
20:18:15.785601 xid:cmd:saddr=0x05c589 > daddr=0xffffffff,S=6,s=255,info=Linux
20:18:18.075526 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=0
20:18:18.225498 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=1
20:18:18.375495 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=2
20:18:18.526355 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=3
20:18:18.675614 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=4
20:18:18.676364 xid:rsp:saddr=0x05c589 > daddr=0xb50c14b,S=6,s=4
20:18:18.765506 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=5
20:18:18.927221 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=255,info=Palm III
20:18:18.975796 snrm:cmd,ca=0xfe,pf=1
20:18:18.976534 ua:rsp,ca=0x58,pf=1
20:18:18.977145 ua:rsp,ca=0x58,pf=1
20:18:19.585627 rr:rsp,ca=0x58,nr=0,pf=1
20:18:19.585810 rr:rsp,ca=0x58,nr=0,pf=1
20:18:19.606413 i:cmd,ca=0x58,nr=0,ns=0,pf=1
20:18:19.606582 rr:rsp,ca=0x58,nr=1,pf=1
20:18:19.627708 rr:cmd,ca=0x58,nr=0,pf=1
20:18:19.627871 i:rsp,ca=0x58,nr=1,ns=0,pf=1
20:18:19.650571 disc:cmd,ca=0x58,pf=1
20:18:19.650736 ua:rsp,ca=0x58,pf=1
20:18:21.165524 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=0
20:18:21.315608 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=1
20:18:21.315793 xid:rsp:saddr=0x05c589 > daddr=0xb50c14b,S=6,s=1
20:18:21.395499 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=2
20:18:21.545516 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=3
20:18:21.695500 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=4
20:18:21.845840 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=5
20:18:22.007222 xid:cmd:saddr=0xb50c14b > daddr=0xffffffff,S=6,s=255,info=Palm
III
20:18:22.056143 snrm:cmd,ca=0xfe,pf=1
20:18:22.056310 ua:rsp,ca=0xc8,pf=1
20:18:22.056381 ua:rsp,ca=0xc8,pf=1
37 pacckets received by filter
|
2.1.1.3.3. irdaping
Makes it possible to try and ping a remote device using IrDA test
frames. Not all devices implement support for test frames. This is a
program similar to ping(8). It sends IrDA test frames, enriched by some
userdata which contain the frame number and the time the frame was
sent. You can also change the size of the frame by using the
-s
option. You must supply an IrDA device address, and not an IP address.
You have to be able to get that device address by using irdadump.
Here is one output sample (pinging an ACTiSYS IR-100M):
dagbnb /home/dagb/linux/irda-utils/irdaping/ # ./irdaping 0xf7be8388
IrDA ping (0xf7be8388): 32 bytes
32 bytes from 0xf7be8388: irda_seq=0 time=102.466003 ms.
32 bytes from 0xf7be8388: irda_seq=1 time=102.202003 ms.
32 bytes from 0xf7be8388: irda_seq=2 time=102.170998 ms.
32 bytes from 0xf7be8388: irda_seq=3 time=101.633003 ms.
4 packets received by filter
|
Christian Gennerat
"I use an alias which does not use any parameter (in $HOME/.bashrc):
alias irping="irdaping \`grep daddr /proc/net/irda/discovery|sed s/.*daddr://\`"
It works fine when there is only one discovered client."
2.1.1.3.4. irkbd
Implements support for the mouse and keyboard protocol as used by the
Tekram IR-660 infrared docking station. For details on how to use
external keyboards with Linux PDAs see below.
2.1.1.3.5. findchip
Tries to find out which FIR IrDA chipset your machine is using. Try
out findchip -v to check it out. For other methods to detect the
chipset see below.
2.1.1.3.6. irsockets
A collection of programs which uses IrDA sockets.
2.1.1.3.7. irpsion5
File transfer program for exchanging files with your Psion PDA.
2.1.1.3.8. /etc/irda
This directory contains the configuration file irda.conf.
You may for example configure the serial port for the SIR driver.
For first testing you should try the SIR driver.
2.1.2. openobex
The overall goal of the
OpenOBEX
project is to make an open source
implementation of the Object Exchange (OBEX) protocol. OBEX is a
session protocol and can best be described as a binary HTTP protocol.
OBEX is builtin in devices
like PDA's like the Palm Pilot, and mobile phones
like the Ericsson R320, Siemens S25, Siemens S45, Siemens ME45, Nokia NM207 and
Nokia 9110 Communicator.
OBEX is optimised for ad-hoc wireless links and can be used to exchange all kind of
objects like files, pictures, calendar entries (vCal) and business cards
(vCard). A typical application is the "beam" function of PalmOS.
2.1.3. e-squirt
e-Squirt is a simple protocol for sending URLs over the IrDA medium.
This allows for interaction with CoolTown enabled devices.
2.1.4. IrNET for Linux-IrDA
IrNET
is a protocol allowing to carry TCP/IP traffic between two IrDA
peers in an efficient fashion. It is a thin layer, passing PPP packets
in a IrTTP socket. It uses PPP in synchronous mode for efficiency, and
offers lots of flexibility and various features. The main part of
IrNET in included in kernel 2.4.x, and a user-space daemon (to
automate connections) is available on the web page.
2.1.5. Java - IrDA Interface
This
Java Infrared Socket API
provides a way of communicating through
infrared medium on a linux machine using Java. Thus, Java application
developers can develop applications involving infrared access much
easily. The API is very similar to java.net.Socket API and has been
implemented using the Linux infrared stack. Both connection oriented
streams (IrSocket and IrServerSocket) and connectionless Ultra
(UltraSocket, UltraPacket) interfaces are available.
|
|