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://irda.sourceforge.net. Or from the Alan Cox kernel series at ftp://ftp.linux.org.uk/pub/linux/alan/2.2/ . 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 whether 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 CONFIG_KERNELD. But kmod (CONFIG_KMOD) also works. A monolithic kernel seems to work, too. But modules are highly recommended.
- To use irdadump you probably have to set CONFIG_PACKET.
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 |
If you get really strange errors, then try to rebuild from scratch after a make clean.
The following is my draft for ../linux-2.2.3/Documentation/Configure.help, parts are from Dag Brattli and Andreas Butz. Please consult the latest available kernel documentation for current information and new drivers.
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://irda.sourceforge.net . Further information you may find there and in the Linux-Infrared-HOWTO at http://mobilix.org/howtos.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.
IrLAN protocol
CONFIG_IRLAN
Builds the IrDA network device. Use ifconfig eth0 <IP-NUMBER> to configure it. - Just say Y
IrLAN client support
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.
IrLAN server support
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.
IrOBEX protocol
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
IrCOMM protocol
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. .. Note: mknod /dev/irnine c 161 0 for newer versions! [WH]
IrLPT client support
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
IrLPT server support
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.
Cache last
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.
FAST RRs
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.
Recycle RRs
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.
Debug information
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.
Deflate compression (experimental)
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.
BZIP2 compression
CONFIG_IRDA_BZIP2
Help not available yet.
BSD compression
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.
Serial dongle support
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.
ESI JetEye PC dongle
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
ACTiSYS IR-220L and IR220L+ dongle
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
Tekram IrMate 210B dongle
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
NSC PC87108
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
Winbond W83977AF (IR)
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
Sharp UIRCC
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.