Linux Wi-Fi Works With wicd

If you find yourself more confused than connected when you're using a Linux laptop, wicd may be the ticket.

 By Carla Schroder
Page 1 of 2
Print Article

Wireless management on Linux is a bit of a hodge-podge, especially for roaming users. NetworkManager, KWifiManager, and various other utilities that have come and gone all attempt to make managing different network connections easy. NetworkManager and KWifiManager do a pretty good job, though you often have to finick and fuss a fair bit. wicd (pronounced "wicked"), the wireless interface connection daemon, tries to do the job better, so we're going to give it a test drive.

The short story is: On a system with a single supported wireless interface it works very well. I like it better than NetworkManager, which to me is vexing; I always remove it. It's similar to KWifiManager, which I like a lot. Some differences are wicd only creates profiles for wired interfaces, while KWifiManager manages wireless profiles. But KWifiManager requires root privileges to create profiles. KWifiManager seems less picky about interfaces. I tried it on two Thinkpads: an older R32 and a newer T61. The R32 runs Debian Testing, and has an antique, onboard Prism 1 wireless interface. The T61 has the onboard Intel Pro 3945ABG wireless chipset, and runs both Sidux and Kubuntu Hardy Heron. I also have a PC Card Atheros-based wireless G interface.

KWifiManager is happy on both machines and with all interfaces. wicd, on the other hand, had problems with the ancient Prism 1 interface, and it wasn't too sure about the wireless PC Card either. There may have something about Debian Testing that it didn't like, because it performed perfectly on the T61 in both Sidux and Kubuntu.


Visit obtaining wicd for installation instructions. It was originally designed for Ubuntu, and there are now instructions for installing it on Debian, Slackware, Fedora, and Arch Linux. It's a nice little daemon with few dependencies; it does not depend on large wads of Gnome or KDE libraries, so it's a lean installation into any window manager or desktop. KWifiManager depends on about 15 megabytes of KDE dependencies, while wicd pulled in a mere total of two megabytes for itself and its dependencies.

wicd is included in Zenwalk and Linux Mint, and I expect more distributions to follow.

If you're using NetworkManager, which is the default on a large number of distributions, or any other wireless connection daemon, you need to remove it. There can be only one.

Initial Configuration

You should first have a working wireless interface. Then make sure that none of your wireless network interfaces are configured. In Debian, Ubuntu, and all the extended Debian family, /etc/network/interfaces should look like this, because you must always have the loopback device configured:

 auto lo iface lo inet loopback 

wicd is also supposed to manage wired interfaces if you choose, but I had some problems with it, so I configured mine manually. So leave all interfaces that you want wicd to manage un-configured.

On Red Hattish Linuxes (e.g. Fedora, CentOS) the insanely over-complicated configuration file structure means it's easier to use a graphical network configurator, like system-config-network. Or if you want to do it the hard way, rename your wireless /etc/sysconfig/network-scripts/ifcfg-eth* file to /etc/sysconfig/network-scripts/ifcfg-eth*.bak.

Figure 1. Click for a larger image.

Somewhere in your applications menu should be a nice wicd icon, or you can launch it from the command line with /opt/wicd/gui.py. I don't know why anyone would want to type all that, but now you know what it is. If you want a simple launch command like wicd you'll have to create a Bash alias or some such. When you open wicd you'll see something like Figure 1.

If you are in range of several wireless networks, all of them will appear on this page. You can hit the refresh button to make sure you're getting all of them.

Finally, you'll need to know which wpa-supplicant driver your wireless interface uses, and select it from wicd's preferences menu. wext is a generic driver that works with a lot of wireless interfaces, but it's usually better to select the driver for your interface. You may also need to configure your wireless interface name on the Preferences page. How you do know what these are?

This article was originally published on Jul 7, 2008
Get the Latest Scoop with Networking Update Newsletter