Working with Wireless in Linux

Foreword

by Brett Thomas

It doesn't take many looks over my articles to work out that I'm a bit of an open-source fanboy. It's not that I hate Microsoft or wish that Windows would fall into the pit of 1,000 hells and burn forever and ever amen...uh, sorry, I got carried away. It's just that I think there are some things that are better if free – and anyone with a computer has a right to a stable, secure operating system.

However, many people will immediately say that Linux is simply not ready for the masses – and I agree with them. What bugs me is that when asked why, I'm hearing complaints from ages past treated as present-day problems: "I don't want to have to work in a command line," and "It's so hard to configure," are just a couple of examples.

It's true that some things still aren't utterly plug-and-pray, but a lot of things really are nowadays. Unfortunately, one thing has continued to stay on the fringes of penguin compatibility no matter how pervasive it's become in day-to-day life: Wireless networking.

Windows and OSX have such simple ways of dealing with wireless, but for many very good corporate reasons, open-source alternatives have not seen such love. The problem stems from drivers, which (for open source operating systems especially) divulge a lot of secrets for how the hardware operates. Talk about giving away the golden egg – how would you like to broadcast every little thing that makes you special to your competitors worldwide?!

Unfortunately, because of the very tight control wars over drivers in general, Linux has lagged in the wireless world. We've largely been forced to go hunt for revision numbers and version SKUs on packaging, scrolling through ten boxes of four brands of card to find which one features a chipset that bothered to develop proper Linux drivers (for the record, that's mostly Ralink and Atheros, which you can find in various card versions of several major brands including Linksys, Netgear and D-Link). Once our prize was found, we'd run home and fire it to gleefully enjoy...

...the same wireless that any Windows user had in about five minutes. Or, worse yet, maybe we got the revision number wrong or it wasn't clearly marked, and the chipset didn't work.

The dreaded "Address not found..." strikes fear in the hearts of
would-be Linux wireless users.

This frustration has (thankfully) largely gone the way of the dodo. Developers are starting to support open-source more, and you can even find that Linux allows you more power over your wireless (and makes it easier to set up) than many Windows users could ever dream. You can set network information, routes, and even tweak power levels (including over-powering your card above stock values, thus getting a lot better range)—simply by using one or two commands.

Even the cards that don't seem to work out of the box are really just a few steps away now. And that's exactly what we're covering today – it's time to demystify the world of wireless connectivity in Linux to help you troubleshoot a new install. Ken Gypen, our resident guru of all things Linux, will walk you through the process of identifying, installing, and loving your wireless networking card.

Unlike several of our other Linux articles, we're going to start this one with the assumption that you have no prior knowledge of anything and a clean install of something user-friendly like Ubuntu. With that, it's time to hand it over to Ken.

Introduction

Imagine you just took the plunge to the dark side of the moon and joined the penguin squad by installing Ubuntu on your laptop. Everything went flawlessly - formatting, installing...it even booted up! It was perfect, until you tried to open up Firefox and saw the dreaded "Could not find..." text. You aren't connected to your home wireless network.

What happened? Linux was supposed to be so easy now. Suddenly there's no connection, but what is the problem?

Well, that's exactly what we will try to help you find out. Wireless networks, as prevalent as they are nowadays, are not exactly the strong suit of Linux – but they're actually a lot easier than they seem. Just don't expect a cookie cutter fix-all solution to appear – as much as it pains me to say, some wireless chipsets just aren't supported at this point. However, don't fear because the great work done by the developers of the nearly legendary NDISwrapper project means that lots of previously 'Windows only' wireless cards are now known to work under Linux.

But let's take it one step at a time and start at the base: Hardware. For this guide I'll be using my laptop as the test subject, which uses an Intel PRO/Wireless 2200BG wireless card. Being Linux minded as I am, I bought one that has Linux wireless support from the box, but not everyone is so lucky. If you're looking for a nearly guaranteed easy solution, here's a suggestion – all fanboyism aside, Intel usually offers pretty decent Linux support.