22 May 2007 fab   » (Master)

aironet/cisco wifi driver and wpa

The airo driver, the linux driver for aironet and cisco wireless cards, gained recently support for WPA encryption. Source code is available on www.gna.org in the airo-wpa module. This feature is now a requirement for access to all wireless networks configured by a security conscious administrator.

Matthieu Castet did an amazing work reverse engineering the windows driver with a modified ndiswrapper kernel module on linux. As a side note, luckily, we both live, Matthieu and me, in the country, where doing this reverse engineering is still legal, precisely for interoperability reason. Matthieu modified the airo driver and added the bits needed to handle a card with a WPA-aware firmware, and to talk to the wireless-extensions API with these new authentication schemes.

I still own an old pcmcia aironet 4800 card (hey Benjamin, if you read me, this is your card!), so I could test this modified driver with it. The first step is to reflash the card with a newer firmware, that supports WPA. Of course, This hardware is no longer supported by its vendor (aironet and now cisco) for a long time, and the latest released firmware is several years old. But, thanks to a nice hardware design, all 350 series cisco cards share the same 4500 radio hardware. So with luck, a recent firmware for cisco 350 cards does happily apply to my prehistoric pcmcia card.

Now the moment of truth is to test if the card and its unsupported WPA-aware firmware will associate with a WPA-enabled access point, using PSK authentication. And the answer is yes. wpa-supplicant successfully associates with my access point. I also made a test with NetworkManager, but the connection alternates up and down states, when wpa_supplicant runs in this context.

I will probably try to debug the problem a bit further, but what adds a bit of difficulty to this task, is that my pcmcia card doesn't work with ndiswrapper and the original Windows driver. So replaying the same method than Matthieu did, is not currently possible for me.

Latest blog entries     Older blog entries