Please read the Kernel-HOWTO to get more information about the compilation process. You'll find the Linux/IrDA code in:
/usr/src/linux/net/irda (protocol stuff)
/usr/src/linux/drivers/net/irda (device drivers)
/usr/src/linux/include/net/irda (header files)
- Make sure you use kernel 2.2.x sources. If unsure about your kernel version try uname -r
.
- Get the latest kernel patch from the Linux/IrDA project
http://www.cs.uit.no/~dagb/irda/snapshots/. Put it into /usr/src or where else your kernel sources live and apply something like (replace patch-2_2.0-irdaXXX
with the actual file name):
cd /usr/src tar xvzf patch-2_2.0-irdaXXX.tar.gz cd linux patch -p1 -l < ./patch-2_2.0-irdaXXX
- Experimental support has to be enabled (CONFIG_EXPERIMENTAL).
- Enable sysctl in "General Setup" (CONFIG_SYSCTL).
- You should have proc file system support (CONFIG_PROC_FS).
- Also serial support for the SIR features (CONFIG_SERIAL).
- I am not sure wether there has to be printer support for using a printer with Linux/IrDA (CONFIG_PRINTER). But I assume this feature is not necessary.
- Networking support must be enabled (CONFIG_NET).
- Make sure you have module support (CONFIG_MODULES) in your kernel! Test it e.g. with lsmod
.
- Also kerneld
support is recommended (CONFIG_KERNELD). But kmod
(CONFIG_KMOD) also works. A monolithic kernel seems to work, too.
- Matt Francis wrote: "I notice that some of the modules appear to want not only module support (as noted on the webpage), but also misc user device support." (CONFIG_UMISC).
If you only apply the Linux/IrDA patch, you should not have to do a make clean
, so that should save you some time. I suggest you do something like this:
make dep && make all && make modules && make install && make modules_install
make clean
.
The following is my suggestion for ../linux-2.2.x/Documentation/Configure.help, parts are from Dag Brattli and Andreas Butz:
CONFIG_IRDA
IrDA(TM) is an industrial standard for infrared wireless communication. Infrared ports let you communicate with printers, modems, fax machines, LANs, and laptops. Speed ranges from 2400bps to 4Mbps. To use this features you need the irda_utils provided by the Linux/IrDA project http://www.cs.uit.no/ dagb/irda/ Further information you may find there and in the Linux/IR-HOWTO at http://www.snafu.de/ wehe/index_li.html Currently it is recommended to build IrDA support as modules only. Please see Documentation/modules.txt. Please note the status of Linux/IrDA is still experimental.
CONFIG_IRLAN
Builds the IrDA network device. Use ``ifconfig eth0 <IP-NUMBER>'' to configure it. - Just say Y
CONFIG_IRLAN_CLIENT
If you connect to infrared devices via IrLAN one has to be the server and the other the client. You can use both the client and the server at the same time. The first one to connect becomes the client. - Just say Y Note: The latest patch includes peer-to-peer support instead.
CONFIG_IRLAN_SERVER
If you connect to infrared devices via IrLAN one has to be the server and the other the client. You can use both the client and the server at the same time. The first one to connect becomes the client. - Just say Y Note: The latest patch includes peer-to-peer support instead.
CONFIG_IROBEX
IrOBEX is a protocol for exchanging objects (files, vcards, etc.) over an infrared connection. You can use it to exchange files between linux and a PALM III. IrOBEX can also be used between two Linux boxes, Linux and Windows95, etc. - Just say Y
CONFIG_IRCOMM
Over IrCOMM you may communicate with cellular phones, etc. To use this service you have to build a new device with ``mknod /dev/irnine c 60 64'', which works like /dev/ttySx. - Just say Y ..Note: major and minor number are still not the official ones yet. For latest improvements (IrSocket is on the way!), please look at the page of Takahide Higuchi http://www.pluto.dti.ne.jp/ thiguchi/irda/
..Note: At the moment IrCOMM seems to crash your kernel easily, you should probably wait for the next patch.
CONFIG_IRLPT_CLIENT
Say Y here if you want to build support for the IrLPT client protocol. If you want to compile it as a module, say M here and read Documentation/modules.txt. The IrLPT client protocol can be used to print documents to IrDA compatible printers like the HP-5MP, or IrLPT printer adapters like the ACTiSYS IR-100M. - Just say Y
CONFIG_IRLPT_SERVER
Say Y here if you want to build support for the IrLPT server protocol. If you want to compile it as a module, say M here and read Documentation/modules.txt. The IrLPT server protocol makes it possible to use a Linux machine as an infrared printer server for other laptops. So if your Linux machine has a cable connection to a printer, then other laptops can use the Linux machine to print out documents using infrared communication. - Just say Y
CONFIG_IRDA_OPTIONS
You may define some IrDA protocol options.
LSAP CONFIG_IRDA_CACHE_LAST_LSAP
Say Y here if you want IrLMP to cache the last LSAP used. This makes sense since most frames will be sent/received on the same connection. Enabling this option will save a hash-lookup per frame. If unsure, say Y.
CONFIG_IRDA_FAST_RR
Use this option if you want to send faster RR (Receive Ready) frames if the transmit queue is empty. This will give you much better latencies but will consume more power, because of the bouncing RR frame.
CONFIG_IRDA_RECYCLE_RR
In the normal life of the IrLAP protocol, it sends a lot of small RR (Receive Ready) frames over the link (at least when it has nothing else to do). Saying Y to this option will make IrLAP recycle these frames thus avoiding many alloc_skb's and kfree_skb's. To do this it will only buffer one of these frame which is enough for the usual case.
CONFIG_IRDA_DEBUG
Say Y here if you want the IrDA subsystem to write debug information to your syslog. You can change the debug level in /proc/sys/net/irda/debug. If unsure, say Y (since it makes it easier to find the bugs).
CONFIG_IRDA_COMPRESSION
You may use the compression methods BZIP2 and BSD. These are not IrDA standard. This will allow two linux boxes to handshake compression. It should be compatible with other IrDA devices, although communication will not be compressed then.
CONFIG_IRDA_DEFLATE
Say Y here if you want to build support for the Deflate compression protocol. If you want to compile it as a module, say M here and read Documentation/modules.txt. The deflate compression (GZIP) is exactly the same as used by the PPP protocol. Enabling this option will build a module called irda_deflate.o.
CONFIG_IRDA_BZIP2
Help not available yet.
CONFIG_IRDA_BSD
Help not available yet.
Three sorts of low level infrared drivers are available: serial, dongle and FIR. They will show up in /proc/net/dev (irda0) after initialisation.
Most IrDA chips support StandardInfraRed (SIR), which works up to 115200bps and emulates a serial port (16550A UART). On many laptops this port is detected by the serial support of the kernel, see ``dmesg''. IrTTY connects the Linux/IrDA services to this port. - You should say Y here.
CONFIG_IRTTY_SIR
Say Y here if you want to build support for the IrTTY line discipline. If you want to compile it as a module, say M here and read Documentation/modules.txt. IrTTY makes it possible to use Linux's own serial driver for all IrDA ports that are 16550 compatible. Most IrDA chips are 16550 compatible so you should probably say Y to this option. Using IrTTY will however limit the speed of the connection to 115200 bps (IrDA SIR mode). If unsure, say Y.
CONFIG_DONGLE
Currently four dongles (infrared adapters for the serial port) are supported. The dongle is an infrared device which may be connected to serial port, if you don't have built-in infrared support for your machine. If you use a dongle together with a laptop you maybe have to disable the IrDA support in the BIOS.
CONFIG_ESI_DONGLE
Say Y here if you want to build support for the Extended Systems JetEye PC dongle. If you want to compile it as a module, say M here and read Documentation/modules.txt. The ESI dongle attaches to the normal 9-pin serial port connector, and can currently only be used by IrTTY. To activate support for ESI dongles you will have to insert ``irattach -d esi'' in the /etc/irda/drivers script. http://www.extendsys.com/support/ftp/infrared.html
CONFIG_ACTISYS_DONGLE
Say Y here if you want to build support for the ACTiSYS IR-220L and IR220L+ dongles. If you want to compile it as a module, say M here and read Documentation/modules.txt. The ACTiSYS dongles attaches to the normal 9-pin serial port connector, and can currently only be used by IrTTY. To activate support for ACTiSYS dongles you will have to insert ``irattach -d actisys'' or ``irattach -d actisys_plus'' in the/etc/irda/drivers script. http://www.actisys.com
CONFIG_TEKRAM_DONGLE
Say Y here if you want to build support for the Tekram IrMate 210B dongle. If you want to compile it as a module, say M here and read Documentation/modules.txt. The Tekram dongle attaches to the normal 9-pin serial port connector, and can currently only be used by IrTTY. To activate support for Tekram dongles you will have to insert ``irattach -d tekram'' in the /etc/irda/drivers script. http://www.tekram.de/
CONFIG_GIRBIL_DONGLE
Say Y here if you want to build support for the Greenwich Instruments GirBIL dongle. If you want to compile it as a module, say M here and read Documentation/modules.txt. The Greenwich dongle attaches to the normal 9-pin serial port connector, and can currently only be used by IrTTY. To activate support for Greenwich dongles you will have to insert ``irattach -d girbil'' in the /etc/irda/drivers script. http://www.greenwichinst.com/
FastInfraredSupport (FIR) needs a specific controller chip, which supports up to 4Mps. - Just say Y
CONFIG_NSC_FIR
NationalSemiConductor NSC PC87108 FIR chip e.g. used in the IBM Thinkpad 560X and ACTiSYS IR2000 dongle. Probably the NSC PC87338 FIR chip is also supported. The driver supports SIR, MIR and FIR (4Mbps) speeds. - Just say Y
CONFIG_WINBOND_FIR
Winbond W83977AF (IR) FIR chip e.g. used in the Corel Netwinder PC. The driver supports SIR, MIR and FIR (4Mbps) speeds. - Just say Y
CONFIG_SHARP_FIR
Say Y here if you want to build support for the Sharp UIRCC IrDA chipset. If you want to compile it as a module, say M here and read Documentation/modules.txt. This chipset is used by the Toshiba Tecra laptops.