From ArchWiki
Revision as of 06:33, 20 March 2009 by Buce (talk | contribs)
Jump to navigation Jump to search

Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end


Wicd is a network connection manager that can manage wireless (a la Wifi Radar) and wired interfaces, similar and an alternative to NetworkManager. Wicd is written in Python and GTK+, requiring less dependencies than other network managers.


Standard Installation

Wicd is available from the standard repositories:

# pacman -S wicd

This will install Wicd and all the necessary dependencies, including dbus, python and gtk2.

You will likely want DHCP, secure wireless management, and GUI icons as well:

# pacman -S dhclient wpa_supplicant hicolor-icon-theme

Other Packages

The wicd-bzr buildscript is available from AUR, which should build the latest development branch.

If you need an alternative version or you just want to roll your own package, you can easily (re)build it using ABS.

Getting Started

Initial Setup

Wicd provides a daemon that must be started before the tool can be used. Also, running multiple network managers will cause problems, so it is important to disable all other network management daemons.

First, stop all previously running network daemons:

# /etc/rc.d/network stop
# /etc/rc.d/dhcdbd stop
# /etc/rc.d/networkmanager stop

Now, edit /etc/rc.conf as root:

# nano /etc/rc.conf

Disable (!) any devices in the INTERFACES array that you wish to manage with Wicd. For example:

INTERFACES=(!eth0 !wlan0)

Disable (!) any existing network management daemons in the DAEMONS array, including network, dhcdbd, and networkmanager.

Now, add dbus (if not already present) and wicd to the DAEMONS array, in that order. The DAEMONS array should now look something like this:

DAEMONS=(syslog-ng dbus !network !dhcdbd !networkmanager wicd ...)

Note: If you use hal, replace dbus with hal in DAEMONS array, as the hal daemon will automatically start dbus.

Save and close.

Add your account to network group:

# gpasswd -a USERNAME network

Lastly, start the dbus and wicd daemons:

# /etc/rc.d/dbus start
# /etc/rc.d/wicd start

Running Wicd

To load Wicd, run:

$ wicd-client

Or if your desktop environment does not have a notification area, run:

$ wicd-client -n

You can add wicd-client to your DE/WM startup to have the application start when you log in. Note that Wicd doesn't prompt you for a passkey. To us encrypted connections (WPA/WEP), expand the network you want to connect to, click 'Advanced', and enter the relevant info.



If you had dbus already running, but for some reason wicd complains about it, restart both.

# /etc/rc.d/dbus stop # we are stopping manually instead of restarting to eliminate possible errors
# /etc/rc.d/wicd stop
# /etc/rc.d/dbus start
# /etc/rc.d/wicd start

Hidden Wireless Networks and Autoconnection HACK

I had problems with my hidden network and the autoconnection function of wicd. It seems that the essid of my hidden network is not "<hidden>", but an empty string. Connect manually to the network and run:

$ iwlist scan

Output of my hidden network:

wlan0     Scan completed :
          Cell 01 - Address: xx:xx:xx:xx:xx:xx

If you have the same problems and your iwlist output shows ESSID:"", change /usr/lib/wicd/networking.py:

cd /usr/lib/wicd
sed -i.orig -e 's/if CurrentNetwork\["essid"\] == "<hidden>":/if CurrentNetwork\["essid"\] == "<hidden>" or CurrentNetwork\["essid"\] == "":/' networking.py

This changes /usr/lib/wicd/networking.py and saves a backup of the original file to /usr/lib/wicd/networking.py.orig.

Based on wicd version 1.4.1-4

Related links