Sunday, July 01, 2007

NetworkManager, Wireless cards and WPA

So, I was setting up a PC for my sister running Kubuntu 7.04 (Feisty Fawn) and she needed wireless to be able to connect to the internet. I had a spare NetGear MA311 PCI card, and I figured it's fairly old, it's been well supported for ages using the hostap driver - so it should just work out of the box, right?

Wrong. I couldn't even see any networks using KNetworkManager. After fiddling around I discovered that not one, not two, but three wireless drivers were dueling to access the card, and the one that won was the old linux-wlan-ng driver which doesn't support any wireless extensions that NetworkManager needs. After searching through the bug reports at launchpad.net and blacklisting the prism2_pci, prism2, hermes, orinoco, and orinoco_pci modules, I eventually got it so that hostap was the only driver in charge of the wireless card. I tested all of this on a spare machine at home and it connected to my wireless just fine.

I drive back over to my sister's place in full anticipation that it will now work with no hassles. Nope - I discover the network at her flat uses WPA, and inexplicably KNetworkManager can see the network but thinks it's only WEP. Unfortunately I had not tested making a WPA connection at home beforehand or I would have discovered this problem immediately. I tried connecting manually with KNetworkManager, I tried running wpa_supplicant directly (again, it could see the network but insisted it was WEP), and I tried putting the connection settings in /etc/network/interfaces; nothing worked.

I knew I could connect to the wireless network at my sister's flat just fine with no configuration from my laptop (running the same version of Kubuntu, but with built-in Intel wireless using the ipw2200 driver), so I knew it could work. So after looking through what was available for purchase here and checking up on Linux support, I bought two more PCI wireless cards - an Edimax EW-7128G and a Netgear WG311T.

At home I tested the Edimax card first. It was detected (using the rt61 driver) and again could see my now WPA-encrypted network, but again it told me that it was encrypted using WEP and not WPA, and would not connect to it. Sigh.

The Netgear card was another story altogether. The test machine I had at home wouldn't even get past the BIOS screen with it plugged in, which was disturbing. However, I tested it in another machine I had using a Kubuntu live CD and to my surprise it connected first time with no configuration. Next weekend I put it into my sister's PC and it connected out of the box. Wireless problems solved!

So, if you're looking for a PCI wireless card that should work out of the box with Ubuntu/Kubuntu Linux, then the Netgear WG311T could be the answer - assuming your PC will boot with it plugged in, that is. I'm sure there are other cards that work well, too, and with the introduction of the new wireless stack in the soon to be released 2.6.22 kernel, things will hopefully get a lot better for wireless under Linux in the next 6 months. Still, right now it can be a little frustrating :(

No comments: