SDB:Wicd
About
Wicd is an open source wired and wireless network manager for Linux which aims to provide a simple interface to connect to networks with a wide variety of settings. It's particularly popular with Wireless configurations, as an alternative to Network Manager
Features
- No Gnome dependencies (although it does require GTK), so it is easy to use in XFCE, Fluxbox, Openbox, Enlightenment, etc.
- Ability to connect to wired and wireless networks
- Profiles for each wireless network and wired network
- Many encryption schemes, some of which include WEP/WPA/WPA2 (and you can add your own)
- Remains compatible with wireless-tools
- Tray icon showing network activity and signal strength.
Proper installation is very important because the package is slightly patched to suit openSUSE strict requirements. It will also install the "gksu" package as a dependency and other tools and utilities for a correct interaction with your network connections.
- add the source repository (the example is valid for a 11.1 openSUSE version. If you're using other release of openSUSE - just change the release ID to the one you have on your PC):
sudo zypper ar "http://download.opensuse.org/repositories/system:/wicd/openSUSE_11.1/" Wicd
- enable the autorefresh of the added repo:
sudo zypper mr -r Wicd
- install "wicd" package with all dependencies:
sudo zypper in wicd
Enable On Startup
Installation as detailed above will work but you may receive an error on startup stating "could not connect to wicd's d-bus interface". Wicd is running but this error is annoying. Here's how to fix this issue.
Open Yast -> Under System section, select "System Services (Runlevel) -> Find wicd in the list and select "Enable". You may receive a popup stating that dbus also needs to be enabled, click ok to that message and ok to finalize the services changes. Now wicd and the dbus will start at runlevels 3,4 & 5.
There is no wicd in System Services (Runlevel) in opensuse 12.1, Install version 1.7.1b2. Also change the permissions on /etc/wicd/encryption/ to 777.
Usage
N.B. It's quite important to understand that "wicd" is best when it can manage your connection standalone. So it's a really nice idea to remove NetworkManager from your PC while "wicd" is in. Or disable it completely (if you're skilled enough to do it).
First of all you need to revise/adjust all YaST network settings to eliminate possible conflicts (just don't bother "wicd" to do what it should).
- YaST Control Center -> Network Devices -> Network Settings -> Global Options
change "Network Setup Method" to the "Traditional Method with ifup"
- YaST Control Center -> Network Devices -> Network Settings -> Hostname/DNS
clear the checkbox "Change hostname via DHCP"
mark the checkbox "Write Hostname to /etc/hosts"
- YaST Control Center -> Network Devices -> Network Settings -> Overview -> Network Card Setup (Edit/Add Settings for your card) -> General
clear the checkbox "Enable Device Control for Non-root User Via KInternet" Next, click the `General' tab and for `Activate Device:' option, select `Manually'
That should be enough to begin with.
Right after installation/update/upgrade of a "Wicd" package your service "network" is switched off and disabled. Don't panic. It's o'k. This is done to ensure that "Wicd" is the only utility to manage your connections. If some software/services require the start of a "network" for a proper operation you have two options to solve the case:
- follow the guidelines above, remove all other utilities which could also change your network settings (like NetworkManager, kinternet, qinternet, etc) and try to start the "network" service:
sudo /sbin/chkconfig network on sudo /sbin/rcnetwork start
In general there'd be no issues.
- OR you can adjust the init script which require the start of a "network" service:
sudo vim /etc/init.d/SERVICE_TO_BE_ADJUSTED
remove the word "network" from the line:
# Required-Start:
Advanced options
The huge advantage of a "wicd" is a capability to use "Pre-connection", "Post-connection" and "Disconnection" bash scripts for a particular network interface within your saved profile. This can allow us to set a VPN/pptp network for example or just do anything we want to. This option is VERY dangerous and require some level of education at least. Below is an example how to automate the DSL/VPN/pptp connection for a wired interface:
- first of all create a new profile by typing it's name (like "test-vpn") and pressing the "Add" button
- go to the YaST -> Network Devices -> DSL and set your DSL connection. You'll get a PROVIDER variable (like "provider0" or "provider1" etc.) to be used for a "manual" pptp startup script below
- create in your $HOME/bin directory a script for a manual DSL/VPN/pptp connection (see the example/template):
> cat ~/bin/test_vpn_connection #!/bin/sh export WIRED_IFACE="eth0" export WIRELESS_IFACE="wlan0" export DSL_IFACE="dsl0" export STATIC_IP="10.10.10.10" export DEF_GW_FOR_STATIC_IP="10.10.10.1" export DEF_GW_FOR_DSL="172.16.1.1" ip link set "$WIRED_IFACE" down; ip link set "$DSL_IFACE" down; ip addr add "$STATIC_IP" dev "$WIRED_IFACE"; ip link set "$WIRED_IFACE" up; # just a check killall -9 smpppd-ifcfg pptp pppd # restarting the DSL connection daemon /etc/init.d/smpppd restart ip route del default; # adjust your routing table properly! ip route add MASK via GW; ip route add NET1 via GW1; ****************** ip route add default via "$DEF_GW_FOR_STATIC_IP"; /usr/sbin/smpppd-ifcfg --ifcfg=ifcfg-dsl0 --provider=PROVIDER --user=$USER ip link set "$DSL_IFACE" up; ip route replace default via "$DEF_GW_FOR_DSL"; # optional # ip link set "$WIRELESS_IFACE" down # EOF
- press on a triangle located above the "Disconnect" button to get an access to the advanced options
- press "Scripts" button and type "~/bin/test_vpn_connection" into the "Post-connection" entry field
- as an option you may create the disconnection or pre-connection scripts and add them as well
All information are valid only for a particular "profile" and will be deleted when you decide to delete this "profile".
Quick Fixes
Wireless drivers for Linux are still not so perfect as we wish to unfortunately. Below are a just a few advices what you can do to enjoy "wicd". In general you shouldn't have any issues with wired or wireless connections to unencrypted networks (are there any left?!).
- reload wireless kernel module
- change the "WPA Supplicant Driver" to the some random one and return back to the proper one
- RTFM! :)
- click "Preferences" button and play a bit with the settings (cast "I'm Lucky Today" spell before)
- check "/var/log/wicd/wicd.log" if something seems wrong to you
- check/adjust "/etc/dbus-1/system.d/wicd.conf" file if the default (security) presets doesn't suit your requirements