20 June 2007

What to Buy for Zero-Effort Wireless

Buying a new laptop? Get something with a Centrino sticker. It'll have an Intel processor, chipset, and an Intel wireless card. Intel wireless is the only built-in wireless I've found with which you are guaranteed 100% compatibility out of the box.

Thinking about adding wireless to a desktop or laptop? Go with something with a Zydas chipset. They're USB so you can take them with you, unlike PCI cards. Also, quite a lot of them (the ones marked green on that page) have full support for encryption (yes, up to WPA2) and work with NetworkManager and Feisty out of the box. The TrendNet TEW-424UB should work just fine and is very affordably priced. Another good choice is the ZyXEL G-220. For laptops which have built-in wireless, you should be able to buy Intel Pro/wireless 3945ABG Network Connection - Network Adapter - Mini-pci Express or Intel PRO WIRELESS 2915ABG-802.11 A/B/G Mini-PCI ( WM3B2915ABGNAX ) and replace your old card.

More than just the two I recommend will work for you, depending on your needs. If you don't need WPA or WPA or if you're willing to switch to Wifi-Radar or some other alternative to NetworkManager, your options are much wider. If you don't need WPA/2, a Broadcom-based card or any card made by Cisco should work fine for you, too. However, if you just want something that will work immediately with NetworkManager and can take any kind of encryption you throw at it, this is for you.

If those ideas don't appeal to you, Passys has a list of thousands of wireless devices which can be sorted by chipset, manufacturer, or interface. It tells you what driver you need, and what model uses it. If there are different directions for different versions of a device, the Vendor/Product IDs (type "lspci" to check yours) are listed. It's a great resource. Then, compare to NetworkManager's compatibility list. There will be a lot rated "green" on Passys which are incompatible with NetworkManager (see below for why) for WPA, so make sure you pay attention. I'd suggest staying away from things that use Prism. The Orinoco driver fights with the hostap driver for control of your card, and then it doesn't work without blacklisting one of them. And that's not zero-effort. Printing out a list of the Atheros-chipset-based cards to take to the store is a good idea too. Any "green"-rated Atheros cards will work with NetworkManager.

If you're wondering, like I'm sure many are, why wireless on Linux is so weird, Val Henson recently answered that question on a LinuxChix IRC channel where she gave the first (of, we hope, many) "The Guru Is In" talk. I can't quote her since LinuxChix IRC is not logged, and I didn't save a log on my computer (and I'm not on my own computer right now anyway). What she said, though, is that there is no consensus as to how wireless should be done. There are a few different approaches being used by different teams working on different drivers. Since they haven't all agreed on one way to do it, the user has different hoops to jump through for different cards, chipsets, and drivers, and until they DO unite in one method, we're stuck with how it is right now. You can see this in play by looking at that Network Manager page. Under RaLink, it says "While the driver supports WPA, it does not use Linux Wireless Extensions for WPA support, which is required for NetworkManager." NetworkManager requires that WEXT be used for WPA on the driver. Some drivers do that, some drivers don't. All the people who can't get WPA with NM but get it with Wifi-Radar, that's why. Try to convince the team writing your driver to implement WEXT, and if they do, you'll end up being able to use NetworkManager. As long as the devs writing wireless drivers don't all agree to use one way to interface with the rest of the OS, different GUIs will be needed for different drivers. If they want to implement more than one so you can use Wifi-Radar OR NetworkManager, that's good too, but some sort of standard needs to happen.


CMH said...

Great blog! I FINALLY got my Linksys WMP54GS card with Broadcom 4306 chip working with WPA in Feisty. Then via the Internet connection, I allowed Feisty to do an update. Immediately after that, Network Manager stopped working. Alas, so I was reading your blog with great interest. Will any "green" Atheros based card also work with WPA with Network Manager? If yes, I'm going to buy one. Thx!

Mackenzie said...

Yes, "green" Atheros should work with NetworkManager using the madwifi drivers. According to NetworkManager's hardware compatibility listing, they take a bit longer to scan for networks than other cards, but they should be fine with WPA.

The Broadcom card might work with wifi radar or wicd and wpa_supplicant/wpagui to get WPA, but it's not supported for WPA on NetworkManager.

Anonymous said...

wireless support in linux is indeed a sad joke, i have 4 wlan cards and only on of them works fine (supports WPA etc...)

This means that ubuntu is not nowhere near ready for a laptop/wireless use

Anonymous said...

Don't shoot the messenger. Ubuntu / Linux is just the messenger telling you your hardware can't work. That's not Ubuntu's fault. It's the hardware manufacturers'.

It's not that Ubuntu/Linux isn't ready for the desktop, it's more that the hardware manufacturers aren't ready for Linux, or rather, they still don't want to accept that Linux users provide a viable market for them. So, they don't build Linux drivers for their hardware, leaving folks trying to patch something together in their spare time, putting us in situations like this, where wifi doesn't work well out of the box for Ubuntu / Linux. And, since open source follows a natural evolutionary path, different folks will do different things in trial and error, until, over time, a standard way will shake loose and rise to the top, which ends up being a very good solution, since it usually takes into account all the trial and error others have put into their side-projects.

Anyways, good article, MacKenzie...was pretty informative and useful. Wish more folks would offer insight & solutions like you do, instead of just complaing that "it's not working" or "it's not ready for the desktop".

Anonymous said...

Side note, I got the WMP54GS, also. There's 2 versions out there...an older one that uses a chip that Ubuntu/Linux can operate with using ndiswrapper. But, they recently started using a new chip which won't work, regardless of using ndiswrapper. I got mine about a week ago (about 9/1/07 from CompUSA). I followed all kinds of guides online about using ndiswrapper, wicd, wifi-radar, etc. Most I could ever get it to do was detect the surrounding networks via wicd / wifi-radar, but couldn't get it to detect.

I ended up getting a WDA-1320, and it worked well using madwifi, wicd & WPA. However, that was with the network visible. When my roommate re-hid the network again after I was up and running, I'd get disconnected every few minutes (I assume due to idle time), I'd have to fight with wicd to try to reconnect, and eventually went to wifi-radar to try it, and it just won't connect, period. It's annoying. So, the card worked, but not with a hidden network.

Latino Mike said...

ur all right... getting wireless to work in linux is a huge pain in the butt... it just takes too much time, energy, patience and it still may not work... and mckenzie ur also right that it's not linux's fault that wireless doesn't work like it should... it's because the card companies simply don't make their products to be 100% compatible with linux... anyways, i would definitely switch from windows to linux in a heartbeat, but i need wireless to work and right now windows just does it better.