Next Previous Contents

6. Specific Connections and Protocols

6.1 Printer Connection - IrLPT

IrLPT is under heavy construction at the moment. The client side should work, but the server side may crash.

Takahide Higuchi reported: " I have been debugging IrCOMM with a printer ( Canon BJC-80v ) with IrDA port and IrCOMM protocol (not IrLPT). I can print a short e-mail text though, it easily causes dead lock when I try to print a postscript with gs."

From the page of Thomas Davis http://www.jps.net/tadavis/irda : To use the IrLPT server, you need to perform the following steps:


/sbin/insmod irlpt_server 
/sbin/mknod /dev/irlptd c 10 `grep irlptd /proc/misc|cut -f 1` 

At this point, the IrLPT server is ready to recieve print jobs; now; all you need is this simple shell script
#/bin/sh
#
while (true)
do
cat /dev/irlptd | lpr
done

6.2 LAN Connection - IrLAN

For an ACTiSYS FIR board and dongle you may do:


irmanager -d1
/sbin/modprobe pc87108  # remove irattach from /etc/irda/drivers, or
                        # substitute irattach with the modprobe!

On machine 1:


modprobe irlan_client # not really necessary since irmanager should do this!

On machine 2 (if you don't have an access-point)
modprobe irlan_server

Do not compile irlan_server into the kernel, since it currently does not like that! You should have configured /etc/sysconfig/network-scripts/ircfg-eth0 with a proper ad-hoc network if you are using two machines. If you have an access-point, then the normal setup should be fine.

Notice that in the latest patch (2.2.0-irda1) irlan_client will call the device irlan0 by default, but you can change this by giving eth=1 as an option to irlan_client (modprobe irlan_client eth=1 or options irlan_client eth=1 in /etc/conf.modules). The next release of IrLAN will be only one module, so you don't need to think about if you need to have the client and/or the server installed.

It's possible to do ifconfig irlan0 -broadcast to stop the AP from flooding you with broadcast frames! That can be a problem if you are connected to a very large Ethernet segment. The only problem is that your machine will then have to initiate all communications and can therefore not function as a server (well, you could probably make a stationary machine somewhere answer ARP requestes on your behalf).

6.3 Palm III Connection - IrOBEX

The IrOBEX stuff seems under rapidly improving changing development. So the applications change too. Therefore I just can't give quite exact information. Please see also the report by Dag Brattli at http://www.cdpubs.com/hhsys/archives/66/10brattl.pdf .

The /etc/irda script is really only good for configuration of the devices, making the right mknod for /dev/irobex etc, not for starting applications.

6.4 Cellular Phone Connection

As far as I know some cellular phones use the IrCOMM standard, e.g. Ericsson SH888 and NOKIA 8110. Benny Amorsen wrote: "I have used minicom with the SH888, and I actually got it to establish a connection in minicom (CONNECT 9600...). I could not get it to do anything after that, and hanging up by dropping carrier does not work. +++ worked, so I could hang up that way. I would say that the SH888 is very close to working with linux-irda., and actually it might work in 2.0.x kernels. I only use 2.1 kernels.".

Maybe other cellular phones use the IrOBEX standard, see the Palm III section for information about setting up a connection.

Carlos Vidal wrote: Correct me if I'm wrong, but it seems to me that Nokia telephones do not contain a genuine hardware modem, but something which is similar in principle to WinModems for PC. Whenever Nokia writes about modem communication, they use the name "Windows software modem" (or something similar). Which is actually backed up by the need to use special Nokia software for Windows (called Nokia Cellular Data Suite).

Joonas Lehtinen wrote: This is true with 61xx models. Models: 8810, 9000(i) and 9110 should work fine. (They have inbuilt modem). My N9000 reports IrCOMM with linux.

To start a communication session with /dev/irnine, for instance, say:


dip -t
> port irnine
> term

Probably you may use cu instead of dip, too. There are also reports about some efforts with the Ericsson GF768 and IR Modem DI 27.

Benny Amorsen wrote: The SH888 emulates an IRDA-port when you connect it using the serial cable. Why someone would think up something weird like that is beyond me, but that is the way you get it to work in Windows. Not that I ever managed to make it work in Windows, though.

6.5 Digital Camera Connection

Markus Schill wrote: "Great that there are also other people who are interested in using the SONY DSC-F1 IR adapter under linux. Up to now I have only toyed around with the linux-irda software and the serial IR adapter from PuMa Technologies that came with the camera. This is the status. I am using linux 2.0.33 and the latest linux-irda... If I use:


insmod irda 
insmod irtty 
irattach /dev/cua0

the adapter starts talking to the camera. /var/log/messages says that SONY-DSC-F1 was found, but no service is started. (Please note, this probably doesn't apply to the 2.2.x kernel versions of Linux/IrDA, wh).

There are two programs for linux available that can be used for the communication with the camera via cable: (1) chotplay and (2) stillgrab. They both take a tty as commandline option, so I guess that they should work if the irtty layer of the protocol stack works correctly ... I have not looked at anything in the linux-irda code, yet!). I am not sure whether I understand the stack but shouldn't the irtty make the thing look like a normal tty? What service should be started. "

Dag Brattli wrote: "I'm not sure which application level protocol the camera uses, but it is possible that it implements the IrDA(TM) Infrared Transfer Picture Specification (IrTran-P). If you take a look at http://www.irda.org/standards/pubs/IrTran-P_10.pdf, you will see that it is a protocol which is implemented above IrCOMM (not IrTTY!). IrTTY is something we use just to be able to talk to the Linux serial driver. "

6.6 Window$95 and Linux/IrDA

Introduction

Why this? Unfortunately Linux users are not always supported with the necessary hardware information. Sometimes it is possible to look at this informations in Window$95.

Where to get it from? At http://www.microsoft.com/windows95/info/irda.htm you will find a support pack "Infrared Transfer 2.0". It is a self-extracting archive W95IR.EXE with 331KB.

With some machines e.g. a HP Omnibook 800 it is necessary to use a vendor specific version of this package (e.g. for the HP Omnibook 800 you may find it on the recovery CD).

Especially the ..\windows\inf\*.inf files and the device manager are of interest to look for configuration details.

As far as I know Window$NT doesn't support IrDA(TM). About Window$98 I have heard there is no IrDA(TM) support yet.

There are also some non M$ products available. Note: Some of them use proprietary infrared protocols:

Connection between Linux/IrDA and Window$95 IrDA(TM)

I suppose there are three ways to connect Linux/IrDA and Window$95:

A network connection between two PC's. If you have set up Infrared Transfer 2.0, you will find an IrDA(TM) network device in the <Network Device Section>. But I couldn't get a working connection yet.

Maybe it is also possible to use the IrOBEX protocol. But I don't know which software to use and where to get it. I supposed the necessary software comes with a Palm III, but this seems not to be true.

Takahide Higuchi <thiguchi@pluto.dti.ne.jp> provided IrCOMM support. From his page at http://www.pluto.dti.ne.jp/~thiguchi/irda/ I have taken the following description (I have modified it at little): "With IrCOMM support you can send or receive short messages between a linux box and a terminal program on a win95 laptop! Please add this line to /etc/conf.modules:


alias char-major-60 ircomm_tty

Next, make a device file mknod /dev/irnine c 60 64. Now Linux/IrDA services can be started as usual with irattach /dev/ttyS? &. /dev/irnine can be used as a serial device. ircomm and ircomm_tty modules will be loaded automatically by kerneld/kmod when a program uses /dev/irnine. NOTE: I think "setserial" utility will not work on /dev/irnine. Tips:

6.7 Linux to Linux Connection

Connection Methods

There should be three ways to get two Linux machines connected via Linux/IrDA.

Compression

Please note this feature is still quite experimental! Dag Brattli wrote: "Just wanted you to know I have just added COMPRESSION support to IrLAP! As you may know, this is _not_ part of the IrDA(TM) standard, but Linux can now negotiate with its peer and check if it has the same compression capabilities). So obviously if you are talking to Win95, Palm III or whatever, you will _not_ get compression!!! This is something which is exclusive for Linux as far as I know! The IrDA(TM) standard says that devices should ignore unknown field in the negotiation header, so we are still "compatible" with IrDA(TM) (have just borrowed an unused header value).

If you want to try using the compression code (Linux <-> Linux) you will have to insert the irda_deflate module some time before you actually make the connection. I do it before irattach.

The compression standard I have added is the deflate format used by the zlib library which is described by RFCs (Request for Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).

The compression interface is similar to PPP, so you can add as many different compressors as you want. Currently there is only support for GZIP, but BSD compression will be added later."

6.8 Multiple Instances

Dag Brattli wrote: "The IrLAP layer has been enhanced to allow more than one instance (so I can use IrLAN on my built-in ir-port, and communicate with the Pilot over the IrDA dongle at the same time) ... So how do you make two Linux/IrDA connections? Well, you just fire up irattach for each of the IR ports you have like this: "


irattach /dev/ttyS0 &    (my ESI dongle)
irattach /dev/ttyS2 &    (my builtin IrDA port)

insmod irlan_client
insmod irobex


Next Previous Contents