martybugs.net Wireless Info
 navigation
. MartyBugs home
. wireless home
 
 antenna
. Conifer antenna modifications
. my mast & antenna install
. my old mast & antenna install
. Marcus' mast & antenna install
. biquad antenna construction
. double biquad antenna
. compact collinear antenna
. anatomy of rubber ducky
. using antennas
 
 antenna testing
. Conifer antenna testing
. more Conifer testing
. antenna comparison
 
 software
. OpenWrt Wireless Router
. Linux Wireless Router
. Link Monitoring with RRDTool
. Traffic Monitoring with RRDTool
. Bandwidth Monitoring with ipac-ng
. HDD Temp Monitoring with RRDTool
 
 installation
. RedHat 7.3 on Dell Optiplex GXi
. RedHat 7.3 on PPro VS440FX
. RedHat 9.0 on Celeron 466
. Aironet PCI4800
 
 site search
Custom Search
 
Aironet PCI4800 Wireless Card

This page documents my experiences with a Cisco Aironet PCI4800 wireless card under Windows 2000, and under RedHat 9.0 linux.
When I initially obtained the card, I could find very little information on the Aironet 4800A cards on the web. As a result, I decided to publish some information about the cards, as well as some information about my experiences with it.


Card Description

Overview
The Aironet PCI4800 wireless card consists of a PCMCIA card in a proprietary Aironet PCI cradle. The PCMCIA card has two MMCX connectors, with one connected to a female reverse polarity TNC (rpTNC) connector mounted on the PCI back plate. The card has a 2dBi "rubber ducky" antenna connected to the rpTNC connector on the PCI back plate.

The Aironet 4800 is an 802.11b compliant card, based on the Prism chipset, supporting 1, 2, 5.5 and 11 Mbps data rates, but it can apparently only do encryption at 1 and 2 Mbps.

This Aironet 4800 is a 100mW card (also referred to as the Aironet 4800A), but the later Aironet 4800B card, based on the PrismII chipset, is only a 30mW card, but feature greater sensitivity.

Aironet was purchased by Cisco around this time, and the Aironet 4800B was rebadged as a Cisco 340. Dell also resold the same card, badged as a Dell TrueMobile 1100.

Images
I've included some photos of my 100mW Aironet 4800A PCI card below.


100mW Aironet PCI4800A


PCMCIA card out of the carrier

underside of the PCMCIA card


2 x MMCX antenna sockets

PCI plate, showing rpTNC connector


pigtail with MMCX connector


Antenna Selection
The 100mW Aironet PCI4800 allows the antenna selection to be switched between each of the individual sockets, or set to "diversity", where the card will select the socket with the best signal.

Power Selection
Both the linux and Windows drivers allow the power output of the 100mW Aironet PCI4800 to be set to 1mW, 5mW, 20mW, 50mW and 100mW.

Specifications
The receive sensitivity of the Aironet 4800 100mW card is:
-93dBm @ 1Mbps
-90dBm @ 2Mbps
-83dBm @ 5.5Mbps
-80dBm @ 11Mbps

The receive sensitivity of the Aironet 4800B 30mW card is:
-90 dBm @ 1 Mbps
-88 dBm @ 2 Mbps
-87 dBm @ 5.5 Mbps
-83 dBm @ 11 Mbps

More detailed specifications and user guides for the Aironet 4800 cards are available from Cisco's website. For more detailed specifications for the Aironet 4800 100mW card, refer to this document.

Stand-Alone PCMCIA
Apparently the 4800B PCMCIA card can be used in a laptop, but I couldn't get the 4800A PCMCIA card working in a laptop running Windows 2000, or in a Ricoh PCMCIA cradle in a linux box, but could only get it working in the Aironet cradle.
Similarly, the Aironet cradle will not work with any other PCMCIA cards, but will only work with an Aironet PCMCIA card.


Firmware

Be sure to check the version of firmware your card is using, as there have been numerous updates over the years.
Firmware downloads are available from here on Cisco's website.

At the time of writing, the latest firmware available for the Aironet 4800 is 5.02.20 (released 20 March 2003).

I upgraded the firmware of my Aironet PCI4800 on a Windows 2000 PC, using the Aironet Configuration Utility.


Windows Drivers

Obtaining the Drivers
Cisco's website has various versions of Windows drivers available.

The Aironet Client Installation Wizard version 1.0 bundle includes client firmware 5.02.19, NDIS Driver 8.3/3.5, Aironet Configuration Utility (ACU) 6.0, and the Aironet Client Monitor (ACM) 2.0.

Alternatively, instead of using the Aironet Client Installation Wizard bundle, you can download individual software components.

Installing and Configuring Drivers
I inserted the Aironet PCI4800 card into a PII 300 desktop PC running Windows 2000 SP4, and installed the Aironet Client Installation Wizard version 1.0.

After two reboots, the installation was complete, and the ACU could be used to monitor and configure the Aironet PCI4800 card.

Monitoring Links
Once a wireless link has been established, the ACM application (which resides in the systray) only reports a signal strength in %, and a signal quality in %, rather than reporting the raw signal (dBm), noise (dBm) and SNR (dB).


Linux Drivers

There are a number of different linux drivers available for the Aironet cards, including the stalled linux-airo driver, which hasn't released any files since April 2001...

More recent linux drivers include Cisco's linux driver, as well as the airo driver included in the linux kernel.

I tried both these drivers, and found the airo driver to be easier to use, with more functionality.


Cisco Linux Drivers

Overview

The linux driver available from Cisco's website is a fairly recent driver, and supports various Aironet and Cisco cards. Although Cisco's website, as well as the driver release notes, do not mention the Aironet 4800 as being a supported card, the drivers work fine with it.

Note that the Cisco driver requires X to be installed on your linux box, as the ACU is a GUI application. While this may not be a problem for some people, I generally don't install X on my linux routers, as they typically run headless, and are configured from the command line remotely.

Obtaining the Drivers
Cisco's linux driver and release notes available for download from their website. Note that this driver only supports linux kernels 2.4.18 and 2.4.20-28.

I used the Cisco Aironet Drivers and Utilities for Linux version 2.1.

Installing the Drivers
After SCPing the tarball into /usr/src, I untarred it and compiled it:

cd /usr/src
mkdir aironet_2.1
cd aironet_2.1
tar zxvf ../linux-acu-driver-v21.tar.gz
cd linux
./install

The driver was then manually loaded:

insmod airo

Configuring the Card
The ACU is a GUI application, and must be run in an X session. The ACU can be started with the the following command:

/opt/cisco/bin/acu &

The ACU in the Cisco linux driver is very similar to the ACU in the Windows driver, and allows all configuration settings to be specified.

For testing purposes, I manually assigned an IP address to the wireless card.

Monitoring the Link
In the same way as the Windows ACU, the Cisco's linux ACU only reports the signal strength in %, and the signal quality in %.

The Cisco linux driver does not support wireless extensions, so all the tools usually used to monitor a wireless link (ie, iwconfig, iwspy, wavemon and /proc/net/wireless) cannot be used to monitor the wireless link.


Linux Kernel Drivers

The linux kernel has the airo driver, which works with the Aironet 4800A and various other Cisco/Aironet cards.

Compiling the Driver
The airo driver is a kernel driver, and can either be compiled as a module, or compiled into the kernel itself.

The following kernel option needs to be enabled:

Network device support
  -->Wireless LAN (non-hamradio)
       -->Cisco/Aironet 34X/35X/4500/4800 ISA and PCI cards

According to the help information available for this option, the airo driver supports various Cisco/Aironet ISA and PCI wireless cards, including the Aironet 4500, Aironet 4800, Aironet 4800B, Cisco 34X and the Cisco 35X.
This driver support both the standard Linux Wireless Extensions and Cisco proprietary API, so both the Linux Wireless Tools and the Cisco Linux utilities can be used to configure the card.

I chose to compile the driver as a module, rather than compiling it into the kernel, as it provides more flexibility for loading and unloading the driver on the fly.

Compiling a kernel is out of the scope of this article, refer to any of the numerous how-to's available on the 'net if you need more information on compiling a kernel.

After rebooting with the new kernel, and with the PCI4800 card installed in the linux box, I manually loaded the driver using

insmod airo

Interestingly, this driver created two network interfaces, namely wifi0 and eth3. (Note that the interface name depends on the number of existing network interfaces in your linux box. My linux box already had several network interfaces, namely eth0 through to eth2.)

I found these interface names could be used interchangably, and ifconfig, iwconfig, etc, all worked on both eth3 and wifi0.

Configuring the Card
Once the driver has been loaded, there are a number of ways in which the card can be configured.
You can use wireless extensions (ie, using iwconfig, the Aironet /proc interface, or the Cisco proprietary API.

When the driver is loaded, it creates a virtual subdirectory and several files in the /proc file system, namely /proc/driver/aironet/eth3/.

For example, configuring the Aironet can be done using wireless extensions:

iwconfig eth3 essid MartinMast
iwconfig eth3 rate auto

or it can be set by echoing the appropriate value to the Aironet's /proc interface:

echo MartinMast > /proc/driver/aironet/eth3/ESSID
echo Rate: auto > /proc/driver/aironet/eth3/Config

The /proc/driver/aironet/eth3/Config virtual file contains numerous other configuration items for the card, including the power level, antenna settings, etc, and most of these configuration items can be modified by echoing a new value to the /proc interface.

To ensure the airo driver would always be used for the correct interface, I edited /etc/modules.conf, and added

alias eth3 airo

For some reason, setting the card's link rate to anything other than auto or 11M would result in the card losing it's association with the access point. With the low signal I was getting on the link being used to test the card, locking the link rate at 11Mbps caused excessive packet loss.

Note that I didn't try configuring the kernel airo driver using the Cisco ACU or ACM, so cannot verify the functionality of the Cisco APIs.

Monitoring the Link
The kernel airo provides numerous ways to monitor the status of the wireless link.

Wireless extensions can be used, with "iwconfig eth3" reporting the following:

eth3      IEEE 802.11-DS  ESSID:"MartinMast"  Nickname:"mpot"
          Mode:Managed  Frequency:2.442 GHz  Access Point: 00:02:2D:1D:EC:29
          Bit Rate:11 Mb/s   Tx-Power=20 dBm   Sensitivity=0/65535
          Retry limit:16   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=90/10  Signal level=-86 dBm  Noise level=-256 dBm
          Rx invalid nwid:93  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:29   Missed beacon:0

Similarly, executing "cat /proc/net/wireless" returned:

Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 16
  eth3: 023f   96.  170.    0.     349      0      0    100   8023       57
 wifi0: 023f   96.  170.    0.     349      0      0    100   8023       57

I found wavemon also worked fine with this driver, reporting the same information as iwconfig.

The /proc interface can also be used to monitor the link status, with "cat /proc/driver/aironet/eth3/Status" returning:

Status: CFG ACT SYN LNK WEP
Mode: 23f
Signal Strength: 18
Signal Quality: 101
SSID: MartinMast
AP:
Freq: 0
BitRate: 11mbs
Driver Version: airo.c 0.6 (Ben Reed & Javier Achirica)
Device: PC4800A
Manufacturer: Aironet Wireless Communications
Firmware Version: 5.02.20
Radio type: 2
Country: 0
Hardware Version: 52
Software Version: 502
Software Subversion: 14
Boot block version: 127

Wireless extensions don't seem to report the noise correctly (0 and -256dBm), and the signal level doesn't seem correct (-86dBm, while a sensitive 30mW RoamAbout only manages a signal level of -94dBm on the same link). Similarly, the SNR reported by wireless extensions is definitely not correct (it's reported as 90/10, but should be closer to 10-15dB).

Persistent Configuration
Once I was happy with the way the card operated, I made my configuration persistent by editing /etc/sysconfig/network-scripts/ifcfg-eth3 and specifying all the options there:

DEVICE=eth3
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.60.11.2
NETMASK=255.255.255.224
INFO="WA FreeNet..."
ESSID="MartinMast"
NWID=""
MODE="Managed"
FREQ=""
CHANNEL=""
SENS=""
RATE="auto"
KEY=""
RTS="off"
FRAG=""
IWCONFIG="nick mpot"
IWSPY=""
IWPRIV=""

Note that this is on a RedHat 9 Linux box, and RedHat 9 ignores wireless.opts, so all wireless settings can be configured in the interface script itself (see my page on building a Linux Wireless Router using RedHat 9 for more details on configuring wireless cards in RedHat 9).


Wireless Compatibility
During my testing, I identified the following compatibilities and incompatibilities of the Aironet PCI4800A in managed mode:
  • refuses to see a Minitar MNWAPB access point
  • associates fine with an Orinoco RG500 access point
and in ad-hoc mode:
  • connects fine to a Cabletron/Enterasys RoamAbout card
  • connects fine to a Minitar MNWAPB access point

References


last updated 22 Oct 2013
 
.