home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / IR-HOWTO < prev    next >
Text File  |  1999-02-09  |  88KB  |  2,377 lines

  1.   Linux IR HOWTO
  2.   Werner Heuser, < wehe@snafu.de >
  3.   v2.4, 9 February 1999
  4.  
  5.   An introduction to Linux and infrared devices and how to use the soft¡
  6.   ware provided by the Linux/IrDA project. This package uses IrDA(TM)
  7.   compliant standards. IrDA(TM) is an industrial standard for infrared
  8.   wireless communication, and most laptops made after January 1996 are
  9.   equipped with an IrDA(TM) compliant infrared transceiver. Infrared
  10.   ports let you communicate with printers, modems, fax machines, LANs,
  11.   and other laptops. Speed ranges from 2400bps to 4Mbps. The Linux/IrDA
  12.   stack supports IrLAP, IrLMP, IrIAS, IrIAP, IrLPT, IrCOMM, IrOBEX, and
  13.   IrLAN. Several of the protocols are implemented as both clients and
  14.   servers. There is also support for multiple IrLAP connections, via
  15.   several IrDA(TM) devices at once. The Linux/IrDA project started at
  16.   the end of 1997 and its status is still experimental, so please don't
  17.   expect every feature working straight. AFAIK Linux/IrDA is the _only_
  18.   open source IrDA implementation currently available. Remote Control
  19.   (RC) via infrared is not the aim of the project, though partly treated
  20.   in this HOWTO.
  21.   ______________________________________________________________________
  22.  
  23.   Table of Contents
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.   2. Prerequisites
  70.  
  71.   3. Kernel
  72.  
  73.      3.1 General Parameters
  74.      3.2 IrDA Specific Parameters
  75.         3.2.1 IrDA subsystem support
  76.            3.2.1.1 IrDA protocols
  77.            3.2.1.2 IrDA protocol options
  78.            3.2.1.3 IrDA compressors
  79.         3.2.2 Infrared-port device drivers
  80.            3.2.2.1 IrTTY (uses serial driver)
  81.            3.2.2.2 Dongle support
  82.            3.2.2.3 FIR support
  83.  
  84.   4. Linux/IrDA-Utils
  85.  
  86.   5. Configuration
  87.  
  88.      5.1 General Configuration
  89.      5.2 IrManager
  90.      5.3 Low Level Drivers
  91.         5.3.1 SIR
  92.         5.3.2 Dongle Connection - Infrared Adapters for the Serial Port
  93.         5.3.3 Dongle Connection - Infrared Motherboard Adapter
  94.         5.3.4 Fast InfraRed (FIR)
  95.  
  96.   6. Specific Connections and Protocols
  97.  
  98.      6.1 Printer Connection - IrLPT
  99.      6.2 LAN Connection - IrLAN
  100.      6.3 Palm III Connection - IrOBEX
  101.      6.4 Cellular Phone Connection
  102.      6.5 Digital Camera Connection
  103.      6.6 Window$95 and Linux/IrDA
  104.      6.7 Linux to Linux Connection
  105.         6.7.1 Connection Methods
  106.         6.7.2 Compression
  107.      6.8 Multiple Instances
  108.  
  109.   7. Hardware Supported by Linux/IrDA
  110.  
  111.      7.1 Obtaining Information about the Infrared Port in Laptops
  112.         7.1.1 SIR
  113.         7.1.2 FIR
  114.      7.2 Hardware Overviews
  115.  
  116.   8. GUI
  117.  
  118.   9. Power Saving
  119.  
  120.   10. Troubleshooting, Mailing List
  121.  
  122.      10.1 General Information
  123.      10.2 Troubleshooting Techniques
  124.  
  125.   11. Known Bugs
  126.  
  127.   12. FAQ
  128.  
  129.   13. Infrared Remote Control
  130.  
  131.      13.1 Resources
  132.      13.2 Infrared Remote Control - IrDA
  133.   14. Infrared and Eye Safety
  134.  
  135.   15. Credits
  136.  
  137.   16. Revision History
  138.  
  139.   17. Copyright and Disclaimer
  140.  
  141.  
  142.  
  143.   ______________________________________________________________________
  144.  
  145.  
  146.   1.  Introduction
  147.  
  148.                               Better red, than dead. - Unknown AuthorEss
  149.  
  150.   Since 2.1.131 and 2.2.0 Linux/IrDA is part of the kernel. Please note
  151.   that the status of the project is still experimental. If you need
  152.   information about Linux/IrDA support for 2.0.x kernels please look
  153.   into the former version of this HOWTO at
  154.   http://www.snafu.de/~wehe/index_li.html. But AFAIK this package is no
  155.   longer maintained.
  156.  
  157.   Companies and developers which are interested in joining these efforts
  158.   should contact the Linux/IrDA project at
  159.   http://www.cs.uit.no/~dagb/irda  or me at < wehe@snafu.de >.
  160.  
  161.   Some history about Linux/IrDA. The project started at the end of 1997
  162.   with the name Linux/IrDA. Due to some troubles with the name IrDA,
  163.   which is trademarked by the Infrared Data Association IrDA
  164.   http://www.irda.org/, the name was changed to Linux/IR. At the end of
  165.   1998 the the relationship between both became better and the name was
  166.   changed to Linux/IrDA again.
  167.  
  168.   This document is based on the "How to use" part of the Linux/IrDA
  169.   project homepage http://www.cs.uit.no/~dagb/irda/howto.html. I also
  170.   included material provided by the Linux/IrDA core team, the Linux/IrDA
  171.   mailing list and other sources.
  172.  
  173.   The document is included in the LINUX DOCUMENTATION PROJECT
  174.   http://metalab.unc.edu/LDP.
  175.  
  176.   The latest version of this document is available at
  177.   http://www.snafu.de/~wehe/index_li.html
  178.  
  179.   I tried to check all information but I don't have all the necessary
  180.   infrared hardware yet, so if something doesn't work for you, please
  181.   don't blame me.
  182.  
  183.   Please feel free to contact me for comments or questions. I know this
  184.   material is not finished or perfect, but I hope you find it useful
  185.   anyway.
  186.  
  187.   <Werner Heuser>
  188.  
  189.  
  190.   2.  Prerequisites
  191.  
  192.  
  193.   ╖  BIOS
  194.  
  195.      - Make sure your infrared port is enabled in the BIOS and check
  196.      what interrupt and port address it uses.
  197.  
  198.  
  199.   ╖  Infrared Controller Chip
  200.  
  201.      - Make sure your infrared port is detected by the Linux kernel. For
  202.      detailed information see the "Hardware Overview" section below.
  203.  
  204.  
  205.   ╖  modutils
  206.  
  207.      - Make sure you use modutils 2.1.x by insmod --version. I use
  208.      version 2.1.121.
  209.  
  210.  
  211.   ╖  Shared Library
  212.  
  213.      - The shared library libc.so.5 and the loader ld-linux.so.1 has to
  214.      be available.
  215.  
  216.      - But glibc2 aka libc6 should work also.
  217.  
  218.      - I am not sure wether you need the zlib library if you use the
  219.      data compression features.
  220.  
  221.  
  222.   ╖  GUI
  223.  
  224.      Currently there are two GraphicalUserInterface's for Linux/IrDA
  225.      under development:
  226.  
  227.   ╖  GNOBEX A GNOME application developed by Dag Brattli
  228.      http://www.cs.uit.no/~dagb/irda/irda.html with support for drag'n
  229.      drop from the GNOME file manager (gmc). It will also show the
  230.      progress of the file transfer and give some better error messages
  231.      when something goes wrong. The GUI isn't finished yet, but if you
  232.      want to try the GUI you will need the Perl-GTK+ module.
  233.  
  234.   ╖  KDE A KDE application developed by Thomas Davis. Look at his page
  235.      http://www.jps.net/tadavis/irda.
  236.  
  237.      For all you lurkers out - here's your chance to contribute! Both
  238.      GUI's need some icons. Any icons need to be: a) set size  (48x48
  239.      pixels seems to be a common size, I think) b) large & mini (ask
  240.      about size for that; mini's are for docking and such) c) 16 colors
  241.      d) free for use.  e) please, don't blatently copy MS icons!  Please
  242.      contact the developers.
  243.  
  244.   ╖  Security
  245.  
  246.      - Most important, you must sync your disks!!! Maybe you have to
  247.      reboot your machine. Have you read the disclaimer?
  248.  
  249.  
  250.   ╖  Miscellaneous
  251.  
  252.      - Other useful progs: APSFILTER, EZ-Magic, MagicFilter or something
  253.      similar for the printer configuration.
  254.  
  255.  
  256.   3.  Kernel
  257.  
  258.   Please read the Kernel-HOWTO to get more information about the
  259.   compilation process. You'll find the Linux/IrDA code in:
  260.  
  261.   /usr/src/linux/net/irda (protocol stuff)
  262.  
  263.   /usr/src/linux/drivers/net/irda (device drivers)
  264.  
  265.   /usr/src/linux/include/net/irda (header files)
  266.  
  267.  
  268.  
  269.   3.1.  General Parameters
  270.  
  271.   - Make sure you use kernel 2.2.x sources. If unsure about your kernel
  272.   version try uname -r.
  273.  
  274.   - Get the latest kernel patch from the Linux/IrDA project
  275.   http://www.cs.uit.no/~dagb/irda/snapshots/. Put it into /usr/src or
  276.   where else your kernel sources live and apply something like (replace
  277.   patch-2_2.0-irdaXXX  with the actual file name):
  278.  
  279.   ______________________________________________________________________
  280.   cd /usr/src
  281.   tar xvzf patch-2_2.0-irdaXXX.tar.gz
  282.   cd linux
  283.   patch -p1 -l < ./patch-2_2.0-irdaXXX
  284.   ______________________________________________________________________
  285.  
  286.  
  287.  
  288.   - Experimental support has to be enabled (CONFIG_EXPERIMENTAL).
  289.  
  290.   - Enable sysctl in "General Setup" (CONFIG_SYSCTL).
  291.  
  292.   - You should have proc file system support (CONFIG_PROC_FS).
  293.  
  294.   - Also serial support for the SIR features (CONFIG_SERIAL).
  295.  
  296.   - I am not sure wether there has to be printer support for using a
  297.   printer with Linux/IrDA (CONFIG_PRINTER). But I assume this feature is
  298.   not necessary.
  299.  
  300.   - Networking support must be enabled (CONFIG_NET).
  301.  
  302.   - Make sure you have module support (CONFIG_MODULES) in your kernel!
  303.   Test it e.g. with lsmod.
  304.  
  305.   - Also kerneld support is recommended (CONFIG_KERNELD). But kmod
  306.   (CONFIG_KMOD) also works. A monolithic kernel seems to work, too.
  307.  
  308.   - Matt Francis wrote: "I notice that some of the modules appear to
  309.   want not only module support (as noted on the webpage), but also misc
  310.   user device support." (CONFIG_UMISC).
  311.  
  312.   If you only apply the Linux/IrDA patch, you should not have to do a
  313.   make clean, so that should save you some time. I suggest you do
  314.   something like this:
  315.  
  316.   ______________________________________________________________________
  317.   make dep && make all && make modules && make install && make modules_install
  318.   ______________________________________________________________________
  319.  
  320.  
  321.   If you get really strange errors, then try to rebuild from scratch
  322.   after a make clean.
  323.  
  324.   3.2.  IrDA Specific Parameters
  325.  
  326.   The following is my suggestion for
  327.   ../linux-2.2.x/Documentation/Configure.help, parts are from Dag
  328.   Brattli and Andreas Butz:
  329.  
  330.  
  331.   3.2.1.  IrDA subsystem support
  332.  
  333.   CONFIG_IRDA
  334.  
  335.   IrDA(TM) is an industrial standard for infrared wireless
  336.   communication. Infrared ports let you communicate with printers,
  337.   modems, fax machines, LANs, and laptops. Speed ranges from 2400bps to
  338.   4Mbps. To use this features you need the irda_utils provided by the
  339.   Linux/IrDA project http://www.cs.uit.no/ dagb/irda/ Further
  340.   information you may find there and in the Linux/IR-HOWTO at
  341.   http://www.snafu.de/ wehe/index_li.html Currently it is recommended to
  342.   build IrDA support as modules only.  Please see
  343.   Documentation/modules.txt. Please note the status of Linux/IrDA is
  344.   still experimental.
  345.  
  346.  
  347.   3.2.1.1.  IrDA protocols
  348.  
  349.  
  350.   ╖  IrLAN protocol
  351.  
  352.      CONFIG_IRLAN
  353.  
  354.      Builds the IrDA network device. Use ``ifconfig eth0 <IP-NUMBER>''
  355.      to configure it. - Just say Y
  356.  
  357.  
  358.   ╖  IrLAN client support
  359.  
  360.      CONFIG_IRLAN_CLIENT
  361.  
  362.      If you connect to infrared devices via IrLAN one has to be the
  363.      server and the other the client. You can use both the client and
  364.      the server at the same time. The first one to connect becomes the
  365.      client. - Just say Y Note: The latest patch includes peer-to-peer
  366.      support instead.
  367.  
  368.   ╖  IrLAN server support
  369.  
  370.      CONFIG_IRLAN_SERVER
  371.  
  372.      If you connect to infrared devices via IrLAN one has to be the
  373.      server and the other the client. You can use both the client and
  374.      the server at the same time. The first one to connect becomes the
  375.      client. - Just say Y Note: The latest patch includes peer-to-peer
  376.      support instead.
  377.  
  378.  
  379.   ╖  IrOBEX protocol
  380.  
  381.      CONFIG_IROBEX
  382.  
  383.      IrOBEX is a protocol for exchanging objects (files, vcards, etc.)
  384.      over an infrared connection. You can use it to exchange files
  385.      between linux and a PALM III. IrOBEX can also be used between two
  386.      Linux boxes, Linux and Windows95, etc. - Just say Y
  387.  
  388.  
  389.   ╖  IrCOMM protocol
  390.  
  391.      CONFIG_IRCOMM
  392.  
  393.      Over IrCOMM you may communicate with cellular phones, etc. To use
  394.      this service you have to build a new device with ``mknod
  395.      /dev/irnine c 60 64'', which works like /dev/ttySx. - Just say Y
  396.      ..Note: major and minor number are still not the official ones yet.
  397.      For latest improvements (IrSocket is on the way!), please look at
  398.      the page of Takahide Higuchi
  399.      http://www.pluto.dti.ne.jp/ thiguchi/irda/
  400.  
  401.      ..Note: At the moment IrCOMM seems to crash your kernel easily, you
  402.      should probably wait for the next patch.
  403.  
  404.  
  405.   ╖  IrLPT client support
  406.  
  407.      CONFIG_IRLPT_CLIENT
  408.  
  409.      Say Y here if you want to build support for the IrLPT client
  410.      protocol. If you want to compile it as a module, say M here and
  411.      read Documentation/modules.txt. The IrLPT client protocol can be
  412.      used to print documents to IrDA compatible printers like the
  413.      HP-5MP, or IrLPT printer adapters like the ACTiSYS IR-100M. - Just
  414.      say Y
  415.  
  416.  
  417.   ╖  IrLPT server support
  418.  
  419.      CONFIG_IRLPT_SERVER
  420.  
  421.      Say Y here if you want to build support for the IrLPT server
  422.      protocol. If you want to compile it as a module, say M here and
  423.      read Documentation/modules.txt. The IrLPT server protocol makes it
  424.      possible to use a Linux machine as an infrared printer server for
  425.      other laptops. So if your Linux machine has a cable connection to a
  426.      printer, then other laptops can use the Linux machine to print out
  427.      documents using infrared communication. - Just say Y
  428.  
  429.  
  430.  
  431.   3.2.1.2.  IrDA protocol options
  432.  
  433.   CONFIG_IRDA_OPTIONS
  434.  
  435.   You may define some IrDA protocol options.
  436.  
  437.   ╖  Cache last
  438.  
  439.      LSAP CONFIG_IRDA_CACHE_LAST_LSAP
  440.  
  441.      Say Y here if you want IrLMP to cache the last LSAP used. This
  442.      makes sense since most frames will be sent/received on the same
  443.      connection. Enabling this option will save a hash-lookup per frame.
  444.      If unsure, say Y.
  445.  
  446.  
  447.   ╖  FAST RRs
  448.  
  449.      CONFIG_IRDA_FAST_RR
  450.  
  451.      Use this option if you want to send faster RR (Receive Ready)
  452.      frames if the transmit queue is empty. This will give you much
  453.      better latencies but will consume more power, because of the
  454.      bouncing RR frame.
  455.  
  456.  
  457.   ╖  Recycle RRs
  458.  
  459.      CONFIG_IRDA_RECYCLE_RR
  460.  
  461.      In the normal life of the IrLAP protocol, it sends a lot of small
  462.      RR (Receive Ready) frames over the link (at least when it has
  463.      nothing else to do). Saying Y to this option will make IrLAP
  464.      recycle these frames thus avoiding many alloc_skb's and
  465.      kfree_skb's. To do this it will only buffer one of these frame
  466.      which is enough for the usual case.
  467.  
  468.  
  469.   ╖  Debug information
  470.  
  471.      CONFIG_IRDA_DEBUG
  472.  
  473.      Say Y here if you want the IrDA subsystem to write debug
  474.      information to your syslog. You can change the debug level in
  475.      /proc/sys/net/irda/debug.  If unsure, say Y (since it makes it
  476.      easier to find the bugs).
  477.  
  478.  
  479.   3.2.1.3.  IrDA compressors
  480.  
  481.   CONFIG_IRDA_COMPRESSION
  482.  
  483.   You may use the compression methods BZIP2 and BSD. These are not IrDA
  484.   standard. This will allow two linux boxes to handshake compression. It
  485.   should be compatible with other IrDA devices, although communication
  486.   will not be compressed then.
  487.  
  488.   ╖  Deflate compression (experimental)
  489.  
  490.      CONFIG_IRDA_DEFLATE
  491.  
  492.      Say Y here if you want to build support for the Deflate compression
  493.      protocol. If you want to compile it as a module, say M here and
  494.      read Documentation/modules.txt. The deflate compression (GZIP) is
  495.      exactly the same as used by the PPP protocol. Enabling this option
  496.      will build a module called irda_deflate.o.
  497.  
  498.  
  499.   ╖  BZIP2 compression
  500.  
  501.      CONFIG_IRDA_BZIP2
  502.  
  503.      Help not available yet.
  504.  
  505.  
  506.   ╖  BSD compression
  507.  
  508.      CONFIG_IRDA_BSD
  509.  
  510.      Help not available yet.
  511.  
  512.  
  513.  
  514.   3.2.2.  Infrared-port device drivers
  515.  
  516.   Three sorts of low level infrared drivers are available: serial,
  517.   dongle and FIR.  They will show up in /proc/net/dev (irda0) after
  518.   initialisation.
  519.  
  520.  
  521.  
  522.   3.2.2.1.  IrTTY (uses serial driver)
  523.  
  524.   Most IrDA chips support StandardInfraRed (SIR), which works up to
  525.   115200bps and emulates a serial port (16550A UART). On many laptops
  526.   this port is detected by the serial support of the kernel, see
  527.   ``dmesg''. IrTTY connects the Linux/IrDA services to this port. - You
  528.   should say Y here.
  529.   ╖  Serial dongle support
  530.  
  531.      CONFIG_IRTTY_SIR
  532.  
  533.      Say Y here if you want to build support for the IrTTY line
  534.      discipline. If you want to compile it as a module, say M here and
  535.      read Documentation/modules.txt. IrTTY makes it possible to use
  536.      Linux's own serial driver for all IrDA ports that are 16550
  537.      compatible. Most IrDA chips are 16550 compatible so you should
  538.      probably say Y to this option. Using IrTTY will however limit the
  539.      speed of the connection to 115200 bps (IrDA SIR mode).  If unsure,
  540.      say Y.
  541.  
  542.   3.2.2.2.  Dongle support
  543.  
  544.   CONFIG_DONGLE
  545.  
  546.   Currently four dongles (infrared adapters for the serial port) are
  547.   supported. The dongle is an infrared device which may be connected to
  548.   serial port, if you don't have built-in infrared support for your
  549.   machine. If you use a dongle together with a laptop you maybe have to
  550.   disable the IrDA support in the BIOS.
  551.  
  552.   ╖  ESI JetEye PC dongle
  553.  
  554.      CONFIG_ESI_DONGLE
  555.  
  556.      Say Y here if you want to build support for the Extended Systems
  557.      JetEye PC dongle. If you want to compile it as a module, say M here
  558.      and read Documentation/modules.txt. The ESI dongle attaches to the
  559.      normal 9-pin serial port connector, and can currently only be used
  560.      by IrTTY. To activate support for ESI dongles you will have to
  561.      insert ``irattach -d esi'' in the /etc/irda/drivers script.
  562.      http://www.extendsys.com/support/ftp/infrared.html
  563.  
  564.   ╖  ACTiSYS IR-220L and IR220L+ dongle
  565.  
  566.      CONFIG_ACTISYS_DONGLE
  567.  
  568.      Say Y here if you want to build support for the ACTiSYS IR-220L and
  569.      IR220L+ dongles. If you want to compile it as a module, say M here
  570.      and read Documentation/modules.txt. The ACTiSYS dongles attaches to
  571.      the normal 9-pin serial port connector, and can currently only be
  572.      used by IrTTY. To activate support for ACTiSYS dongles you will
  573.      have to insert ``irattach -d actisys'' or ``irattach -d
  574.      actisys_plus'' in the/etc/irda/drivers script.
  575.      http://www.actisys.com
  576.  
  577.  
  578.   ╖  Tekram IrMate 210B dongle
  579.  
  580.      CONFIG_TEKRAM_DONGLE
  581.  
  582.      Say Y here if you want to build support for the Tekram IrMate 210B
  583.      dongle. If you want to compile it as a module, say M here and read
  584.      Documentation/modules.txt. The Tekram dongle attaches to the normal
  585.      9-pin serial port connector, and can currently only be used by
  586.      IrTTY. To activate support for Tekram dongles you will have to
  587.      insert ``irattach -d tekram'' in the /etc/irda/drivers script.
  588.      http://www.tekram.de/
  589.  
  590.  
  591.   ╖
  592.  
  593.      CONFIG_GIRBIL_DONGLE
  594.  
  595.      Say Y here if you want to build support for the Greenwich
  596.      Instruments GirBIL dongle. If you want to compile it as a module,
  597.      say M here and read Documentation/modules.txt. The Greenwich dongle
  598.      attaches to the normal 9-pin serial port connector, and can
  599.      currently only be used by IrTTY. To activate support for Greenwich
  600.      dongles you will have to insert ``irattach -d girbil'' in the
  601.      /etc/irda/drivers script.  http://www.greenwichinst.com/
  602.  
  603.  
  604.  
  605.   3.2.2.3.  FIR support
  606.  
  607.   FastInfraredSupport (FIR) needs a specific controller chip, which
  608.   supports up to 4Mps. - Just say Y
  609.  
  610.   ╖  NSC PC87108
  611.  
  612.      CONFIG_NSC_FIR
  613.  
  614.      NationalSemiConductor NSC PC87108 FIR chip e.g. used in the IBM
  615.      Thinkpad 560X and ACTiSYS IR2000 dongle. Probably the NSC PC87338
  616.      FIR chip is also supported. The driver supports SIR, MIR and FIR
  617.      (4Mbps) speeds. - Just say Y
  618.  
  619.  
  620.   ╖  Winbond W83977AF (IR)
  621.  
  622.      CONFIG_WINBOND_FIR
  623.  
  624.      Winbond W83977AF (IR) FIR chip e.g. used in the Corel Netwinder PC.
  625.      The driver supports SIR, MIR and FIR (4Mbps) speeds. - Just say Y
  626.  
  627.  
  628.   ╖  Sharp UIRCC
  629.  
  630.      CONFIG_SHARP_FIR
  631.  
  632.      Say Y here if you want to build support for the Sharp UIRCC IrDA
  633.      chipset. If you want to compile it as a module, say M here and read
  634.      Documentation/modules.txt. This chipset is used by the Toshiba
  635.      Tecra laptops.
  636.  
  637.  
  638.  
  639.  
  640.   4.  Linux/IrDA-Utils
  641.  
  642.  
  643.   ╖  Use the latest source snapshot of irda-utils available at
  644.      http://www.cs.uit.no/~dagb/irda/irda-utils/
  645.  
  646.   ╖  Untar the package with tar xvzf irda-utils<VERSION>. I recommend to
  647.      do this in /usr/src.
  648.  
  649.   ╖  Do a make depend.
  650.  
  651.   ╖  Do a make clean (not necessary if you compile the package for the
  652.      first time).
  653.  
  654.   ╖  Do a make all to build the binaries.
  655.  
  656.   ╖  Do a make install, this brings irattach and irmanager into the
  657.      right place and installs some config files in /etc/irda.
  658.  
  659.   A recommendation from Bjoern Hansson <Bjorn.Hansson@signal.uu.se>: If
  660.   make depend fails on stdef.h and stdarg.h just add -I/usr/lib/gcc-
  661.   lib/i586-linux/egcs-2.90.29/include/ or the according path for your
  662.   system to the SYS_INCLUDES line in Makefile.
  663.  
  664.  
  665.   5.  Configuration
  666.  
  667.  
  668.   5.1.  General Configuration
  669.  
  670.  
  671.   ╖  First you should put your IR devices in range. Though it might be
  672.      possible that the Linux/IrDA service detects every new device
  673.      automagically I only have good experience with the devices in range
  674.      during the configuration process.
  675.  
  676.   ╖  Keep your infrared devices together in a range below one meter and
  677.      an angle of 30 degree. There has to be a direct line of sight
  678.      between them. If this is not possible, you may use a mirror (an
  679.      unused M$ CD should work quite good).
  680.  
  681.   ╖  Add the following lines to your /etc/conf.modules file:
  682.  
  683.      ___________________________________________________________________
  684.      alias tty-ldisc-11 irtty          #
  685.      alias char-major-60 ircomm_tty    # if you want IrCOMM support
  686.      ___________________________________________________________________
  687.  
  688.  
  689.   I'm really not sure about those parameters anymore. There is conflict¡
  690.   ing information on Dag Brattli's pages and on the list. Though they
  691.   had to be used with former versions of the Linux/IrDA package, this
  692.   behaviour probably changed with the version for 2.2.x kernels.
  693.  
  694.   ╖  Have a look into the files in /etc/irda. They are similar to the
  695.      files in /etc/pcmcia. Edit /etc/irda/drivers to reflect your setup.
  696.      Most people will use irattach from that file. The files are:
  697.  
  698.      ___________________________________________________________________
  699.      Makefile
  700.      network*
  701.      network.redhat*
  702.      serial
  703.      drivers
  704.      network.opts
  705.      obex
  706.      printer
  707.      ___________________________________________________________________
  708.  
  709.  
  710.  
  711.   ╖  Run depmod -a.
  712.  
  713.  
  714.   5.2.  IrManager
  715.  
  716.   Dag Brattli wrote: " IrManager [...].is a user-space daemon that is
  717.   inspired and quite similar to the cardmgr used in the PCMCIA
  718.   distribution.
  719.  
  720.   The IrManager will receive events from the kernel level side of the
  721.   protocol stack. When the IrManager receives an event it can execute
  722.   shell commands and scripts, so I have added the /etc/irda directory
  723.   which will contain such scripts. [...]
  724.  
  725.   For example, if IrLMP discovers a remote device with IrLAN provider
  726.   capabilities and no local IrLAN client has registered, then IrLMP will
  727.   send an event to the IrManager and make it "modprobe" the module
  728.   required. [...]
  729.  
  730.   When application level clients are ready for communication and user-
  731.   space configuration, they can also notify IrManager about this, so
  732.   that it can execute the right script. For example IrLAN will send the
  733.   event EVENT_IRLAN_START when the data channel is ready for exchanging
  734.   Ethernet frames. When IrManager receives this event, it will execute
  735.   /etc/irda/network start <devname> to configure the network interface.
  736.   This network script is actually the same as used by the PCMCIA code
  737.   and since I'm using the Redhat variant of it, it will in turn execute
  738.   /sbin/ifup <devname>.
  739.  
  740.   So by using the IrManager, I "only" have to do this when I start the
  741.   stack:
  742.  
  743.   ______________________________________________________________________
  744.   irattach /dev/ttyS2 &
  745.   irmanager -d 1           # -d 1 means: start discovery process
  746.   ______________________________________________________________________
  747.  
  748.  
  749.   and then when my laptop discovers the IrLAN provider (HP Netbeamer in
  750.   my case) it will ask IrManager to load the module irlan_client. When
  751.   the connection is up and ready, it will ask it to execute
  752.   /etc/irda/network start eth0. When the connection is broken, it will
  753.   again ask it to take down the interface using /etc/irda/network stop
  754.   eth0.[...]
  755.  
  756.   That's all to get it working if you are using Redhat. If you are using
  757.   some other distribution which doesn't have /sbin/ifup, then you better
  758.   copy /etc/pcmcia/network.opts to /etc/irda/network.opts or configure
  759.   the file yourself.
  760.  
  761.   If you want to use the IrLAN server, you will still have to modprobe
  762.   irlan_server before you start the irmanager _without_ -d 1.
  763.  
  764.   And just like the cardmgr, you will (if you want to) get the beeps
  765.   when the connection is up and running and when it is disconnected!!!
  766.  
  767.   I hope that we can add such scripts for all the other clients/services
  768.   that need user level configuration. It would be really cool to have a
  769.   /etc/irda/printer script for configuring IrDA(TM) capable printers. So
  770.   if you get in range of an IrDA(TM) capable printer, then IrManager
  771.   should load the irlpt_client module, and also configure the other
  772.   stuff that needs to be done for using this printer.
  773.  
  774.   I also hope that we can use the config file for configuring IrDA(TM)
  775.   ports and device drivers. Something like:
  776.  
  777.   ______________________________________________________________________
  778.   Device Drivers
  779.     module "irtty" script="irattach /dev/ttyS2"
  780.     module "smc_ircc" irq=11 port=0x34f
  781.   ______________________________________________________________________
  782.  
  783.  
  784.   So that IrManager can load and start all these when it is executed. In
  785.   this way we would only have to start IrManager in
  786.   /etc/rc.d/init.d/irda and the rest would be plug and play. There would
  787.   be no need for manually starting programs and configuring devices.
  788.   When irmanager receives the following events for a device <dev> it
  789.   will currently do:
  790.  
  791.   EVENT_IRLAN_START, start and configure the device using /sbin/ifup
  792.   <dev>
  793.   EVENT_IRLAN_STOP, close the device using /sbin/ifdown <dev>
  794.  
  795.   This can however be easily changed by the user, if this is not what is
  796.   the prefered behaviour.
  797.  
  798.   5.3.  Low Level Drivers
  799.  
  800.   There are three sorts of low level drivers: SIR, dongle and FIR. If
  801.   the right driver is detected by the kernel you get a message like:
  802.  
  803.   ______________________________________________________________________
  804.   IrDA irda_device irda0 registered.
  805.   ______________________________________________________________________
  806.  
  807.  
  808.  
  809.  
  810.   5.3.1.  SIR
  811.  
  812.  
  813.   ╖  Try to find out which serial port is used by the IR device. You may
  814.      do so by watching the output of dmesg. If serial support is
  815.      modularized do an insmod serial first. Look for an entry like:
  816.  
  817.      ___________________________________________________________________
  818.      Serial driver version 4.25 with no serial options enabled
  819.      ttyS00 at 0x03f8 (irq = 4) is a 16550A     #first serial port /dev/ttyS0
  820.      ttyS01 at 0x3000 (irq = 10) is a 16550A    #e.g. infrared port
  821.      ttyS02 at 0x0300 (irq = 3) is a 16550A     #e.g. PCMCIA modem port
  822.      ___________________________________________________________________
  823.  
  824.  
  825.   If this is not the case, you either don't have infrared support
  826.   enabled in the BIOS or your infrared device is not detected by the
  827.   kernel. Currently I know only two laptop models with this effect, the
  828.   HP OmniBook 800 and the Toshiba Libretto models. I am not sure whether
  829.   PnP support effects the detection of the IR port. If you are unsure
  830.   try it out and let me know the results.
  831.  
  832.   ╖  In some situations you may have to use setserial /dev/ttyS<0-2>
  833.      port 0xNNNN irq M to set the values for your infrared serial port,
  834.      especially if the infrared port is a separate serial line. You
  835.      usually don't need to change the values! For further information
  836.      look into the FAQ section below.
  837.  
  838.   ╖  If you don't use kerneld or kmod insert the irda module with
  839.      modprobe irda.
  840.  
  841.   ╖  Do lsmod. It should show the modules irda and irtty now.
  842.  
  843.   ╖  A look into /var/log/messages should show the entry "Serial
  844.      connection established" now.
  845.  
  846.   ╖  Say irmanager -d1, which will start the necessary programs, such as
  847.      irattach.
  848.  
  849.   ╖  Give irattach some time, e.g. seven seconds, to detect other IR
  850.      devices. Then watch the output from the kernel that you will
  851.      hopefully get in /var/log/messages. It should look like the
  852.      following (I removed some lines, which were not related to
  853.      Linux/IrDA):
  854.  
  855.  
  856.  
  857.  
  858.  
  859.      Jan  2 12:57:26 japh kernel: ttyS00 at 0x03f8 (irq = 4) is a 16550A
  860.      Jan  2 12:57:26 japh kernel: ttyS02 at 0x03e8 (irq = 4) is a 16550A
  861.      Jan  2 12:57:26 japh kernel: Linux Support for the IrDA (tm) protocols (Dag Brattli)
  862.      Jan  2 12:59:09 japh syslog: executing: 'echo 1 > /proc/sys/net/irda/discovery'
  863.      Jan  2 12:59:09 japh syslog: Setting discovery to 1 exited with status 1
  864.      Jan  2 12:59:09 japh syslog: + 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
  865.      Jan  2 12:59:09 japh syslog: + 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
  866.      Jan  2 12:59:09 japh syslog: Serial connection established.
  867.      Jan  2 12:59:09 japh kernel: IrDA irda_device irda0 registered.
  868.      Jan  2 13:01:22 japh syslog: executing: './drivers start '
  869.      Jan  2 13:01:22 japh syslog: Serial connection established.
  870.      Jan  2 13:01:42 japh syslogd: Printing partial message
  871.      Jan  2 13:01:42 japh 0.1 Fri Jul 25 11:45:26 1997 Dag Brattli
  872.      Jan  2 13:02:49 japh kernel: IrDA Discovered: japh
  873.      Jan  2 13:02:49 japh kernel:     Services: Computer
  874.  
  875.  
  876.  
  877.  
  878.   5.3.2.  Dongle Connection - Infrared Adapters for the Serial Port
  879.  
  880.   The currently supported dongles are the Extended Systems Inc. ESI-9680
  881.   JetEye, the Tekram IRmate 210B, the ACTiSYS IR220L and 220L+, the
  882.   Greenwich GIrBIL.  dongle.
  883.  
  884.   Dag Brattli wrote (modified by wh): "To use dongles you have to do
  885.   something like this:
  886.  
  887.   ______________________________________________________________________
  888.   modprobe tekram         # or esi or actisys
  889.   irmanager -d 1          #
  890.   irattach -d tekram      # or -d esi or -d actisys
  891.   ______________________________________________________________________
  892.  
  893.  
  894.   As you can see, you must still use the -d option with irattach since
  895.   it is possible to have two serial ports using different dongles at the
  896.   same time (so the tty you are binding must know which dongle it is
  897.   supposed to use). So if you have two dongles and two serial ports, you
  898.   could do something like this:
  899.  
  900.   ______________________________________________________________________
  901.   modprobe tekram
  902.   modprobe esi
  903.   irattach /dev/ttyS0 -d esi &
  904.   irattach /dev/ttyS1 -d tekram &
  905.   ______________________________________________________________________
  906.  
  907.  
  908.   PS: I would not try to turn the two dongles against each other, since
  909.   I really don't know how the stack would react :-) ...  Since I don't
  910.   have any of these new ACTiSYS 220L+ dongles, I'm not able to test it.
  911.   Since the new dongle has support for one extra speed (38400bps), you
  912.   must specify the dongles differently with irattach so that the kernel
  913.   knows which dongle you are using (and what QoS can be used):
  914.  
  915.   ______________________________________________________________________
  916.   irattach /dev/ttyS0 -d actisys     # for the 220L dongle
  917.   irattach /dev/ttyS0 -d actisys+    # for the 220L+ dongle
  918.   ______________________________________________________________________
  919.  
  920.  
  921.   The current implementation of dongle support does not have any state
  922.   associated with it, so its not possible to use both ACTiSYS dongles
  923.   (220L and 220L+) at the same time (connected to two serial ports) for
  924.   now. If someone needs to be able to do so, please mail me (Dag
  925.   Brattli) and I will think about it!"
  926.  
  927.   Note: When I tried to use an infrared modem (Swissmod 56Ki,
  928.   manufactured by Telelink AG) connected to my laptop (IrDA works with
  929.   Window$95 only, due to non standard hardware) I had to remove the
  930.   infrared support in the BIOS to get it working!
  931.  
  932.  
  933.  
  934.   5.3.3.  Dongle Connection - Infrared Motherboard Adapter
  935.  
  936.   Support for the ACTiSYS IR2000 dongle has been implemented in a file
  937.   called pc87108 which you can either compile into the kernel or
  938.   insmod/modprobe to insert the module:
  939.  
  940.   ______________________________________________________________________
  941.   irmanager -d 1
  942.   modprobe pc87108
  943.   ______________________________________________________________________
  944.  
  945.  
  946.   or insert modprobe pc87108 into the /etc/irda/drivers file (I think).
  947.  
  948.  
  949.   5.3.4.  Fast InfraRed (FIR)
  950.  
  951.   The IrDA(TM) standard knows three kinds of speeds:
  952.  
  953.  
  954.   1. SIR = Standard IrDA, up to 115kbps IrDA,
  955.  
  956.   2. MIR = Medium Speed IrDA,
  957.  
  958.   3. FIR = Fast IrDA (4Mbps),
  959.  
  960.   4. VFIR = Very Fast IrDA(16Mbps), seems to become a future standard
  961.  
  962.      Up to 115.200bps many infrared controllers work like a serial port.
  963.      Up to 4Mbps they work in "FIR mode". Currently there are two chips
  964.      supported: NationalSemiConductor NSC PC87108 e.g. used in IBM
  965.      Thinkpad 560X and Winbond W83977AF (IR) FIR chip e.g. used in the
  966.      Corel Netwinder PC. You may start the FIR service by loading the
  967.      according module. Linux/IrDA will probe your hardware then.
  968.  
  969.  
  970.  
  971.   6.  Specific Connections and Protocols
  972.  
  973.  
  974.   6.1.  Printer Connection - IrLPT
  975.  
  976.   IrLPT is under heavy construction at the moment. The client side
  977.   should work, but the server side may crash.
  978.  
  979.   ╖  Remove any current print jobs with lprm "*".
  980.  
  981.   ╖  If you don't use kerneld do a modprobe irtty.
  982.  
  983.   ╖  Do a modprobe irlpt_client.
  984.  
  985.   ╖  Check the modules with lsmod. This should show: irda, irtty and
  986.      irlpt_client
  987.  
  988.   ╖  cat /proc/misc. Gives you the minor device-number . It is the first
  989.      number in the line with irlpt0.
  990.  
  991.   ╖  su to root, and do mknod /dev/irlpt0 c 10 <minor device-number>.
  992.      Note: Something like ./MAKEDEV irlpt0 is not possible yet. But
  993.      maybe load_misc irlpt works, though I couldn't test this yet.
  994.  
  995.   ╖  Try to write a small file to /dev/irlpt0 by cat FILE >/dev/irlpt0
  996.      (do not wonder about a bad format this is just a first check). For
  997.      me this didn't always work, but I couldn't find out why not.
  998.  
  999.   ╖  The better way is to change your /etc/printcap to use /dev/irlpt0
  1000.      in addition or instead of /dev/lp1. See Printing-HOWTO for detailed
  1001.      information.
  1002.  
  1003.   ╖  For easy printer setup you may use a printing software like
  1004.      APSFILTER, MagicFilter EZ-Magic (with RedHat there should also be a
  1005.      GUI for this purpose). Make a copy of /etc/printcap before.
  1006.  
  1007.   ╖  Example for APSFILTER with a HP 6P (non-postscript, HP 6MP is with
  1008.      postscript). The two relevant questions are:
  1009.  
  1010.      "Do you have a (s)serial or a (p)arallel printer interface?"
  1011.      Answer "p"
  1012.  
  1013.      "What's the device name for your parallel printer interface?"
  1014.      Answer "/dev/irlpt0"
  1015.  
  1016.  
  1017.   ╖  Restart the print daemon with kill -HUP <PID of lpd>. If you use
  1018.      another print daemon choose the according command.
  1019.  
  1020.   ╖  Watch whether the connection indicator of your printer shows
  1021.      activity, e.g. the green light above the IR port of a HP 6P/MP
  1022.      comes on (lower left hand corner, near the paper tray).
  1023.  
  1024.   ╖  I couldn't get to manage printjobs larger than approximately 10
  1025.      pages yet. But maybe this depends on the memory size of my
  1026.      hardware, which is 16MB. There seems to be a problem with the
  1027.      software too, Thomas Davis wrote: "I will ... limit the irlpt, so
  1028.      it won't eat memory when you send a large print file.".
  1029.  
  1030.   Takahide Higuchi reported: " I have been debugging IrCOMM with a
  1031.   printer ( Canon BJC-80v ) with IrDA port and IrCOMM protocol (not
  1032.   IrLPT). I can print a short e-mail text though, it easily causes dead
  1033.   lock when I try to print a postscript with gs."
  1034.  
  1035.   From the page of Thomas Davis http://www.jps.net/tadavis/irda : To use
  1036.   the IrLPT server, you need to perform the following steps:
  1037.  
  1038.   ______________________________________________________________________
  1039.   /sbin/insmod irlpt_server
  1040.   /sbin/mknod /dev/irlptd c 10 `grep irlptd /proc/misc|cut -f 1`
  1041.   ______________________________________________________________________
  1042.  
  1043.  
  1044.   At this point, the IrLPT server is ready to recieve print jobs; now;
  1045.   all you need is this simple shell script
  1046.  
  1047.   ______________________________________________________________________
  1048.   #/bin/sh
  1049.   #
  1050.   while (true)
  1051.   do
  1052.   cat /dev/irlptd | lpr
  1053.   done
  1054.   ______________________________________________________________________
  1055.  
  1056.  
  1057.   6.2.  LAN Connection - IrLAN
  1058.  
  1059.  
  1060.   ╖  You might connect your Linux box using IrLAN to another network
  1061.      device such as a Linux box with IrLAn, a HP NetBeamer or a
  1062.      Window$95 box with Inrared Network Device support.
  1063.  
  1064.  
  1065.   ╖  Dag Brattli wrote: "If you want to use IrLAN you must modprobe
  1066.      irlan_client before ifup eth0. I had to remove the request_module()
  1067.      stuff since that needed a process context which I don't have in the
  1068.      kernel. "
  1069.  
  1070.  
  1071.   ╖  Run ifconfig eth0 up <ip_address> netmask <ip_netmask> to configure
  1072.      it with IP-address and other parameters. If the protocol is still
  1073.      running you may start communicating. It is possible to use RedHat's
  1074.      netcfg to do this, since it makes it very easy. Next time you only
  1075.      need to do /sbin/ifup eth0.
  1076.  
  1077.  
  1078.   ╖  Test the network device by pinging to it. For detailed information
  1079.      about further setup see the NET3-HOWTO.
  1080.  
  1081.  
  1082.   ╖  Do not forget to add a route, e.g. route add default gw
  1083.      <ip_gateway> or route add -host <target host> dev eth0.
  1084.  
  1085.  
  1086.   ╖  Ping to another IP now, to test the connection.
  1087.  
  1088.  
  1089.   ╖  For testing reasons I recommend only to use one laptop and one IR
  1090.      ethernet device in the same room. If there are problems look which
  1091.      different modes for the IR ethernet device are possible. Try them.
  1092.  
  1093.   For an ACTiSYS FIR board and dongle you may do:
  1094.  
  1095.  
  1096.   ______________________________________________________________________
  1097.   irmanager -d1
  1098.   /sbin/modprobe pc87108  # remove irattach from /etc/irda/drivers, or
  1099.                           # substitute irattach with the modprobe!
  1100.   ______________________________________________________________________
  1101.  
  1102.  
  1103.  
  1104.   On machine 1:
  1105.  
  1106.   ______________________________________________________________________
  1107.   modprobe irlan_client # not really necessary since irmanager should do this!
  1108.   ______________________________________________________________________
  1109.  
  1110.  
  1111.   On machine 2 (if you don't have an access-point)
  1112.  
  1113.   ______________________________________________________________________
  1114.   modprobe irlan_server
  1115.   ______________________________________________________________________
  1116.  
  1117.  
  1118.  
  1119.   Do not compile irlan_server into the kernel, since it currently does
  1120.   not like that! You should have configured /etc/sysconfig/network-
  1121.   scripts/ircfg-eth0 with a proper ad-hoc network if you are using two
  1122.   machines. If you have an access-point, then the normal setup should be
  1123.   fine.
  1124.  
  1125.   Notice that in the latest patch (2.2.0-irda1) irlan_client will call
  1126.   the device irlan0 by default, but you can change this by giving eth=1
  1127.   as an option to irlan_client (modprobe irlan_client eth=1 or options
  1128.   irlan_client eth=1 in /etc/conf.modules).  The next release of IrLAN
  1129.   will be only one module, so you don't need to think about if you need
  1130.   to have the client and/or the server installed.
  1131.  
  1132.   It's possible to do ifconfig irlan0 -broadcast to stop the AP from
  1133.   flooding you with broadcast frames! That can be a problem if you are
  1134.   connected to a very large Ethernet segment. The only problem is that
  1135.   your machine will then have to initiate all communications and can
  1136.   therefore not function as a server (well, you could probably make a
  1137.   stationary machine somewhere answer ARP requestes on your behalf).
  1138.  
  1139.  
  1140.  
  1141.   6.3.  Palm III Connection - IrOBEX
  1142.  
  1143.   The IrOBEX stuff seems under rapidly improving changing development.
  1144.   So the applications change too. Therefore I just can't give quite
  1145.   exact information. Please see also the report by Dag Brattli at
  1146.   http://www.cdpubs.com/hhsys/archives/66/10brattl.pdf .
  1147.  
  1148.   The /etc/irda script is really only good for configuration of the
  1149.   devices, making the right mknod for /dev/irobex etc, not for starting
  1150.   applications.
  1151.  
  1152.  
  1153.   ╖  Palm III -> Linux
  1154.  
  1155.      1) Terminal 1> irattach /dev/ttyS<x>
  1156.  
  1157.      2) Terminal 2> load_misc irobex
  1158.  
  1159.      3) Terminal 3> Start irobex_app in the irobex directory. I suppose
  1160.      irobex_app is not working anymore. Now you should use the
  1161.      gtk/irobex program instead! You need to have the gtk library
  1162.      installed to use this program. A command line frontend should be
  1163.      programmed by someone. Maybe the programm to use is irobex_receive.
  1164.  
  1165.      4) Beam something from your Palm III.
  1166.  
  1167.      5) If everything is successful, you can take a look at a new file
  1168.      that has been created in the directory in which you started
  1169.      irobex_app (or in /tmp for irobex_receive). This file will be named
  1170.      after the object you just transfered.
  1171.  
  1172.  
  1173.   ╖  Linux -> Palm III
  1174.  
  1175.      This should also be possible, but I don't have any further
  1176.      information right now.
  1177.  
  1178.  
  1179.   ╖  PPP
  1180.  
  1181.      Rui Oliveira wrote: "This is just to let you know that with the
  1182.      latest IrCOMM patch (050998) of Takahide Higuchi, I managed to
  1183.      HotSync and establish a PPP connection between my Palm III and my
  1184.      Linux box. I'm using IRLink (from IsComplete) to redirect the
  1185.      serial port to ir. Communication with pilot-xfer works flawlessly.
  1186.      Although I was able to establish a PPP connection, I'm still unable
  1187.      to fetch mail and do Web browsing. This is probably due to
  1188.      connection time-outs. I am checking this out.". Please see the PPP-
  1189.      HOWTO for further information about PPP.
  1190.  
  1191.   ╖  IrCOMM
  1192.  
  1193.      Jon Howell wrote: "I thought I'd try IrCOMM, since the Palm III can
  1194.      be made to reroute serial info to the IR port (using IrLink from
  1195.      IS/Complete, available at www.palmcentral.com), and then you can
  1196.      run a terminal program (like "PalmTelnet" in serial mode) over
  1197.      IrDA. I can only assume it's using the IrCOMM protocol. I've tested
  1198.      this configuration between two palm pilots, but of course I can't
  1199.      know what the protocol running over the IR is.
  1200.  
  1201.      I couldn't figure out what to do with the IrCOMM code. I see from
  1202.      the status page that there's "Client support (should start to get
  1203.      usable), " but I can't find any docs that indicate how it has to be
  1204.      used. "
  1205.  
  1206.  
  1207.  
  1208.   6.4.  Cellular Phone Connection
  1209.  
  1210.   As far as I know some cellular phones use the IrCOMM standard, e.g.
  1211.   Ericsson SH888 and NOKIA 8110. Benny Amorsen wrote: "I have used
  1212.   minicom with the SH888, and I actually got it to establish a
  1213.   connection in minicom (CONNECT 9600...). I could not get it to do
  1214.   anything after that, and hanging up by dropping carrier does not work.
  1215.   +++ worked, so I could hang up that way. I would say that the SH888 is
  1216.   very close to working with linux-irda., and actually it might work in
  1217.   2.0.x kernels. I only use 2.1 kernels.".
  1218.  
  1219.   Maybe other cellular phones use the IrOBEX standard, see the Palm III
  1220.   section for information about setting up a connection.
  1221.  
  1222.   Carlos Vidal wrote: Correct me if I'm wrong, but it seems to me that
  1223.   Nokia telephones do not contain a genuine hardware modem, but
  1224.   something which is similar in principle to WinModems for PC. Whenever
  1225.   Nokia writes about modem communication, they use the name "Windows
  1226.   software modem" (or something similar). Which is actually backed up by
  1227.   the need to use special Nokia software for Windows (called Nokia
  1228.   Cellular Data Suite).
  1229.  
  1230.   Joonas Lehtinen wrote: This is true with 61xx models. Models: 8810,
  1231.   9000(i) and 9110 should work fine. (They have inbuilt modem). My N9000
  1232.   reports IrCOMM with linux.
  1233.  
  1234.   To start a communication session with /dev/irnine, for instance, say:
  1235.  
  1236.   ______________________________________________________________________
  1237.   dip -t
  1238.   > port irnine
  1239.   > term
  1240.   ______________________________________________________________________
  1241.  
  1242.  
  1243.   Probably you may use cu instead of dip, too. There are also reports
  1244.   about some efforts with the Ericsson GF768 and IR Modem DI 27.
  1245.  
  1246.   Benny Amorsen wrote: The SH888 emulates an IRDA-port when you connect
  1247.   it using the serial cable. Why someone would think up something weird
  1248.   like that is beyond me, but that is the way you get it to work in
  1249.   Windows. Not that I ever managed to make it work in Windows, though.
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.   6.5.  Digital Camera Connection
  1256.  
  1257.   Markus Schill wrote: "Great that there are also other people who are
  1258.   interested in using the SONY DSC-F1 IR adapter under linux. Up to now
  1259.   I have only toyed around with the linux-irda software and the serial
  1260.   IR adapter from PuMa Technologies that came with the camera. This is
  1261.   the status. I am using linux 2.0.33 and the latest linux-irda...  If I
  1262.   use:
  1263.  
  1264.   ______________________________________________________________________
  1265.   insmod irda
  1266.   insmod irtty
  1267.   irattach /dev/cua0
  1268.   ______________________________________________________________________
  1269.  
  1270.  
  1271.   the adapter starts talking to the camera. /var/log/messages says that
  1272.   SONY-DSC-F1 was found, but no service is started. (Please note, this
  1273.   probably doesn't apply to the 2.2.x kernel versions of Linux/IrDA,
  1274.   wh).
  1275.  
  1276.   There are two programs for linux available that can be used for the
  1277.   communication with the camera via cable: (1) chotplay and (2)
  1278.   stillgrab. They both take a tty as commandline option, so I guess that
  1279.   they should work if the irtty layer of the protocol stack works
  1280.   correctly ... I have not looked at anything in the linux-irda code,
  1281.   yet!). I am not sure whether I understand the stack but shouldn't the
  1282.   irtty make the thing look like a normal tty? What service should be
  1283.   started. "
  1284.  
  1285.   Dag Brattli wrote: "I'm not sure which application level protocol the
  1286.   camera uses, but it is possible that it implements the IrDA(TM)
  1287.   Infrared Transfer Picture Specification (IrTran-P). If you take a look
  1288.   at http://www.irda.org/standards/pubs/IrTran-P_10.pdf, you will see
  1289.   that it is a protocol which is implemented above IrCOMM (not IrTTY!).
  1290.   IrTTY is something we use just to be able to talk to the Linux serial
  1291.   driver. "
  1292.  
  1293.  
  1294.   6.6.  Window$95 and Linux/IrDA
  1295.  
  1296.   Introduction
  1297.  
  1298.   Why this? Unfortunately Linux users are not always supported with the
  1299.   necessary hardware information. Sometimes it is possible to look at
  1300.   this informations in Window$95.
  1301.  
  1302.   Where to get it from? At
  1303.   http://www.microsoft.com/windows95/info/irda.htm you will find a
  1304.   support pack "Infrared Transfer 2.0". It is a self-extracting archive
  1305.   W95IR.EXE with 331KB.
  1306.  
  1307.   With some machines e.g. a HP Omnibook 800 it is necessary to use a
  1308.   vendor specific version of this package (e.g. for the HP Omnibook 800
  1309.   you may find it on the recovery CD).
  1310.  
  1311.   Especially the ..\windows\inf\*.inf files and the device manager are
  1312.   of interest to look for configuration details.
  1313.  
  1314.   As far as I know Window$NT doesn't support IrDA(TM). About Window$98 I
  1315.   have heard there is no IrDA(TM) support yet.
  1316.  
  1317.   There are also some non M$ products available. Note: Some of them use
  1318.   proprietary infrared protocols:
  1319.  
  1320.  
  1321.   ╖  CounterPoint: QuickBeam 1.15
  1322.  
  1323.   ╖  LapLink 7.5
  1324.  
  1325.   ╖  CarbonCopy 32 4.0
  1326.  
  1327.   ╖  pc ANYWHERE 7.5
  1328.  
  1329.   ╖  Puma Technology: TRANXIT pro 4.0
  1330.  
  1331.   Connection between Linux/IrDA and Window$95 IrDA(TM)
  1332.  
  1333.   I suppose there are three ways to connect Linux/IrDA and Window$95:
  1334.  
  1335.   A network connection between two PC's. If you have set up Infrared
  1336.   Transfer 2.0, you will find an IrDA(TM) network device in the <Network
  1337.   Device Section>. But I couldn't get a working connection yet.
  1338.  
  1339.   Maybe it is also possible to use the IrOBEX protocol. But I don't know
  1340.   which software to use and where to get it. I supposed the necessary
  1341.   software comes with a Palm III, but this seems not to be true.
  1342.  
  1343.   Takahide Higuchi <thiguchi@pluto.dti.ne.jp> provided IrCOMM support.
  1344.   From his page at http://www.pluto.dti.ne.jp/~thiguchi/irda/ I have
  1345.   taken the following description (I have modified it at little): "With
  1346.   IrCOMM support you can send or receive short messages between a linux
  1347.   box and a terminal program on a win95 laptop! Please add this line to
  1348.   /etc/conf.modules:
  1349.  
  1350.   ______________________________________________________________________
  1351.   alias char-major-60 ircomm_tty
  1352.   ______________________________________________________________________
  1353.  
  1354.  
  1355.   Next, make a device file mknod /dev/irnine c 60 64. Now Linux/IrDA
  1356.   services can be started as usual with irattach /dev/ttyS? &.
  1357.   /dev/irnine can be used as a serial device. ircomm and ircomm_tty mod¡
  1358.   ules will be loaded automatically by kerneld/kmod when a program uses
  1359.   /dev/irnine. NOTE: I think "setserial" utility will not work on
  1360.   /dev/irnine. Tips:
  1361.  
  1362.   ╖  To accept login via IrCOMM, use this as a root: First, please
  1363.      enable IrDA and IrCOMM. Then edit /etc/inittab and add a line like
  1364.      this:
  1365.  
  1366.      ___________________________________________________________________
  1367.      T1:23:respawn:/sbin/getty -L -w irnine 38400 vt100
  1368.      ___________________________________________________________________
  1369.  
  1370.  
  1371.   and do this as a root: init q. And init will start waiting for incom¡
  1372.   ing IrCOMM connection. You will see your favorite Linux's login prompt
  1373.   from terminal emulator on Win95!
  1374.  
  1375.   ╖  If you try pppd, please consider the -crtscts option to disable
  1376.      flow-control. I implemented some flow-control emulation but it is
  1377.      not tested.
  1378.  
  1379.   ╖  Now my patch reports what kind of features is needed by the peer
  1380.      infrared device. Messages like this will be written in syslog:
  1381.  
  1382.      Sep 4 10:01:02 monolith kernel: parse_control:instruction(0x12)
  1383.      Sep 4 10:01:02 monolith kernel: data:03
  1384.  
  1385.  
  1386.  
  1387.   ╖  I especially want to know what message SH888 (or other infrared
  1388.      devices except for win95 PC) says. So please mail me your syslog
  1389.      generated during IrCOMM connection! If you have a copy of the
  1390.      IrCOMM specification written by IrDA(TM), please see page 34 or 38,
  1391.      and you will know what these messages mean."
  1392.  
  1393.  
  1394.   6.7.  Linux to Linux Connection
  1395.  
  1396.  
  1397.   6.7.1.  Connection Methods
  1398.  
  1399.   There should be three ways to get two Linux machines connected via
  1400.   Linux/IrDA.
  1401.  
  1402.   ╖  Dag Brattli wrote about the IrOBEX support: "The awakened reader
  1403.      may wonder what prevents the beaming of files from Linux to Linux?
  1404.      Well, nothing!! (but I haven't tried that yet). This means that we
  1405.      now have a "simple" way of beaming files between Linux laptops. I
  1406.      think that this may be the "killer app" we all have been waiting
  1407.      for!" Try to "load_misc irobex at both ends, and then try
  1408.      iroabex_app get on one of the machines and irobex put <file> on the
  1409.      other.".
  1410.  
  1411.   ╖  Via Linux/IrDA network connection. I suppose you have to load the
  1412.      module irlan_client at one machine and irlan_server at the other
  1413.      one.
  1414.  
  1415.   ╖  With IrCOMM support, in other words over a serial line, which could
  1416.      mean minicom, pppd, etc.
  1417.  
  1418.  
  1419.   6.7.2.  Compression
  1420.  
  1421.   Please note this feature is still quite experimental! Dag Brattli
  1422.   wrote: "Just wanted you to know I have just added COMPRESSION support
  1423.   to IrLAP! As you may know, this is _not_ part of the IrDA(TM)
  1424.   standard, but Linux can now negotiate with its peer and check if it
  1425.   has the same compression capabilities). So obviously if you are
  1426.   talking to Win95, Palm III or whatever, you will _not_ get
  1427.   compression!!! This is something which is exclusive for Linux as far
  1428.   as I know! The IrDA(TM) standard says that devices should ignore
  1429.   unknown field in the negotiation header, so we are still "compatible"
  1430.   with IrDA(TM) (have just borrowed an unused header value).
  1431.  
  1432.   If you want to try using the compression code (Linux <-> Linux) you
  1433.   will have to insert the irda_deflate module some time before you
  1434.   actually make the connection. I do it before irattach.
  1435.  
  1436.   The compression standard I have added is the deflate format used by
  1437.   the zlib library which is described by RFCs (Request for Comments)
  1438.   1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib
  1439.   format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format).
  1440.  
  1441.   The compression interface is similar to PPP, so you can add as many
  1442.   different compressors as you want. Currently there is only support for
  1443.   GZIP, but BSD compression will be added later."
  1444.  
  1445.  
  1446.  
  1447.   6.8.  Multiple Instances
  1448.  
  1449.   Dag Brattli wrote: "The IrLAP layer has been enhanced to allow more
  1450.   than one instance (so I can use IrLAN on my built-in ir-port, and
  1451.   communicate with the Pilot over the IrDA dongle at the same time) ...
  1452.   So how do you make two Linux/IrDA connections? Well, you just fire up
  1453.   irattach for each of the IR ports you have like this: "
  1454.  
  1455.   ______________________________________________________________________
  1456.   irattach /dev/ttyS0 &    (my ESI dongle)
  1457.   irattach /dev/ttyS2 &    (my builtin IrDA port)
  1458.  
  1459.   insmod irlan_client
  1460.   insmod irobex
  1461.   ______________________________________________________________________
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.   7.  Hardware Supported by Linux/IrDA
  1468.  
  1469.  
  1470.   7.1.  Obtaining Information about the Infrared Port in Laptops
  1471.  
  1472.   To get the IrDA port of your laptop working with Linux/IrDA you may
  1473.   use StandardInfraRed (SIR) or FastInfraRed (FIR).
  1474.  
  1475.   7.1.1.  SIR
  1476.  
  1477.   Up to 115.200bps the infrared port emulates a serial port like the
  1478.   16550A UART. This will be detected by the kernel serial driver at boot
  1479.   time or when you load the serial module. If infrared support is
  1480.   enabled in the BIOS, for most laptops you will get a kernel message
  1481.   like:
  1482.  
  1483.   ______________________________________________________________________
  1484.   Serial driver version 4.25 with no serial options enabled
  1485.   ttyS00 at 0x03f8 (irq = 4) is a 16550A     #first serial port /dev/ttyS0
  1486.   ttyS01 at 0x3000 (irq = 10) is a 16550A    #e.g. infrared port
  1487.   ttyS02 at 0x0300 (irq = 3) is a 16550A     #e.g. PCMCIA modem port
  1488.   ______________________________________________________________________
  1489.  
  1490.  
  1491.  
  1492.   7.1.2.  FIR
  1493.  
  1494.   If you want to use up to 4Mbps, your machine has to be equipped with a
  1495.   certain FIR chip. You need a certain Linux/IrDA driver to support this
  1496.   chip. Therefore you need exact information about your FIR chip. You
  1497.   may get this information in one of the following ways:
  1498.  
  1499.  
  1500.   1. Read the specification of your machine, though it is very rare that
  1501.      you will find enough information there.
  1502.  
  1503.   2. Do a cat /proc/pci, though often the PCI information is incomplete.
  1504.      You may find the latest information about PCI device and vendor
  1505.      numbers at the page of Craig Hart
  1506.      http://members.hyperlink.net.au/~chart . From kernel 2.1.82 on, you
  1507.      may use lspci from the pci-utils package, too. The according files
  1508.      for 2.2.x kernels are in /proc/bus/pci.
  1509.  
  1510.   3. If you have installed the Linux/IrDA software load the FIR modules
  1511.      and watch the output of dmesg, wether FIR is detected or not.
  1512.  
  1513.   4. Though I didn't use them for this purpose yet the isapnp tools,
  1514.      could be useful.
  1515.  
  1516.   5. Another way how to figure it out explained by Thomas Davis: "Dig
  1517.      through the FTP site (of the vendor, wh), find the FIR drivers, and
  1518.      they have (for a SMC chip, wh):
  1519.      ___________________________________________________________________
  1520.      -rw-rw-r--   1 ratbert  ratbert       743 Apr  3  1997 smcirlap.inf
  1521.      -rw-rw-r--   1 ratbert  ratbert     17021 Mar 24  1997 smcirlap.vxd
  1522.      -rw-rw-r--   1 ratbert  ratbert      1903 Jul 18  1997 smcser.inf
  1523.      -rw-rw-r--   1 ratbert  ratbert     31350 Jun  7  1997 smcser.vxd
  1524.      ___________________________________________________________________
  1525.  
  1526.  
  1527.   If in doubt, always look for the .inf/.vxd drivers for Win95; Win95
  1528.   doesn't ship with _ANY_ FIR drivers. (they are all third party, mostly
  1529.   from Counterpoint, who was assimilated by ESI)."
  1530.  
  1531.   6. Use the DOS tool CTPCI330.EXE provided in ZIP format by the german
  1532.      computer magazine CT  http://www.heise.de . The information
  1533.      provided by this program is sometimes better than with the Linux
  1534.      tools.
  1535.  
  1536.   7. There is also a small DOS utility made by SMC, called "FindChip".
  1537.      The package also includes a "FirSetup" utility that is supposed to
  1538.      be able to set all values except the chip address. Look at
  1539.      http://www.smsc.com/ftppub/chips/appnote/ir_utils.zip
  1540.  
  1541.      Warning: The package is not intended for the end user, and some of
  1542.      the utilities could be harmful. The only documentation in the
  1543.      package is in M$ Word format. Linux users may read this with
  1544.      catdoc, available at http://www.fe.msk.ru/~vitus/catdoc/ .
  1545.  
  1546.   8. Use the Device Manager of Window$95/98/NT.
  1547.  
  1548.   9. You may also use the hardware overviews mentioned below.
  1549.  
  1550.  
  1551.   7.2.  Hardware Overviews
  1552.  
  1553.   There are some overviews about Linux and infrared capable devices in
  1554.   the WWW:
  1555.  
  1556.   ╖  The Linux/IrDA Project - Hardware Survey at
  1557.      http://www.cs.uit.no/~dagb/irda/hardware.html
  1558.  
  1559.   ╖  Takahide Higuchi at
  1560.      http://www.pluto.dti.ne.jp/~thiguchi/ir/product.html.This page is
  1561.      in japanese.
  1562.  
  1563.   ╖  I have also set up a hardware overview at
  1564.      http://www.snafu.de/~wehe/index_li.html. This list also contains
  1565.      information about infrared capable devices which are not mentioned
  1566.      here (mice, printers, remote control, transceivers, etc.).
  1567.  
  1568.      To make this hardware overview list more valuable it is necessary
  1569.      to collect more information about the infrared devices in different
  1570.      hardware. You can help by sending me a short e-mail containing the
  1571.      exact name of the hardware you have and which type of infrared
  1572.      controller is used.
  1573.  
  1574.      Please let me also know how well Linux/IrDA worked, at which tty,
  1575.      port and interrupt it works and the corresponding infrared device
  1576.      (e.g. printer, cellular phone) you use.
  1577.  
  1578.      You can also help by contributing detailed technological
  1579.      information about some infrared devices, which is necessary to
  1580.      develope an according driver for Linux.
  1581.  
  1582.  
  1583.  
  1584.  
  1585.   8.  GUI
  1586.  
  1587.   If you want to try out a little GUI, you can try to run ircp.pl. You
  1588.   will need the Perl-GTK+ module ( http://www.gnome.org) to make it run.
  1589.   The GUI is far from finished, so don't expect too much :-)
  1590.  
  1591.  
  1592.   9.  Power Saving
  1593.  
  1594.   In the specifications of my HP OmniBook 800 it is recommended to turn
  1595.   off the IR port, if it is not in use, because it may consume up to 10
  1596.   percent of the battery time.
  1597.  
  1598.   If necessary, you may also try to disable the Fast RRs feature in the
  1599.   IrDA section of the kernel. This option will give you much better
  1600.   latencies but will consume more power.
  1601.  
  1602.  
  1603.   10.  Troubleshooting, Mailing List
  1604.  
  1605.  
  1606.   10.1.  General Information
  1607.  
  1608.   If you encounter problems. Try the following:
  1609.  
  1610.  
  1611.   ╖  Read the FAQ section below.
  1612.  
  1613.   ╖  Look at /var/log/messages and/or /var/log/kern.
  1614.  
  1615.   ╖  Do a dmesg.
  1616.  
  1617.   ╖  Look at the different files in /proc/irda.
  1618.  
  1619.   ╖  Look at the mailing list archiv at
  1620.      http://www.ita.chalmers.se/~svinto/hypermail/irda/, whether your
  1621.      problem is already known.
  1622.  
  1623.   ╖  Ask in the Linux/IrDA mailing list. To join the Linux-IrDA mailing
  1624.      list, send a mail to linux-irda-request@list.uit.no with
  1625.      "subscribe" in the email body. Use linux-irda@list.uit.no to post a
  1626.      message. You are welcome to use this mailing list for posting
  1627.      questions, answers, bug-reports, patches, suggestions and comments.
  1628.      To avoid spam, the list is now moderated, so there may be some time
  1629.      before your posting is distributed to the other list members.
  1630.  
  1631.  
  1632.   10.2.  Troubleshooting Techniques
  1633.  
  1634.   Although I'm not much of a hacker I collected some tricks to track
  1635.   errors or bugs in the Linux/IrDA software.
  1636.  
  1637.   ╖  You may set the debug level in /proc/sys/net/irda/debug to 1, 2, 3,
  1638.      4.
  1639.  
  1640.   ╖  Use the files in /proc/sys/net/irda to try different parameters
  1641.      like echo 0 > /proc/sys/net/irda/discovery.
  1642.  
  1643.      The /proc/*/irda files are:
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.      ___________________________________________________________________
  1652.      root@duckman:~# ls /proc/sys/net/irda/* /proc/net/irda/*
  1653.      /proc/net/irda/discovery        /proc/net/irda/irlmp            /proc/sys/net/irda/devname
  1654.      /proc/net/irda/irda_device      /proc/net/irda/irttp            /proc/sys/net/irda/discovery
  1655.      /proc/net/irda/irias            /proc/sys/net/irda/compression
  1656.      /proc/net/irda/irlap            /proc/sys/net/irda/debug
  1657.      ___________________________________________________________________
  1658.  
  1659.  
  1660.  
  1661.   ╖  It is also possible to debug the code. But I don't know how to do
  1662.      this. If you want to use SKB debug code, you may edit irda.h and
  1663.      change /include/linux/skbuff.h (see revision history of snapshot
  1664.      10-2-98).
  1665.  
  1666.   ╖  For problems with the irda module a utility from the modules
  1667.      package kdstat might be helpful. But I was not able to try this.
  1668.  
  1669.   ╖  "You can now alter the number of discovery packets used (1, 6, 8 or
  1670.      16) and the timeout between sending them (2-8 * 10 ms) in
  1671.      /proc/sys/net/irda. Please experiment if you have problems
  1672.      discovering your device. My Palm III seems to like 16
  1673.      discovery_slots and 8 (*10 ms) for slot_timeout. " ... "The
  1674.      absolute minimum for reliable discovery of the IR-610 seems to be
  1675.      9."
  1676.  
  1677.   ╖  If anybody gets a kernel Oops, then please feed it to the
  1678.      ../linux/scripts/ksymoops/ksymoops program, so that we can find out
  1679.      where it went wrong. Just cut out the Oops lines from the syslog,
  1680.      save them to a file, and then run ksymoops <file>
  1681.  
  1682.   ╖  Dag Brattli wrote: I found out that the cs4232 sound card was
  1683.      giving me several hundred interrupts per second! I removed the
  1684.      sound stuff from my kernel, and the machine is now generally about
  1685.      4 times faster!
  1686.  
  1687.      Linux/IrDA may get problems if you are running the esound server
  1688.      (esd) on your machine. Both my machines, a 166Mhz Pentium laptop
  1689.      and a 200Mhz Pentium Pro cannot run Linux/IrDA when esd is running.
  1690.      The reason is that esd makes the soundcard give interrups over 300
  1691.      times/second which makes the serial driver overrun when receiving.
  1692.      This is because the serial driver now uses slow interrupts in
  1693.      Linux-2.2 (everything is slow interrupts in 2.2), so the interrupt-
  1694.      handler schedules on its way out. The good thing about slow
  1695.      interrupts is that packets are delivered much faster, since you
  1696.      don't need to wait for the next timer-tick. The only exception for
  1697.      this is the pc87108 driver which works fine since it uses DMA and
  1698.      will only give a couple of interrupts per packet.
  1699.  
  1700.   11.  Known Bugs
  1701.  
  1702.   If you find a bug, please send a bug report to the mailing list,
  1703.   including dmesg output, and which Linux version, and hardware you are
  1704.   using. Thank you!
  1705.  
  1706.   Sometimes IrCOMM fails to connect (especially when both devices
  1707.   discover each other. You can disable discovering with echo 0
  1708.   >/proc/sys/net/irda/discovery)
  1709.  
  1710.   A CR (carriage return) character cannot be transfered between two
  1711.   linux boxes via IrCOMM with cat file >/dev/irnine and cat /dev/irnine.
  1712.   It causes a strange thing and freezes your Linux box.  Compiling the
  1713.   pc87108 device driver non modular crashes the kernel on boot.
  1714.   Temporary solution: compile the driver as a module
  1715.  
  1716.  
  1717.   IrOBEX may eat some data on receive. The bug is most probably in the
  1718.   user-space side of IrOBEX.
  1719.  
  1720.  
  1721.   12.  FAQ
  1722.  
  1723.  
  1724.   ╖  Q1 - Question: I do not know anything about ports and irqs. What
  1725.      should I do?
  1726.  
  1727.   ╖  Answer:
  1728.  
  1729.  
  1730.      PART A: Hardware settings
  1731.  
  1732.      - 1  Have a look at your hardware specs!!! If not available look at
  1733.      the support page of your vendor, or contact the support hotline.
  1734.      You might also find the information in one of the hardware
  1735.      overviews mentioned above.
  1736.  
  1737.      - 2  Use a current BIOS. Usually available at the support page of
  1738.      your vendor.
  1739.  
  1740.      - 3  Try setserial /dev/ttyS? -g -a | egrep 16550A. One of the
  1741.      shown devices is probably the one you are looking for. Usually it
  1742.      is the second one, but with no guarantee.
  1743.  
  1744.      - 4  Note: What seems like an UART is physically the IrDA
  1745.      controller. For my HP Omnibook 800 this is the VLSI VL82C147 PCI -
  1746.      IrDA controller. These controllers should behave up to 115 200 bps
  1747.      like UART's. But sometimes it is very difficult to get the right
  1748.      configuration.
  1749.  
  1750.      PART B: How to tell the kernel about the hardware settings
  1751.  
  1752.      -4  cat /dev/ioports to see which ports are already in use.
  1753.  
  1754.      -5  cat /dev/interrupts to see which interrupts are already in use.
  1755.  
  1756.      -6  Make ports and interrupts available for use with the IR device,
  1757.      e.g. stop the pcmcia service or include a line like this in
  1758.      /etc/sysconfig/pcmcia: PCIC_OPTS="irq_list=3,4,5,7,9,10,12,14,15"
  1759.  
  1760.      -7  Now try to guess what the right interrupt and port is. Use
  1761.      setserial /dev/ttySx irq M port 0xNNNN to tell the kernel. If there
  1762.      is more then one possible chance try them all (Note: As mentioned
  1763.      in the Serial-HOWTO you should not try irq 0, 1, 6, 8, 13, 14).
  1764.  
  1765.      -8  If you were successful please send the useful parameters to the
  1766.      author, because I would like to include them in the hardware
  1767.      overview.
  1768.  
  1769.      -9  Good luck.
  1770.  
  1771.      It might also be necessary to fine tune the IR serial port with
  1772.      setserial, e.g., setserial /dev/ttyS0 spd_vhi (speed rate 115200).
  1773.  
  1774.  
  1775.  
  1776.   ╖  Q2 - Question: For me, irattach hangs, but recognizes the printer.
  1777.      /var/log/messages shows that irattach found my HP LaserJet 6P.
  1778.  
  1779.   ╖  Answer: The "hang" is normal for irattach. Everything is working
  1780.      right if you see the HP Laserjet show up in the log. "hang" means
  1781.      irattach is polling the IrDA-Devices for incoming connections. If
  1782.      you kill it with <CTRL C> the irattach program crashes and
  1783.      /dev/ttySx does not work anymore. The problem is within the irda
  1784.      module, and not with the irattach program. Rebooting is the only
  1785.      thing to do! Next time put irattach in the background by using
  1786.      irattach &. Stop it if necessary with killall irattach.
  1787.      Recommendation by Andreas Butz: To my knowledge, <CTRL Z> bg should
  1788.      work, too, but I haven't tried it in this specific case. Normally
  1789.      it has the exact same effect as appending & to a command.
  1790.  
  1791.  
  1792.  
  1793.   ╖  Q3 - Question: I get a message like tcsetattr read/write error in
  1794.      /var/log/messages.
  1795.  
  1796.   ╖  Answer: Caused probably by wrong /dev/ttyS* or wrong irq or port.
  1797.  
  1798.  
  1799.   ╖  Q4 - Question: Every setting seems alright, because I get the
  1800.      appropriate messages. But it still does not work.
  1801.  
  1802.   ╖  Answer: Move the devices to within 0.5 meter (1.5 feet). Check that
  1803.      only one application is using the infrared port. Check that both
  1804.      devices are using the same protocol, such as IrOBEX or IrCOMM.
  1805.  
  1806.  
  1807.   ╖  Q5 - Question: I have downloaded the latest snapshot, and compiled
  1808.      it successfully under Linux 2.0.33 running on an IBM Thinkpad 560E.
  1809.      In the absence of any other IrDA machines to test with, is it safe
  1810.      to assume that once the module has been inserted and the syslog
  1811.      reports "irattach: Serial connection established.", is the IR
  1812.      really working, and will it start to respond once there is another
  1813.      machine with which to talk?
  1814.  
  1815.   ╖  Answer by Dag Brattli: Sorry, this only means that irattach has
  1816.      done its part of the job, which is just to start the irda-tty.
  1817.      Maybe the message should have been different, but as I said, it
  1818.      tells that the serial connection between the irda-chip and the
  1819.      irda-driver is established.
  1820.  
  1821.      Note: Support for IrDA on 2.0.x kernels has been discontinued. You
  1822.      are encouraged to switch to 2.2.x kernels and use the newest IrDA
  1823.      patches available at http://www.cs.uit.no/~dagb/irda/snapshots/.
  1824.  
  1825.  
  1826.   ╖  Q6 - Question: At startup modprobe -a checks /lib/modules/<KERNEL-
  1827.      VERSION>/net/irda.o and causes the messages: "IrLAP; Missing IrTTY
  1828.      /IrLMP Error no IrLAP connection" (in /var/log/messages and on the
  1829.      console).
  1830.  
  1831.   ╖  Answer by Werner Heuser: Workaround for SYSTEM V style systems: Put
  1832.      a script named for example "ir_rmmod" containing
  1833.  
  1834.  
  1835.        ______________________________________________________________________
  1836.        #!/bin/sh
  1837.        echo "$0 : remove irda module"
  1838.        rmmod irport.o
  1839.        rmmod irtty.o
  1840.        rmmod irda.o
  1841.        ______________________________________________________________________
  1842.  
  1843.  
  1844.  
  1845.  
  1846.   in the startup process (/etc/init.d and a symbolic link name for exam¡
  1847.   ple "S100ir_rmmod" in /etc/rc3.d to "ir_rmmod"). (Verify the path for
  1848.   "sh"). For BSD style systems try the corresponding approach.
  1849.   ╖  Q7 - Question by Ho Chin Keong: Is there other way of setting up
  1850.      communication between the 2 laptops besides setting up a LAN route
  1851.      between the two?
  1852.  
  1853.   ╖  Answer by Dag Brattli: Yes and no! One of the IrDA standard, IrCOMM
  1854.      permits you to emulate a serial cable between two laptops, so you
  1855.      can use any application written for serial ports (terminals, PPP,
  1856.      slip, etc.). This is however not yet implemented in Linux/IrDA. The
  1857.      IrLPT (printer) support is actually a subset of IrCOMM, so some of
  1858.      it is working!
  1859.  
  1860.  
  1861.   ╖  Q8 - Question by Ho Chin Keong: If I block the infrared path
  1862.      deliberately for more than 10 seconds, the connection could not re-
  1863.      establish. I have to kill the irattach and restart the whole
  1864.      procedure to start the infrared route. The connection could be
  1865.      maintained, however, if the blocking is less than 10 seconds. Is
  1866.      this part of the design or a bug? Is there any way whereby we can
  1867.      lengthen this time limit from 10 s to longer or infinitely?
  1868.  
  1869.   ╖  Answer by Thomas Davis: This seems to be a bug in the primary side
  1870.      of the IrLAP/IrLMP code. It appears not to send the
  1871.      reset/disconnect notice all the way back up the stack. You'll
  1872.      notice it when IrLPT gets stuck in the query mode while you were
  1873.      trying to talk to a printer, and disconnected/interrupted it when
  1874.      it was handshaking. (and now, it shows up in the IrLAN portion)
  1875.  
  1876.  
  1877.   ╖  Q9 - Pierre-Guillaume Raverdy asked: Should I update to IR lib on
  1878.      my palm and update the system to version 3.0.2?
  1879.  
  1880.   ╖  Answer by Dag Brattli: You should not need to update your Pilot,
  1881.      but it should not do any harm to do so. It is however required if
  1882.      you want to use the IrCOMM library from IsComplete
  1883.  
  1884.  
  1885.   ╖  Q10 - Pierre-Guillaume Raverdy asked: Also any simple source code
  1886.      (especially on the palm side) would be greatly appreciated.
  1887.  
  1888.   ╖  Answer by Dag Brattli: Get the Pilot SDK from Palm. Unzip the
  1889.      examples.zip and take a look at the beamer application.
  1890.  
  1891.  
  1892.   ╖  Q11 - Kai Poehlmann wrote: I have a gsm-phone from Ericsson SH 888
  1893.      and a linux-computer without an irda-port. I have heard that
  1894.      Ericsson wants to talk with the phone the IrDA-protocol also when
  1895.      using the serial cable... :-/ Is it now possible to use this phone
  1896.      with this IrDA-port for linux and the cable?
  1897.  
  1898.   ╖  Answer by Matthias Lemke: Yes its possible. I tried it 6 weeks ago.
  1899.      But i had same problems like with real-irda. I can connect my
  1900.      phone. i can reset it by ATZ but after ATDT  nothing happens. Same
  1901.      with cable or without. But i think you should test newer versions
  1902.      of the port.
  1903.  
  1904.  
  1905.   ╖  Q12 - Jonah Peskin wrote: Has anyone had any success extending the
  1906.      range of an IrDA transceiver? I'm using a Dell Inspiron 7000
  1907.      notebook, and it seems to have a receiving range of about 1 meter.
  1908.      I realize this fits the IrDA spec, but are there any laptops or
  1909.      devices that can do better than a meter? Why not just get a 1 meter
  1910.      cable?
  1911.  
  1912.   ╖  Answer by tzeruch@ceddec.com:Because manual connection (until
  1913.      things like the Palm Cradle) is cumbersome and time consuming and
  1914.      often creates problems (accessing the back side of my desktop
  1915.      requires contortions).
  1916.  
  1917.      The main problem is that you generally have to make the receiver
  1918.      more sensitive. Basic physics has the inverse square law: the
  1919.      intensity drops with the SQUARE of the distance, so going from 1 to
  1920.      5 meters requires 25x the power (and battery drain on a portable
  1921.      device), or 25x the sensitivity (and dynamic range - it still has
  1922.      to be able to work at 3 inches).  And if you want to do it on the
  1923.      other end, it doesn't simply have to be 25x more sensitive, it must
  1924.      pick up the tiny IrDA pulse needle in a haystack of florescent
  1925.      lights, screen savers, moving shadows...
  1926.  
  1927.      Someone tried it with a Palm III upgrade board:  http://home.t-
  1928.      online.de/home/PSPilot/ppppiii.htm
  1929.  
  1930.  
  1931.   13.  Infrared Remote Control
  1932.  
  1933.  
  1934.   13.1.  Resources
  1935.  
  1936.   Remote control via infrared is not the aim of the Linux/IrDA project
  1937.   but is included in this HOWTO to cover "Linux and Infrared" more
  1938.   completely. I found three projects which worked on this topic. You may
  1939.   find some links to current information at http://
  1940.   www.snafu.de/~wehe/index_li.html.
  1941.  
  1942.   ╖  LIRC LInux Remote Control
  1943.  
  1944.      LIRC is a package that supports receiving and sending IR signals of
  1945.      the most common IR remote controls. It contains a device driver for
  1946.      hardware connected to the serial port, a daemon that decodes and
  1947.      sends IR signals using this device driver, a mouse daemon that
  1948.      translates IR signals to mouse movements and a couple of user
  1949.      programs that allow to control your computer with a remote control.
  1950.      Takahide Higuchi wrote about LIRC: "It's great, and it seems almost
  1951.      complete solution, but it seems there is almost nothing supporting
  1952.      hardware on the market (or need to solder some special circuit ...
  1953.      it is hard work for many people to do so). I believe that LIRC will
  1954.      be more popular if consumer IR support is implemented in FastIR
  1955.      drivers and some common API (for example, a raw IrSocket and common
  1956.      ioctls) is made!". You may find LIRC at http://www.thp.uni-
  1957.      koeln.de/~rjkm/lirc/
  1958.  
  1959.  
  1960.   ╖  Serial Infrared Remote Controller
  1961.  
  1962.      This is a simple, cheap device that can be connected to any serial
  1963.      port to control most components that have infrared remote controls.
  1964.      It was designed and built on a solderless breadboard and is finally
  1965.      designed as a PC board. You may find this package at
  1966.      http://www.armory.com/~spcecdt/remote/remote.html
  1967.  
  1968.  
  1969.   ╖  Infrared Tools for the COREL Netwinder PC
  1970.  
  1971.      Ryan Shillington wrote some tools to control the COREL Netwinder
  1972.      via infrared, for example:
  1973.  
  1974.      Server Side for the Corel Palm Administrator (deamon). It depends
  1975.      on having ir-simple installed and up and running. With this you can
  1976.      check and change IP addresses, Gateway addresses, setup eth1, etc.
  1977.      You can also run simple commands AND you can check the Temperature,
  1978.      Memory, Load averages, etc.
  1979.  
  1980.      Client Side for the Corel Palm Administrator. You can also run
  1981.      simple commands AND you can check the Temperature, Memory, Load
  1982.      averages, etc.
  1983.  
  1984.      A very basic Infra Red device driver. This does not support IrDA
  1985.      (only unreliable transfers). It looks specifically for Remote
  1986.      Control signals (and Keyboard, etc.). It blocks and passes data up
  1987.      very differently.
  1988.  
  1989.      You may find the tools at http://www.netwinder.org/~ryansh/
  1990.  
  1991.  
  1992.   13.2.  Infrared Remote Control - IrDA
  1993.  
  1994.   Two of the above mentioned projects use some kind of selfmade dongle
  1995.   for infrared remote control. There is also a description to build a
  1996.   serial IrDA dongle by yourself in the german ELEKTOR 5/97 p. 28
  1997.   magazine. Maybe someone can merge these two kind of dongles together.
  1998.  
  1999.   For a discussion of the relation between Infrared Remote Control and
  2000.   IrDA I quote from the Linux/IrDA mailing list (shortend and modified
  2001.   by wh):
  2002.  
  2003.   Ryan Shillington wrote: "Remote IR and ASK-IR are very different from
  2004.   FIR or MIR or SIR.
  2005.  
  2006.   Remote IR and ASK-IR are very low speed and low frequency (but very
  2007.   long range) uses for IR. They operate around 2400 baud.
  2008.  
  2009.   SIR operates at higher rates, and is meant for long range transmission
  2010.   where you need more than a few characters pass through (unlike a
  2011.   remote control).
  2012.  
  2013.   MIR is a little faster (less range), but with speeds up to 1.15 Mbps,
  2014.   and FIR (where the devices have to be practically touching) is 4Mbps.
  2015.   The range is inversely proportional to the speed you can send data at.
  2016.  
  2017.   I'm working on drivers for Remote-IR, but you should know that your IR
  2018.   stuff has to support it. Look for protocols like NEC, RC-5 or RC-0
  2019.   (those are the most common ones).
  2020.  
  2021.   You can use SIR to receive Remote Control signals. Set your baud rate
  2022.   nice and low and data will come through. BUT, from my experience, it's
  2023.   not the RIGHT data. It's not being analyzed in the right way, and as
  2024.   such, you can't compute the checksums or check it with its complement.
  2025.  
  2026.   I have managed to get data in (using SIR) with remote controls.  I
  2027.   have been told that SIR will read the remote control stuff differently
  2028.   depending on temperature (although I have never had that experience).
  2029.   "
  2030.  
  2031.   Lichen Wang <lwang1@ix.netcom.com> wrote in response: "The so-called
  2032.   ASKIR in most laptops etc. is not meant for remote IR devices. ASKIR
  2033.   is meant for Sharp Wizard and Zauaus PDAs and some of Sharp's notebook
  2034.   PCs. Sharp stated this long before IrDA was established and is still
  2035.   supporting it to maintain backward compatibility. Apple's Newton had
  2036.   this capability at one time, too.
  2037.  
  2038.   Briefly, ASKIR uses 9.6 Kbps (19.2 and 38.4 Kbps are also possible)
  2039.   asynchronous data format of 8 data bits, 1 stop bit, and odd parity.
  2040.   The "start" bit as well as all 0 bit in data/parity are transmitted as
  2041.   IR square wave at 500 KHz (DASK sub-carrier). The "stop" bit as well
  2042.   as all 1 bit in data/parity are represented by the absence of any IR
  2043.   transmission.
  2044.  
  2045.   As you can see, this is totally incompatible with exiting IR remote
  2046.   control.
  2047.   [..]
  2048.  
  2049.   True. Not only can you use SIR hardware to receive, you can transmit,
  2050.   too. Of course, there are some limitations.
  2051.  
  2052.   Most IR remote controls use 38 KHz sub-carrier. 3 times 38 is 114,
  2053.   very close to 115.2. You can set the UART to operate at 115.2 Kbps, 7
  2054.   data bits, no parity, and 1 stop bit - a total of 9 bits. Each 3
  2055.   cycles of the 38 KHz sub-carrier can be received or transmitted as a
  2056.   byte of 0x5B.
  2057.  
  2058.   There are some physical limitations in addition to the fact that the
  2059.   sub-carrier must be 38 KHz. The SIR receiver is not as sensitive to 38
  2060.   KHz as the IR remote receiver designed for that. The SIR transmitter
  2061.   has a much lower duty cycle and thus can not emit a strong sub-carrier
  2062.   either.
  2063.  
  2064.   IR remote encodes the control signal by turning on and off the sub-
  2065.   carrier at certain specific patterns. Now that you can transmit and
  2066.   receive the sub-carrier, what remains is all in timing.
  2067.  
  2068.   For transmit, you have to know how many consecutive bytes of 0x5B to
  2069.   send for each burst of the sub-carrier, and how long to be quiet
  2070.   between the bursts.
  2071.  
  2072.   For receive, you have to know how many of the 0x5Bs you received are
  2073.   consecutive, and how long the gaps were between these groups of
  2074.   consecutive bytes.
  2075.  
  2076.   [..]
  2077.  
  2078.   My experience with the IrDA link distance of SIR, MIR and FIR is
  2079.   somewhat different from what Ryan said.
  2080.  
  2081.   [..]
  2082.  
  2083.   SIR, MIR and FIR should all work from 0 to 100 cm but in practice:
  2084.  
  2085.   (a) Some devices may have problems at LONG distances.
  2086.  
  2087.   When possible, place the two communicating devices no more than 50 cm
  2088.   apart. Low power devices, such as Pagers, Phones, etc. may have even
  2089.   shorter ranges despite the fact that they use SIR instead of MIR or
  2090.   FIR.
  2091.  
  2092.   (b) Some devices may have problems at SHORT distances.
  2093.  
  2094.   Place the two devices at least a few cm apart. Putting the two devices
  2095.   too close to each other can cause troubles.
  2096.  
  2097.   It is somewhat intuitive that when the link is not reliable we put the
  2098.   two devices closer together. But it is counterintuitive that too close
  2099.   is not good either. The reason is that the light intensity at 1 cm is
  2100.   10.000 times brighter than that at 100 cm. At 0.5 cm, it is 40.000
  2101.   times, etc. The IR receiver manufacturers have difficulties to cover
  2102.   this huge dynamic range. We all have problems reading under a 10 W
  2103.   light bulb, but imagine how it feels under a 100.000 W light!
  2104.  
  2105.   [..]
  2106.  
  2107.   The IrDA Physical Layer is totally incompatible with the DASK
  2108.   modulation used in IR remote controls. Thus it is not possible to use
  2109.   the same controller function for both FIR and remote control. However,
  2110.   practically all FIR controller chips do include some additional
  2111.   functions to support remote control. National, SMC, and Winbond (just
  2112.   to name a few) all have such I/O chips.
  2113.   The IR transmitter for FIR and remote control are very similar. I have
  2114.   tried a standard FIR transmitter. It can reach 10 meters for remote
  2115.   control purpose. Thus it performs just as good as transmitters
  2116.   designed for remote control.
  2117.  
  2118.   The IR receiver for FIR and remote control are somewhat different. A
  2119.   FIR receiver can receive remote control signals but can reach only 1
  2120.   meter whereas receivers designed for remote control typically can
  2121.   reach 10 meters.
  2122.  
  2123.   I have an ISA bus adapter with a National I/O chip that supports both
  2124.   FIR and remote control. I also have IR Dongles that include both FIR
  2125.   and remote control receivers. (Plus a transmitter for both modes.) I
  2126.   cannot find any software to support remote control functions. I did my
  2127.   own experiments in DOS (I cannot run Linux yet.) Anybody interest in
  2128.   this? "
  2129.  
  2130.   Benny Amorsen wrote: "I have a laptop that is supposed to support
  2131.   ASKIR. The mode of the infrared port can be switched to ASKIR in the
  2132.   BIOS. Having to reboot to switch the mode in the BIOS makes it
  2133.   useless, though, so someone would have to find a way to switch on the
  2134.   fly. "
  2135.  
  2136.   Dag Brattli wrote: It should be possible to use IrControl (formerly
  2137.   IrBus) for IrDA compliant remote controls. I currently don't know
  2138.   about any remote controls using IrControl standard, but there should
  2139.   be some out there (anyone else who knows better?). You should go to
  2140.   the IrDA site (http://www.irda.org) and get the physical layer
  2141.   standard (which includes IrControl I think).
  2142.  
  2143.   "Normal" IrDA (using IrLAP) is _not_ well suited for remote control
  2144.   because of the connection oriented nature (and just supports 9600bps
  2145.   for connectionless use). The reason for the limited range is eye-
  2146.   safety they say (but I currently don't know why CIR works better using
  2147.   the same power). I have however seen laptops connect at 4-5 meters
  2148.   (but I don't think that any high speed communication would be
  2149.   possible).
  2150.  
  2151.   Most IrDA chipsets are capable of CIR operation, and it is quite easy
  2152.   to modify the drivers so they talk CIR. Takahide Higuchi has started
  2153.   to look at IrSockets and it would be great if we could open a "raw"
  2154.   Ir(DA) socket which then could send and receive CIR packets. Then all
  2155.   the CIR applications could live in userspace.
  2156.  
  2157.   I know that Corel is interested in using CIR for controlling the
  2158.   NetWinder (and they actually have running code). Take a look at
  2159.   http://www.slashdot.org/articles/98/12/05/0916216.shtml or
  2160.   http://www.netwinder.org/~ryansh
  2161.  
  2162.  
  2163.   14.  Infrared and Eye Safety
  2164.  
  2165.   This section summarizes some ideas and thoughts that were exchanged on
  2166.   the Linux/IrDA mailing list. It is not medically wellfounded, and
  2167.   whoever has better evidence or some more wellfounded source of
  2168.   information is encouraged to contribute it to this HOWTO.
  2169.  
  2170.   The IrDA spec says that the range of IrDA devices has been limited to
  2171.   1m for reasons of eye safety. Another plausible assumption is that
  2172.   power consumption and IR pollution/crosstalk were reasons for this
  2173.   limitation. In principle there could be danger for the eye, because
  2174.   infrared light is not registered by the eye, and thus the pupil won't
  2175.   close in order to protect the retina from bright IR light sources.
  2176.   This is the same situation as with UV light, which will cause snow
  2177.   blindness eventually, but in contrast to UV light, IR light contains
  2178.   much less harmful energy due to its longer wavelength.
  2179.   The only legal restrictions and medical advices we were able to find
  2180.   on the web were concerned with infrared emissions of heat lamps or in
  2181.   the welding process. This suggests that IR light as emitted by IrDA
  2182.   devices will be harmless, since even the peak power emitted by strong
  2183.   IR LEDs (ca. 300mW) is several orders of magnitude below the power
  2184.   emitted by medical IR heat lamps (up to 500W). For these, however, you
  2185.   are supposed to wear protective goggles, so maybe if you are looking
  2186.   straight into 1.000 infrared LEDs flashing at once, you should do so,
  2187.   too. The effect of infrared light is mostly heat, though, and not an
  2188.   alteration or destruction of the biological cell structure, such as
  2189.   caused by UV light. Though in the specs for the HP OmniBook 800
  2190.   Hewlett-Packard recommends not to look directly into the IR LED.
  2191.  
  2192.   As stated above, this discussion is only based on guesswork and common
  2193.   sense assumptions about the data found in IR LED and heat lamp specs.
  2194.   If anybody with a better medical knowledge can comment on this, please
  2195.   do so!!!
  2196.  
  2197.  
  2198.   15.  Credits
  2199.  
  2200.   Thanks to:
  2201.  
  2202.   ╖  Dag Brattli - Linux/IrDA core team
  2203.  
  2204.   ╖  Thomas Davis - Linux/IrDA core team
  2205.  
  2206.   ╖  Takahide Higuchi - Linux/IrDA core team
  2207.  
  2208.   ╖  Ralf Zabka
  2209.  
  2210.   ╖  Benny Amorsen
  2211.  
  2212.   ╖  Lichen Wang
  2213.  
  2214.   ╖  Ryan Shillington
  2215.  
  2216.   ╖  Richard Titmuss
  2217.  
  2218.   ╖  Fons Botman
  2219.  
  2220.   ╖  Rui Oliveira
  2221.  
  2222.   ╖  Jon Howell
  2223.  
  2224.   ╖  Carlos Vidal
  2225.  
  2226.   ╖  Joonas Lehtinen
  2227.  
  2228.   ╖  Markus Schill
  2229.  
  2230.   ╖  Bjoern Hansson
  2231.  
  2232.   ╖  Pawel Machek
  2233.  
  2234.   ╖  Ho Chin Keong
  2235.  
  2236.   ╖  Bjoern Mork
  2237.  
  2238.   ╖  Andreas Butz
  2239.  
  2240.   ╖  Tang Ning
  2241.  
  2242.   ╖  The members of the Linux/IrDA mailing list.
  2243.  
  2244.  
  2245.   ╖  The writers of the other HOWTOs which gave me many inspirations.
  2246.  
  2247.   ╖  The developers of the SGML-Tools which provided some means to write
  2248.      a HOWTO.
  2249.  
  2250.      Sorry I didn't start to follow the credits when starting the HOWTO,
  2251.      so probably I forgot somebody.
  2252.  
  2253.  
  2254.   16.  Revision History
  2255.  
  2256.  
  2257.   ╖  v0.1 to v0.4a, 19 March 1998 to 4 August 1998, drafts, not included
  2258.      in the LDP
  2259.  
  2260.   ╖  v1.0, 14 August 1998, release to the LDP
  2261.  
  2262.   ╖  v1.1, 18 August 1998, added info about IrCOMM patch by Takahide
  2263.      Higuchi, minor changes
  2264.  
  2265.   ╖  v1.2, 24 August 1998, updated to linux-irda-1998-08-20 snapshot,
  2266.      added FIR section and revision history, minor changes
  2267.  
  2268.   ╖  v1.3, 27 September 1998, added sections about multiple instances,
  2269.      cellular phones, digital cameras,Linux to Linux connection, the
  2270.      cutting edge - CVS, power saving; some changes in general
  2271.      configuration section, changes in hardware overview section, minor
  2272.      changes
  2273.  
  2274.   ╖  v1.4, 11 October 1998, better description of IrCOMM support,
  2275.      changes in dongle connection section, changes in Palm III section,
  2276.      minor changes
  2277.  
  2278.   ╖  v1.5, 12 October 1998, minor changes
  2279.  
  2280.   ╖  v1.6, 26 October 1998, section about IrManager added, updated to
  2281.      the linux-irda-1998-10-21 snapshot, changed dongle connection
  2282.      section, minor changes
  2283.  
  2284.   ╖  v1.7, 1 November 1998, added remote control section, changed dongle
  2285.      connection section, minor changes
  2286.  
  2287.   ╖  v2.0, 9 January 1999, nearly complete rewrite and rearrangement
  2288.      according to the new structure of Linux/IR which is included into
  2289.      the kernel since 2.1.131, added info about BIOS support into dongle
  2290.      connection section, configuration tool section and CVS section
  2291.      removed
  2292.  
  2293.   ╖  v2.1, 13 January 1999, minor changes
  2294.  
  2295.   ╖  v2.2, 26 January 1999, project name changed from Linux/IR to
  2296.      Linux/IrDA, extended the Troubleshooting chapter, changed the order
  2297.      of the Known Bugs chapter after the Troubleshooting chapter,
  2298.      removed some lint
  2299.  
  2300.   ╖  v2.3, 4 February 1999, added chapter about Eye Safety written by
  2301.      Andreas Butz; spell checking, reworking of Kernel Parameters
  2302.      chapter and additional information by Andreas Butz; minor changes
  2303.  
  2304.   ╖  v2.4, 9 February 1999, changed information about applying a patch
  2305.      file
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.   17.  Copyright and Disclaimer
  2312.  
  2313.   Copyright ⌐ 1998, 1999 by Werner Heuser. This document may be
  2314.   distributed under the terms set forth in the LDP license at
  2315.   http://metalab.unc.edu/LDP/COPYRIGHT.html.
  2316.  
  2317.   The information in this document is correct to the best of my
  2318.   knowledge, but there's a always a chance I've made some mistakes, so
  2319.   don't follow everything too blindly, especially if it seems wrong.
  2320.   Nothing here should have a detrimental effect on your computer, but
  2321.   just in case I take no responsibility for any damages incurred from
  2322.   the use of the information contained herein.
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.