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
|