Wednesday, February 21, 2007

[Howto] Wireless networking on Linux

As I said before, a lack of wireless support is one of the biggest disadvantages of Linux. Today we're going to take a look at some ways to get your Wifi card working if your distribution doesn't detect it automatically.

The least technical way: try a different distribution
Not all Linux distributions have equal wireless support. For example, both openSUSE and Fedora Core weren't able to detect my wireless card so I had to install the driver manually using my Windows driver (see further). On the other hand: Ubuntu and Kubuntu immediately detected it without me having to deal with the command line. You should always check the list supported wireless cards for your distribution first (if any, but most distros have such a list). Is your card not listed? Don't panic! Perhaps it hasn't been tested yet so maybe you should. Make sure that you add your card to the list if you get it to work.

The most effective way: using your Windows driver under Linux
This method should work for most people, but requires you to do some commandline stuff. First of all, you'll need to download ndiswrapper. Sometimes this package is installed by default, sometimes it can be installed from your distribution's installation CD/DVD and sometimes you'll just have to download it yourself.

Secondly, you'll have to find the Windows driver for your Wifi card. You can download it from the website of your card manufacturer. If your driver's a .exe file, extract it with 7-Zip (Windows/Linux) or a different program that can extract .exe files. When done, open the folder with the contents of the .exe file and search for a folder that contains both a .inf and a .cat file. When you find that folder, copy all its contents some place you can access under Linux. Boot Linux and install the ndiswrapper package if you haven't done so already.

Open a terminal window and go to the directory where the .inf file - along with the other driver files - is stored. For example:
cd /home/pdedecker/Desktop/WirelessDriver
Of course you'll need to replace /home/pdedecker/Desktop/WirelessDriver with the path to the directory. Put quotes before and after the path if it contains spaces.
Then, enter:
sudo ndiswrapper -i myDRIVER.inf
Replace myDRIVER.inf with the name of your driver's .inf file. After entering the root password, you should get the message "Installing myDRIVER..." (where myDRIVER is the name of your driver). We only need to enter two more commands:
sudo ndiswrapper -m
sudo modprobe ndiswrapper
To see if your card got installed correctly, do:
If you see a device called wlan0 (or something similar), you've successfully installed the driver. Use the wireless configuration tool that comes with your distro to configure your card.

The old-skool way: search Google
Still no luck? Search Google; you might just find what you need. However, these drivers may be hard to install since you usually have to compile them yourself. If you're lucky, they offer a .deb (for Debian, Ubuntu and related distros) or a .rpm file (for distros such as Fedora Core and openSUSE). They can be handled by your distribution's software management system, which makes it a lot easier to install. Always check first if the driver you're downloading requires additional packages to avoid having to switch between Windows and Linux multiple times to download all packages.

Plan D: check the website of your card manufacturer
If Linux wasn't able to detect your card automatically, you should check the site of your card manufacturer. In some cases, you'll find a Linux driver for your card there. Again: usually you have to compile these things yourself. Also keep in mind that most of these drivers haven't been tested as much as the Windows version so it might not work as desired.

Some final remarks
Unofficial wireless drivers for Linux are unsupported by your card manufacturer (Linux communities may be able to provide you the support you need though). These drivers may or may not work and come with no warranties whatsoever. In the worst case, they mess up your system. Speaking of warranty: I advise you to check your card's warranty before trying any of these drivers. Some manufacturers may not want you to use unofficial drivers.

Labels: , , , , ,


At Thursday, 08 March, 2007, Anonymous Olivier said...

Hello Pieter,

Nice intro about Wifi under linux. You maybe know that ndiswrapper is not the only way to get wifi. Hopefully, madwifi or other drivers are released. Ndiswrapper should be the last method to use. I hope in the real near future, there will be more native driver under linux :) Good Job.

At Thursday, 08 March, 2007, Blogger Pieter De Decker said...

I've heard about madwifi, but since that is software made specifically for WLAN chipsets by Atheros I didn't mention it. I was just trying to cover the most important stuff. I appreciate your comment though. :)


Post a Comment

<< Home