GNU/Linux and WiFi

Short URL:


The idea was simple: why not build my own little GNU/Linux based wireless network in a spare five minutes?

WiFi Maniac needs aspirin and emotional support

Upstairs at my place there’s a play computer with lots of development tools, and... ok, a few games too, along with a WiFi router; downstairs there’s the study and an old laptop. Installing Fedora downstairs and Ubuntu upstairs was quick and painless. With a few clicks on the wizards and a sudden surge in adrenalin as I formatted the disk partitions, lots of package names whizzed by at great velocity and puff finished. Yes, an anticlimax of simplicity and stability. Just one small, tiny, insignificant task left, the WiFi connections. No problem, I’m not stupid. I have the power: I know how to Google. So five pages later, I need ndiswrapper for the laptop and the Zd1211 module for the gam... um, I mean development machine. After an hour of looking at the Ubuntu machine, prodding it to see if it was still breathing, walking up and down, and nodding profoundly to my family as if I knew what I was doing, I realized the obvious: Ubuntu has the Zd1211 driver already installed. With loud rounds of sarcastic applause ringing in my ears, I followed the readme instructions (for non root users).

sudo ifconfig wlan0
sudo iwconfig wlan0 essid Sitecom key xxxxxxxxx
sudo dhclient wlan0 

The actions worked. And, being GNU/Linux, the actions always work. I was connected. I was the master of my WiFi universe upstairs and it only cost me two hours and a couple of dents to my ego. Luckily or perhaps not, my family hadn’t changed their collective opinion of my humanity, being a caveman I bluffed well. However, if I’d started with the black magic recipe or had read the right documents in the correct order in the first place, then the cost in real time for installation would have been less than a minute. But no one else knew that did they? Shh... it’ll be our little secret!

If I’d started with the black magic recipe or had read the right documents in the correct order in the first place, then the cost in real time for installation would have been less than a minute

Next the big challenge, Fedora Core 5. Core 5 sounded like a nuclear reactor and the WiFi turned out to require some real science. First, I tried the Zd1211 trick, but Zd1211 wasn’t installed. No Wlan0 interface would come up. So back to Google, which, in minutes, had turned up a tantalizing hint: ndiswrapper is a rather excellent utility that allows Windows drivers to work under GNU/Linux.

The problem was that I needed to compile the wrapper. To compile you need the header files of the installed kernel. I dutifully downloaded both the 586 and 686 header files. Informed the compiler where to find the interfaces and then compiled. The code compiled cleanly and, with a highly motivated yelp of delight, I deployed the youthful binary. The wrapper didn’t work. What next? The wrong header files perhaps? Being of strong will—hardened by the day-to-day competition for food at the breakfast table—I sought out an ndiswrapper package and installed it. Failed dependencies!

Finally, brute force won over intelligence, as it often does with me. I updated the kernel and installed the kernel source code and headers. Compilation worked, but guess what? I had the wrong Windows drivers. One and a half hours later finally all was good, everything works predictably, stably, and will do so until an asteroid hits the earth or my younger son decides to finger paint the internals of the hard drive. Even better, I have that feeling of killing the prey, climbing to the top of the mountain and looking down victoriously. And only for eight hours work. Or ten minutes if I did the same actions in the correct order a second time around.

The moral of this story is clear. WiFi is standard functionality. GNU/Linux is shaping up as a desktop competitor against Microsoft. Tools such as Zd1211 and ndiswrapper are essential for that competition. I therefore welcome advances in the WiFi configuration field and I am happy to see that this is already occurring.



Fedora Update

Header files






ofeeley's picture
Submitted by ofeeley on

Advocating wrappers of non-Free binaries in a Free Software magazine. A distro relying on ndiswrapper for operating wifi really shouldn't be called a GNU/Linux desktop.

Presenting this as a competition between Microsoft and Linux on the desktop (which must be won by "our team") leads to the fuzzy thinking that advocates non-Free rubbish like ndiswrapper that leads to greater problems further down the road.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Stop moaning. Sometimes I want to make a baseball bat and carve the word "reality" onto it. Then use said bat. Because linux has ndiswrapper was the deciding factor for me to switch over entirely. Which I have.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Switched over entirely? You're still beholden to the continued proprietary development of the Windows binary blobs for your cr*ppy WiFi card. Hint: They stop as soon as your card is out of production and MS changes the driver model again.

Get a Ralink based device (aprox. EUR 22.00) and just plug and play, NATIVELY. Why should you buy supported hardware to run a free OS? Simple. You should spend money to be able to use a computer in freedom. If freeloading is your only desire, you are not a part of the community.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

You've been sitting on that bat too long! :)

You seem to believe that your decision to switch to GNU/Linux is one that closes any argument and that you should be met with applause and gratitude.

Unfortunately this is not the case when you and others like you start promoting non-Free software and creating a demand for it. By doing so you remove the demand on manufacturers to open up their source code so that we can completely functioning hardware running the way we want it to run.

Alan Berg's picture
Submitted by Alan Berg on

My point being,

that ndiswrapper support of proprietary drivers fills a gap that is slowly but certainly getting filled by freesoftware :)

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Sir, you're seriously confused. This is not the "it runs so shut up" camp.

Calling ndiswrapper a solution to get WiFi up and running is a joke at best. Where does that leave AMD64 and PowerPC users? Where does that leave the ability to debug and fix problems in a timely fashion? Just like it happened with video cards where we accepted that the ATI and NVIDIA binary drivers are ok for a whole lot of wrong reasons, it's going to happen again with WiFi drivers. Where are we now with the video drivers for high end cards? We have binary blobs for a limited number of architectures which we can't study, modify, improve or port to other architectures. Would the linksys hacks be possible if we had accepted ndiswrapper as a solution? When was the last time you actually saw a vendor providing driver downloads for Windows on MIPS?

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

I did the same thing with Mandriva, two notebooks, Dell LS400/3Com card and 5150/IPW2200BG, desktop Dell 2400/dlink Gsomething and a Playstation/Dlink Bridge. From scratch took less than 3 hours, only Googled one minor Playstation thing. No NDIS wrapper used either.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The sad reality is that *MANUFACTURERS OF ALL THIS HARDWARE* do not (and I mean NOT!) create Linux-able drivers for their hardware. They live in a microsoft only world. Yes the ndiswrapper is an intermediate step that must be taken to in order for Linux users to use much WIFI hardware. Its sad and unfortunate that genuine Linux drivers are not available from the manufacturer (and equally troubling that programming documentation is not available from many of them without developers signing non-disclosure agreememts). Also, the NDA's may come with a fee, or limited use licence (which ruins all hope for a general Linux driver). In the intermediate time between now and when Linux achieves world domination, the ndiswrapper is here. Happy wifi'ing.

Alan Berg's picture
Submitted by Alan Berg on

Yes, again I can but agree,

if the Ubuntu distrubution works out the box for WIFI, then this distro will have the advantage over the less supported and if the modules are open source then all the licensing and moral details are non existent as well. However I must admit, I like yum/apt Redhat/Ubuntu biodiversity on my network, makes for interesting magazine articles and shorts :)

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Always ask if it is supported. If the sales dude doesn't know, help them find out if they have a net connection (show them where to search).

If you don't buy because they can't supply something that is suitable, tell them you will have to make the purchase elsewhere.

Of course if you have existing hardware that only works with ndiswrapper, that may be the only option.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Use Ralink. Their chipsets are in a number of new cards. For instance, the Hawking HWC54D, which you can buy any number of places (including retail computer places like CompUSA). Not everyone who makes 802.11abg cards includes binary firmware in "free" drivers or ignores GNU/Linux.

Don't be part of the problem. Be part of the solution. Encouraging manufacturers to rely on ndiswrapper usage sucks for people like me, who are forced through BIOS restrictions to use Broadcom wireless cards which crash ndiswrapper + amd64 (total and complete lockup) on a regular basis.

I use the Hawking instead, and hey, guess what? The ralink driver works great. The only problem is you can't use it as a base station, but that's coming.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

Why should someone have to go spend additional money on another wifi card when they have one that is prefectly fine to begin with. Part of the problem with Windows applications and hardware is cost and security. Why is everyone so defensive when a person wants to work with what they have already, instead of having to stock pile additional hardware because it doesn't work after installation. I have a broadcom 4303 internal wifi card that would not work after installation. I found two solutions and chose the one that didn't require the ndiswrapper to be installed, however I lost in the end by choosing not to install the ndiswrapper since this option limits my top speed to 11M. I will not listen someone who tells me I have to spend more money on hardware when there are fixes available and are accepted by Ubuntu.

I fully agree that the makers of these devices should include Linux in there driver configurations. Part of the problem is not that hardware manufacture is not supporting linux, they choose to not support linux on legacy hardware. This is a common practice to minimize costs. Alot of users I work with are using old hardware and therefore more likely to find no driver support. Broadcom has drivers that support Linux for there current hardware, it just so happens they don't support my current Wifi card, but I'm not going to spend and extra $20 for a piece of hardware if I don't have to.

Author information

Alan Berg's picture


Alan Berg Bsc. MSc. PGCE, has been a lead developer at the Central Computer Services at the University of Amsterdam since 1998. In his spare time, he writes articles, book reviews and has authored three books. He has a degree, two masters and a teaching qualification. In previous incarnations, he was a technical writer, an Internet/Linux course writer, and a science teacher. He likes to get his hands dirty with the building and gluing of systems. He remains agile by playing computer games with his sons who (sadly) consistently beat him physically, mentally and morally at least twice in any given day.

You may contact him at At