Wicd

From ArchWiki

Jump to: navigation, search
i18n
English
Italiano
简体中文

Contents

[edit] Introduction

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.

[edit] Installation

[edit] 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

[edit] SVN Releases

The wicd-svn package is available from the AUR, which should build the latest SVN release of wicd.

[edit] ABS Method

Note: The following may not work if the packaging process includes a patch (you can use part of the PKGBUILD from AUR or DIY entirely)

If you need an alternative version of wicd, you can easily rebuild the package using the Arch Build System (ABS):

# abs
$ cd /var/abs/local
$ cp -r ../extra/network/wicd .
$ nano PKGBUILD

Replace the value of the $pkgver variable with the version you wish to build. You may also wish to reset the $pkgrel variable to 1 and update/remove the $md5sums variable. Save and close the file when finished, then run:

$ makepkg

Once the build is complete, install the new package:

# pacman -U *pkg.tar.gz

[edit] Getting Started

[edit] 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

[edit] Running Wicd

To load Wicd, run:

$ wicd-client

You can add wicd-client to your DE/WM startup to have the application start when you log in.

[edit] Troubleshooting

[edit] D-BUS

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

[edit] GUI

If the GUI does not appear after clicking on the tray, make sure you just click once (single-click). As of now, a double-click does not work; it will simulate opening and closing and thus do nothing.

[edit] Tray Icon

If you had Wicd autostart, and you get a white box instead of the icon after a reboot, create a desktop entry instead of symlinking. This apparently occurs in a KDE environment where a desktop file is always a good idea.

First, make sure there are no existing symbolic links/shortcuts.

# for i in `find /{opt,usr/share,home} -type l -print0 | xargs -r0 file | grep wicd/tray*.py | sed -e 's/^\|:.*//g'`; do rm -iv $i; done

That searches for symbolic links to a wicd directory containing any rendition of tray.py under /opt, /usr/share and /home, then asks whether you want to delete them. You can do this yourself manually.

Now create the desktop file. In KDE, you can place it globally in /opt/kde/share/autostart or locally in ~/.kde/Autostart:

[Desktop Entry]
Encoding=UTF-8
Name=Wicd
Exec=/usr/lib/wicd/tray.py
Icon=
Type=Application
StartupNotify=false

[edit] 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
                    ESSID:""
                    Mode:Master
                    Channel:11
...

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

[edit] Related links

Personal tools