As many already know, I am a die-hard Gentoo Linux user…I use it at work, at home, and anywhere else I have machines used (primarily by me) to “hack“. Lately I’ve been hearing podcasts and reading weblogs that exclaim the virtues of Ubuntu Linux 6.06 as a desktop-user-friendly (read: suitable Windows replacement) distribution, so, despite my personal preferences, I decided it was high-time I take this Debian-based distribution for a test-drive.
A couple of things are important to note before I embark on my review of Ubuntu:
First, Gentoo Linux is not my only frame of reference for comparison. My daily grind requires the use of many operating systems for enterprise applications, development, and general desktop use, including Scientfic Linux 4.3 (a Red Hat Enterprise Linux 4 derivative), Microsoft Windows XP, and Apple Mac OS X. Since we’re talking about desktop-user-friendliness, these well-established bench-marks are critical for comparison…even if it is only anecdotal comparison.
Second, I consider laptops to be a de facto standard for business use. In my current environment, the use of laptops as primary machines outpaces desktops 8 to 1. In light of this, I take ease-of-use on a laptop (as a desktop replacement) as a serious measure of the claim to being desktop-user-friendly. Perhaps this is just one of my things, I don’t know. With mobility on the rise, I don’t think this is unreasonable. For my test, I used an IBM (well, now Lenovo) Thinkpad T42p with 1GB of RAM, an Atheros-based wi-fi card, Bluetooth, and a 60GB hard drive…a very well supported laptop for running Linux.
Third, and finally, I grade hard. As a support professional I worry about setting my users up for failure. No one likes to feel dumb when it comes to their day-to-day computer use, so forcing users to use an operating system that requires advanced to expert-level knowledge just to get by is a non-starter. As a business strategy professional, I have concerns regarding the long-term costs of support, training, and application re-tooling. Some of these issues are well beyond a simple OS review, but again, as an anecdotal means of balancing what is real from what is not, these perspectives will prove themselves quite valuable.
Ubuntu, Kubuntu, and Xubuntu…Oh, My
Ubuntu, like most things Linux, comes in three distinct “flavors”. Ubuntu (as in, plain ol’) is based on the Gnome Desktop, and its associated application stack. Kubuntu is based on the K Desktop Environment (a.k.a. KDE), and its associated application stack. Xubuntu is based on the XFCE Desktop, a light-weight desktop environment capable of supporting GTK, Gnome, and KDE application stacks. You can install one or more of these Ubuntu “flavors” (I have all three installed on my test machine), but if you have no current Linux desktop preferences, the plain ol’ Ubuntu will probably do.
Installing the OS
If you’ve ever left Linux running and screaming due to complicated installation procedures, you need to come home to Ubuntu. While I only took a look at the standard installation (as would typical desktop users), the process was frighteningly simple. If this is the primary obstacle for wider-spread adoption of Linux, the Ubuntu distribution has rung the bell.
Booting from the CD (created from the downloaded ISO image) produced a rather speedy Live CD work environment with which I could test various things Ubuntu without actually changing anything on my machine’s hard drive. The first time I booted into this environment, I left my desk for a minute. The Live CD is so speedy, it took me several minutes to realized that the disk didn’t just auto-install the OS for me in my absence (which would have been a bit frightening). I was able to play for a while before clicking on the prominently displayed “Install” icon on the desktop to begin the installation process.
I had the entire hard drive of my test machine to dedicate to my Ubuntu installation. For that reason, I simply allowed the installer to auto-configure my drive partitions. After answering no more than three or four questions, the installer went about its business and produced what I perceived to be a flawless duplication of what I had been playing with on the Live CD. No muss, no fuss.
Modifying the Base Install
I decided that, while it is quite cool and clean, I didn’t want to run Gnome exclusively. I wanted to be able to choose my desktop environment at will from the login screen. Setting this up was a simple matter of following the online instructions for Xubuntu andKubuntu. Very clean.
I happened to notice that the default kernel and associated modules were labelled 386. Knowing that I had a 686-based Pentium 4 Mobility processor, I poked around the forums to see if there was a better kernel option. There was. I installed the 686 associated kernel and modules from the “Base System” category in the Synaptic Package Manager, a very nice front-end to the Debian dpkg package management system. Did my install, then a reboot. Most of the system seemed to come up fine, but because I was using my wireless card to connect to the network, I noticed immediately that it had ceased to function.
On a whim, I re-opened the Synaptic Package Manager. I had noted the category of packages labelled “Base System (restricted)”, but had paid it no mind. As it turns out, this was my mistake. There are packages in this restricted group that are specific to third-party kernel modules that were required for several aspects of my machine to come back to life. Since I changed my kernel to 686, I also had to select the appropriate packages in this category to match. So much for not requiring advanced to expert-level knowledge. Had I not know the wireless card I was using required a third-party module, it would have taken considerably longer to figure out the problem. Furthermore, if I had limited exposure to Linux, I would have been at the mercy of what I could get (on a second machine or from an alternate boot partition) from the online forums.
Suspend-to-RAM and Suspend-to-Disk Fun
I mentioned my bias toward laptops as desktop replacements earlier primarily to expose some weakness in the initial default configuration for suspend activities. There are two types of laptop suspend: suspend-to-RAM (a.k.a. sleep) and suspend-to-disk (a.k.a. hibernate). Sleeping a machine allows for quick recovery upon wake, but consumes battery to keep power flowing to the memory modules. Hibernating a machine writes the machine state and RAM contents to disk, allowing a full hardware power-off to conserve battery at the cost of a slower wake-from-suspend. Both modes are useful in different situations, so both should work flawlessly out-of-the-box.
To be fair to Ubuntu and the folks supporting it, the “sleepy” aspects of Linux have never been very well supported. Advanced Configuration and Power Interface (ACPI) is a fairly new addition to laptop hardware and the Linux kernel, so support has been spotty for the last little while. Getting suspend activities to work on various manufacturers’ hardware has been one part Black Art, and nine parts luck. This is slowly changing as standards emerge, but it is by no means an automatic out-of-the-box experience with most distributions. Ubuntu came close on my T42p, but not quite close enough for a cigar…at least not until this morning.
Sleep, or suspend-to-RAM, has worked flawlessly from initial install. I can sleep the machine, wake it back up, do something, sleep it again, wake it back up…over and over again. No worries. This part worked well with the out-of-the-box ACPI and kernel configuration.
Hibernate, or suspend-to-disk, initially looked like it was going to work. I could hibernate the machine, wake it back up, do some work, and hibernate it again. A second waking was, well, like trying to wake the dead. It resulted in video conflict of some sort which produced very pretty black and blue vertical lines on the laptop LCD. Over and over again, first-time-wake worked, second time resulted in my pretty vertical bars.
Being a diligent Linux “hacker”, I poked around the Ubuntu forums for an answer. Many suggestions specific to the T42p made sense…so too did some non-hardware-specific suggestions, but none produced the desired results. I poked around the /etc/default/acpi-support file, and toggled off/on every configurable aspect using a systematic approach, and found no good configuration to resolve this problem. I restored the acpi-support configuration file to its default state somewhat confident that this was not my issue. This was Wednesday of last week.
This morning I decided to give the Ubuntu forums another shot. Much to my surprise, I found reports that a recent kernel update caused additional mayhem…completely breaking all aspects of hibernate and sleep functionality for many brands of laptop. Making the assumption that this had probably turned into a priority issue for Ubuntu, I opened the Synaptic Package Manager and performed a “Reload” and “Mark All Upgrades”. As I suspected, I found the kernel (and modules) upgrade (from 126.96.36.199 to 188.8.131.52) that had been mentioned on the forums, an update to the acpi-support package (0.84 to 0.85), and several other system updates. I installed them all, and rebooted the laptop.
Eureka! All aspects of sleep and hibernate now function as expected. Yippee! All good and fine for the Linux “hacker”, but what about a normal desktop user? Would a normal user have hung in there over the weekend if they depended upon hibernate functionality as they traveled? Maybe…maybe not.
Other Cool Stuff
The Networking applet is a very nice touch in Ubuntu. This little graphical application allows one to configure different “Locations” for location-specific network device (active/non-active) and configuration settings. This made setting up wireless (including WEP using the default installed wpasupplicant module) a snap for both home and work networks, and allowed me to toggle between locations on-the-fly. I only had problems once with this app, but I think it was related to what I was trying to do as I configured the wired card settings. For some reason it would not take the configuration settings and get a DHCP address from the network in one-shot. I wound up having to use dhclient from the command-line to get an address assigned. Although I haven’t re-tested this, I believe my issue was a fluke.
I’ve mentioned the Synaptic Package Manager. Very cool interface to dpkg. It is also the system by which automatic critical updates are presented on an on-going basis. You receive a warning in the desktop manager’s system tray when updates are available, and can initiate the download, installation, and system reboot if necessary without having to launch an application.
Most standard tools are readily available by default within Ubuntu.Evolution, the Outlook-killer for connecting Linux to Exchange, is installed and easily configured in Ubuntu. Mozilla’s Thunderbird is easily installed, and is by default for Xubuntu. The default web browser is Mozilla’s Firefox…and unlike most distributions, the standard is the brand-new version, 1.5.
The only thing missing from the various default Ubuntu sources was a nice graphical PPTP configuration program. The PPTP code and ppp_mppe for Microsoft PPTP encryption are included by default, but configuring it is a bit over-the-top for most users. The remedy for this is to install the PPTP Client by adding the following changes to /etc/apt/sources.list:
# James Cameron's PPTP GUI packaging deb http://quozl.netrek.org/pptp/pptpconfig ./
Then with an `aptitude update` and `aptitude install pptpconfig` you have this nice tool. To make it play well within the confines of Ubuntu and its application menus, you may want to edit /usr/share/applications/pptpconfig.desktop. I simply added Network to its Categories line, and changed the Exec line from “pptpconfig” to “gksu /usr/sbin/pptpconfig”. These changes add “PPTP Client” to the Network menu item, and setup the proper root credentials for running the application by prompting for the user’s sudo password respectively. My pptpconfig.desktop, with these changes, looks like this:
[Desktop Entry] Name=PPTP Client GenericName= Comment=Configure and start PPTP tunnels (VPN) Categories=Application;SystemSetup;Network Encoding=UTF-8 Exec=gksu /usr/sbin/pptpconfig Icon=/usr/share/pixmaps/gnome-touristinfo.png StartupNotify=true Terminal=false Type=Application
Making the Grade
Before my experiences with the corrections to ACPI and the kernel which enabled proper suspend functionality, I was prepared to give Ubuntu an overall “C”. I was not happy, and the overall glitz Ubuntu provided did not make up for the false-starts and failures I found in my short couple of days with the distribution. I’ve revised my thoughts, and like the distribution much more now that I have a fully functioning system.
Ease of installation: A
By far the easiest Linux distribution installation I’ve ever performed on “first-touch”.
Initial Install Functionality: B-
Could use improved CPU detection capabilities to make the initial kernel choice the correct, and final choice. Having to change from a 386 general kernel to the 686 Pentium 4 specific kernel introduced errors I had to trouble-shoot. The suspend issue, although now resolved, wasted a lot of my time as I attempted to give Ubuntu the benefit of the doubt. On both counts, a typical desktop user probably would not have hung in there until a resolution was found.
Ease of general use: B+
While Linux applications are getting better, I still think their use is appropriate for less than half the general business desktop users out there. This is not because the applications lack functionality, or that the interface is less intuitive than it ought to be, but because people tend to resist change. With the coming radical changes in Microsoft’s Vista, a learning curve may be required anyway. In that case, Ubuntu leads the way toward providing Linux as a viable alternative to Vista.
Support Response to Problematic Issues: A-
I was impressed that the issues with ACPI suspend reported on the forums were resolved so quickly. My only critique is that I did not find relevant organizational reference to the issue outside of this morning’s update. To be fair, I didn’t look that hard…but it would have been nice if someone on the Ubuntu Team had acknowledged the forum-reported issues to let us all know the issue was going to be resolved shortly.
Overall Ubuntu Linux 6.06 Grade: B+
That’s a strong “B+”. For general desktop use, I could not give any other distribution higher marks…making Ubuntu a true leader in this category. There is still work to be done before Linux is a viable choice as a replacement for other corporate-deployed operating systems, but Ubuntu is definitely further along than I would have given it credit for without my first-hand experience.
And, in case you were wondering, no, I’m not quite ready to trade in my Gentoo install for Ubuntu. Although I enjoyed working with Ubuntu (and wrote this entry using it), Gentoo still has much to offer at the “hacker” end of the user spectrum, and I still feel more at home with it than with any other distribution. I will say that I was tempted to change, and the next machine I buy may become an Ubuntu machine simply because I can be up and running so quickly with it. We’ll see.