This directory contains driver software for Lucent WaveLAN/IEEE PCMCIA wireless network adapters for FreeBSD 3.x (and 4.x). This driver has already been merged into the FreeBSD-CURRENT and FreeBSD-STABLE source trees and will be available in the next release; you should only download the code from here if you have FreeBSD 3.2-RELEASE or earlier and would like to add WaveLAN/IEEE driver support to your system. The FreeBSD driver supports the following hardware: - Lucent WaveLAN/IEEE 802.11 PCMCIA adapter (2Mbps) - Lucent WaveLAN/IEEE 802.11 ISA adapter (2Mbps) - Lucent WaveLAN/IEEE 802.11 Turbo PCMCIA adapter (6Mbps) - Lucent WaveLAN/IEEE 802.11 Turbo ISA adapter (6Mbps) Note that the ISA cards are actually a combination of a WaveLAN/IEEE PCMCIA card and an ISA to PCMCIA bridge adapter. This means that you have to configure you system for PCMCIA support in order to use the ISA adapters as well as the PCMCIA cards. The source is provided in a gzipped tar archive called wavelan.tar.gz, which contains the following: - if_wi.c and if_wireg.h, the driver source - if_wavelan_ieee.h interface header - wi.4, driver man page - wicontrol.c and wicontrol.8, the source and man page for the wicontrol utility (Makefile for wicontrol is included) - sample pccard.conf file with entries for the Lucent WaveLAN/IEEE adapters added (plus some workalikes) To add the WaveLAN/IEEE driver to an existing system, do the following: - Download the 3.0/wavelan.tar.gz archive and unpack it. - Make sure you have the kernel source code for your system unpacked under /usr/src. - Copy if_wi.c and if_wireg.h to /sys/i386/isa - Copy if_wavelan_ieee.h to /usr/include/machine - Copy wi.4 to /usr/share/man/man4/man4.i386 - Copy wicontrol.8 to /usr/share/man/man8 - Compile wicontrol usint the supplied Makefile and copy it to /usr/sbin. (Note: you must have if_wavelan_ieee.h in place before you try to compile wicontrol.) - Copy pccard.conf.sample to /etc/pccard.conf - Edit /sys/i386/conf/files.i386 and add a line that says: i386/isa/if_wi.c optional wi device-driver - Edit your kernel config file and add the following lines: controller card0 device pcic0 at card? device pcic1 at card? device wi0 at isa? port? net irq? - Remove the lines for the ze0 and zp0 devices from your kernel config! These are drivers with standalone PCMCIA code used for some ethernet cards. These drivers were written before the general PCCARD support was added to FreeBSD and are not compatible with the PCCARD code. You can either have ze0/zp0 in the kernel *or* PCCARD support, but not both. The wi driver is written to use the PCCARD support, therefore you can't use it with the ze0/zp0 drivers. Sorry. - Configure your kernel and compile. To use PCMCIA devices in FreeBSD, you must enable pccardd by properly editing /etc/rc.conf or /etc/defaults/rc.conf. You should have lines like the following: pccard_enable="YES" # Set to YES if you want to configure PCCARD devices. pccard_mem="DEFAULT" # If pccard_enable=YES, this is card memory address. Setting pccard_enable to "YES" will cause pccardd to be automatically started when the system is rebooted. Note: you may beed to change the pccard_mem setting. This setting describes the base of a shared memory window used to read data (such as the CIS data for PCMCIA cards) from the PCMCIA controller. The default address is 0xd0000, and this seems to work for most laptops. However, when using the WaveLAN/IEEE ISA card, I have found that the ISA to PCMCIA bridge may only work if you change the pccard_mem address to 0xe0000. If pccardd reports an error to /var/log/messages about an unknown device with the name ""/"", then you will probably need to use the 0xe0000 address. You can tell if the address is correct if the command "pccardc dumpcis" reports the correct CIS data for the WaveLAN/IEEE device. Lastly, you must specify an unused IRQ in /etc/pccard.conf. Here is a sample pccard.conf entry: # Lucent WaveLAN/IEEE card "Lucent Technologies" "WaveLAN/IEEE" config 0x1 "wi0" 11 insert echo WaveLAN/IEEE inserted insert /etc/pccard_ether wi0 remove echo WaveLAN/IEEE removed remove /sbin/ifconfig wi0 delete Here, 11 means IRQ 11. This assumes that there is no other device in the system configured to use IRQ 11. If the IRQ isn't available, pccardd will complain about a resource allocation failure when it tries to configure the card. If you have a system with a PCI bus, you may want to run the BIOS configuration utility for your system and try to mark your chosen IRQ as 'reserved for ISA device' so that it doesn't try to automatically assign it to a PCI device. If you are short on IRQs, you might want to try disabling one of your serial ports or the parallel printer port. Note: by "disable" I mean turn the port off in the BIOS config utility, *NOT* removing it from the kernel configuration! Just because the kernel doesn't probe and attach a device, that doesn't mean the device isn't still there. A few additional notes: - Although in theory it should be possible to use one of the ISA WaveLAN/IEEE devices in an Alpha machine with an ISA bus, FreeBSD's PCCARD support is currently not supported on FreeBSD/Alpha. Consequently, you can only use the WaveLAN/IEEE driver on the FreeBSD/i386 platform at the moment. - The driver defaults to ad-hoc mode. You can enable BSS mode with the wicontrol utility. - The wicontrol utility can also be used to change the operating frequency of the radio modem. The available frequencies vary depending on where the WaveLAN/IEEE was purchased: there are different channel assignments for the U.S., Europe, France and Japan. There is only one frequency available in Japan. - Unlike the Linux WaveLAN/IEEE driver, the FreeBSD driver is available in full, unencumbered source code form. - The FreeBSD driver encapsulates and decapsulates 802.11 frames as normal Ethernet frames, so to the system, the WaveLAN/IEEE looks like just another ethernet interface. However, this means that packets read from the driver using BPF will have ordinary ethernet headers instead of 802.11 packet headers. - The same driver supports both the 2Mbps and 6Mbps Turbo adapters. The only difference is that with the 6Mbps adapters, there are more speed settings available. These are described in the wicontrol(8) man page. - Multicasting and promiscuous mode are supported. If you have problems with the driver, please send a detailed description of the trouble, including any possible error messages, the version of FreeBSD you're running and the version of the driver to wpaul@skynet.ctr.columbia.edu. Note: please restrict your queries to actual driver problems, not questions about how to set up PCCARD support in FreeBSD, requests for drivers for other cards, or help setting up a WaveLAN/IEEE card on some other OS like Linux.