Upgrade to Kubuntu Lucid Lynx 10.04 LTS

I have been a Kubuntu users for many years now.

So, when Kubuntu 10.04 (Lucid Lynx) was released, I took the plunge and upgraded my laptop from Kubuntu 9.10 (Karmic Koala), which I have been running shorty after its release in October 2009. Lucid is an Long Term Support (LTS) release, with security updates for 3 years on the desktop. Hopefully I will be staying with it for at least 2 years and skipping the 6-month releases in between.

This post details what I have found so far on Lucid, whether good or bad.

Faster Firefox

Firefox is 3.6.3. There is a noticeable improvement in speed in rendering, even though the same extensions are installed. Needless to say, I am happy with that change.

KDE dialogs for Firefox

The file dialogs for Firefox now integrate with KDE's look and feel. They don't feel strange because they are Gnome based anymore. This is a welcome change for us KDE users.

Wicd scripts do not work (with workaround)

The KDE Network Manager is not really capable of doing certain things, for example connecting to Wireless networks that use WPA encryption.

For this reason, I use wicd, which is a nice cross-platform network tool. It is written in Python and works on Gnome, KDE, and even from a terminal using a command line interface, or a Curses based text user interface. On KDE, there is a icon in the system tray that you can use to scan and connect to a network, and it shows the connection status. Very hand.

Wicd has been working fine for me on 9.10. I even configured it to run certain scripts for the home network to map certain NFS shares to my laptop. These shares will not map when I am outside the house and connecting to another network.

Since wicd conflicts with network manager, you need to do the following to get it to work properly:

First you need to remove the KDE network manager, using this command:

aptitude remove network-manager knm-runtime network-manager-kde

Then install wicd like this.

aptitude install wicd wicd-curses wicd-gtk

The only problem I see so far on Lucid with wicd, is that the above mentioned scripts do not work. If I configure the connection not to have any scripts, then wicd works normally. If I add the scripts, then weird things happen, with the symptoms being different depending on whether you are using the system tray interface, or the curses one.

If you are using the system tray interface, you will see the message: "Disconnecting active connections ..." and then nothing happens. It will just hang there.

If you are using the the curses interface, then you will see the following errors:

DBus failure! This is most likely caused by the wicd daemon stopping while wicd-curses is running. Please restart the daemon, and then restart wicd-curses.
Traceback (most recent call last):
File "/usr/share/wicd/curses/wicd-curses.py", line 904, in call_update_ui
File "/usr/share/wicd/curses/wicd-curses.py", line 89, in wrapper
return func(*args, **kargs)
File "/usr/share/wicd/curses/wicd-curses.py", line 915, in update_ui
File "/usr/share/wicd/curses/wicd-curses.py", line 836, in handle_keys
File "/usr/share/wicd/curses/wicd-curses.py", line 929, in connect
File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call__
File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Python.TypeError: Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/dbus/service.py", line 702, in _message_cb
retval = candidate_method(self, *args, **keywords)
File "/usr/share/wicd/daemon/wicd-daemon.py", line 1178, in ConnectWireless
File "/usr/lib/pymodules/python2.6/wicd/networking.py", line 782, in Disconnect
Controller.Disconnect(self, 'wireless', essid, bssid)
File "/usr/lib/pymodules/python2.6/wicd/networking.py", line 219, in Disconnect
TypeError: expand_script_macros() takes exactly 4 arguments (3 given)

Obviously, this code is wrong in the file /usr/share/pyshared/wicd/networking.py, since it is not passing the correct arguments

expand_script_macros(self.post_disconnect_script, 'post-disconnection', (mac, name))

So far, I don't have the time to debug that and find a solution. I just run the script manually when I need it.

But if you encounter this error, then use the system tray and remove the scripts, or edit the file /etc/wicd/wireless-settings.conf and delete the following lines:

afterscript = /usr/local/bin/nfs-shares.sh on
predisconnectscript = /usr/local/bin/nfs-shares.sh off

That will make wicd work, but it will not execute the scripts, hence will not mount the NFS shares.

In order to make it mount the shares, there is another way.

Create a script called nfs-shares-on.sh, and place it in the directory /etc/wicd/scripts/postconnect/. The script should contain the following:

/usr/local/bin/nfs-shares.sh on

So, it is calling the script that we originally had.

Create another script called nfs-shares-off.sh and place it in the directory /etc/wicd/scripts/predisconnect/, and put the following in it.

/usr/local/bin/nfs-shares.sh off

Make both scripts executable.

Because this way of running scripts is not specific to a certain access point, your script should check if a specific host is accessible before trying to mount shares from it.

To do this use this code snippet:

fping -q your-server
if [ "$?" = 0 ]; then
  # Do the mounting here 

Now, mounting should happen when you connect, and unmounting before you disconnect.

Intel Wireless WiFi Link 5100 (iwlagn)

On 9.04 and 9.10, I had to download the compat-wireless source and install it as I described before in this article: Intel Wireless WiFi Link 5100 iwlagn with Kubuntu Karmic Koala 9.10.

I am happy to report that on 10.04, this is no longer needed. The supplied driver works well as it is.

Overall, good job from the KDE team, and a great job from the Kubuntu team.

Thank you for your efforts.