Last week I upgraded from Kubuntu 9.10 “Karmic Koala” to 10.04 “Lucid Lynx”. The word “upgrade” here is misleading, since I chose to reformat to take advantage of filesystem changes. However, I imported much of my customisations from backup. Here are my notes on Lucid, from the perspective of a long-time Kubuntu user.
My opinion is that Lucid improves on Karmic in almost every way. That’s not saying much, since the KDE 4 upgrade has been so painful. We’re finally back to KDE 3.5 functionality, and speed is improving with each release. On the other hand, there are a lot of new features in the OS since Hardy – grub2, ext4, ecryptfs, upstart, kernel mode setting, compositing window management, Strigi indexing and Nepomuk semantic desktop. Some of these have dramatically improved performance, while others have increased system requirements just to add eye candy. It’s hard to evaluate KDE on its own, so I’m not going to focus on that.
I backed up my entire drive to an external USB drive formatted for ext3 using rsync. I then booted from the Kubuntu 10.04 AMD64 Desktop CD, and followed the default install options until the disk partitioning step. I always install with separate /, /home, and swap partitions (this normally makes upgrades easier, unless you are reformatting as I did here). I used ext4 for / and /home, and chose to encrypt my home directory. I then followed the rest of the steps and rebooted at the end.
Following the reboot, I used rsync to restore my lost files and most of my dotfiles – .mozilla, .gnome, .gconf, .Virtualbox, and the like. However, I did not restore .kde. Instead I manually copied only some configs, for KGPG, Akregator, and Kopete. The rest of my KDE apps I reconfigured from scratch. I did this because we use Kolab at work, which integrates with Kontact but can be fussy with local contacts files. As of Lucid, Kontact uses Akonadi to manage contacts. I expected trouble, and found it. More on that later.
Finally, since I have an encrypted home directory, I also encrypted swap and created a tmpfs on /tmp. I followed the steps in my guide, and rebooted with no problems.
The ext4 filesystem is noticeably faster. This is the reason I reformatted instead of upgrading. I used ext3 under Karmic, and really wanted to see if what I’d been hearing about the speedy new filesystem is true. It is. It’s faster for booting and it’s faster for reading large data. My Virtualbox virtual machines load in almost half the time, even compared to the same Virtualbox 3.2.6 release on Karmic. I suppose there could be other differences contributing to this but it really stands out. I haven’t run an fsck yet but others report that it is much faster as well.
ext4 has definitely improved performance of copying data inside my encrypted home directory. I barely notice the performance hit from using ecryptfs now. The only time I do is when using rsync to compare large directories (like when my backup process examines my mail archive).
There is a new touchpad control in KDE Control Center. This enables gestures, including two-finger scrolling (but not pinch-to-zoom, which I hope is forthcoming), and different actions for tapping in corners, multi-finger tapping, and so on. Still missing is tap suppression (accidentally tapping while typing), so I still use syndaemon. Create ~/.kde/Autostart/syndaemon.sh, make it executable, and insert:
# Disable touchpad while typing to prevent accidental tapping.
/usr/bin/syndaemon -d -t -i 1
The device notifier plasmoid now has multiple actions when opening attached storage devices, and can be configured to automatically mount drives. This is a vast improvement.
The system tray plasmoid now obeys my auto-hide preferences. Under Jaunty and Karmic, some applications had overriding preferences that caused them to always be hidden or visible. For instance, it was impossible to make KGPG always visible. I frequently use KGPG, so this caused me to almost always have the system tray expanded to show all applications.
Firefox/KDE integration works very well. Open/save file dialogs use KDE, and menus and icons use KDE defaults. The printer dialog is still the native Firefox one.
virt-manager is vastly improved. The GUI is more responsive when connecting, is prettier, and has graphs for CPU, disk, and network I/O.
ClusterSSH works with KWin again. Since 8.10, ClustterSSH has been nearly broken in KDE. First, simply starting it caused copy (to clipboard or selection) to stop working in most QT/KDE apps. Second, the ClusterSSH master window would grab focus and prevent you from giving focus to any of its children xterms. This made it very hard to run commands on just one host without running it on all. I gave up and used various other techniques for managing my servers. But nothing beats ClusterSSH for managing 2-20 servers at once, and I’ve sorely missed it. Welcome back, old friend!
What needed tweaking:
The Oxygen window decoration theme still doesn’t colourise the active window. Open System Settings, go to “Appearance”, then the “Windows” side bar. Under the “Window Decoration” tab, choose “Oxygen”. Under the “Decoration Options” area, choose the “Fine Tuning” sub-tab. Check “Outline active window title”.
Hotkeys in Kmenu are ignored. I use a few quick-launch shortcuts, such as “Win+T” to start a terminal. You can set these when editing the K menu, but they are ignored by default. Open System Settings, select “Input Actions”, and then check “KMenuEdit”.
VirtualBox and virt-manager don’t play well together. I don’t use Xen or KVM on my desktop, but I do manage several KVM-based virtual machine servers. Thanks to the new “install recommends” preference in the package manager, simply installing virt-manager also installs libvirt-bin. This loads the kvm-intel or kvm-amd modules on boot, which then prevents VirtualBox from starting virtual machines, with the error “VirtualBox can’t operate in VMX root mode. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_VMX_IN_VMX_ROOT_MODE).”
I suppose this is really a problem with the “install recommends” behaviour. I’ve complained about that elsewhere, but I always repeat a good gripe when the opportunity presents.
The solution is to edit /etc/default/libvirt-bin and disable libvirtd:
And for good measure, blacklist the modules. Create /etc/modprobe.d/local.conf and insert:
What still needs work:
Akonadi doesn’t start before Kontact tries to access it. This solution (autostarting “akonadictl start” at login) worked for me, although I (painfully) developed it independently. If only I had used Google.
openvpn with knetworkmanager still doesn’t work. I still prefer Gnome’s network manager applet, which works just fine with Kubuntu. Kill knetworkmanager, and start nm-applet. Next time you login, KDE will tell you that another network manager is running, and ask you if you still want to use Knetworkmanager. Say no. Also, OpenVPN support is more reliable under Lucid. Using Gnome network manager with Kubuntu Karmic, the OpenVPN service would periodically fail to start. Editing VPN preferences and then hitting OK sometimes resolved it, but at other times it was an annoying and random dance to make it work. This seems to be resolved under Lucid.
OpenOffice/KDE integration is improved since Karmic, but still has drawing bugs. In particular, the zoom slider in the lower right often disappears. It’s still there, and clicking in the area makes it reappear and zooms. I prefer the “100% / 75% / …” pull-down of the stock OpenOffice theme, however. This is a vast improvement over the Karmic integration, where simply dragging a spreadsheet tab in Calc crashed OpenOffice, but I’d like to see more development here.
Otherwise, my comments regarding Karmic still hold. Google Earth and Kwin play nicely, qtcurve (KDE/GTK integration) is awesome and no longer has the font bug, and Plasma and Kwin are faster and more stable. Lucid is no great leap forward and Kubuntu is still not an innovator among KDE distributions like Ubuntu is to Gnome. But it is an incremental improvement worth using if you prefer KDE.
I have had a Lucid repository since upgrading my media PC and servers. It now includes dfreer’s znes32 for AMD64 (still working on Lucid) and kregexpeditor (you can have it when you pry it from my cold, dead hands).