Ubuntu 9.10 “Karmic Koala” Problems & Solutions

Having bought a Unibody MacBook Pro and running Mac OS 10.6, I decided to upgrade my Samsung NC10 from running Mac OS 10.5.8 to running the latest Ubuntu Netbook Remix (UNR) from Canonical.

Canonical have completely revolutionised the concept of Linux on the desktop by packaging a distribution that is lightweight, fast, attractive, functional, and is – above all – actually usable as a day-to-day computing environment by your average computer user: as with OS X, the powerful underpinnings aren’t exposed and so don’t scare away the casual user.

The UNR variant of Ubuntu has been available since Ubuntu 8.04 (April 2008) – although at this time packages had to be pulled-in from external repositories or built by hand on top of an existing Ubuntu installation. A packaged version was available – but this would wipe the computer onto which it was installed, and there was no “Live” trial available.

With Ubuntu 9.04 (April 2009), UNR was offered alongside downloads of Ubuntu desktop, and with the latest Ubuntu 9.10 UNR has received a face-lift and appears to be a first-class citizen of the Ubuntu hierarchy along with Ubuntu Desktop and Ubuntu Server.

(This probably says much about the success of low-cost “netbook” computers, usually with Intel’s 1.6GHz Atom processor, 1GB RAM, and a 10″ screen or smaller. Variations exist with slightly faster processors and/or up to 12″ screens – and system memory can often be upgraded to 2GB, but as a rule the hardware is remarkably consistent. Due to their low-cost, the market has lapped them up – and the low price-point has meant that they are often supplied with Linux exclusively, or at a lower price that Windows-equipped versions)

It is Ubuntu’s reputation for just-works™-ness that I feel is in danger – I’ve run into no less that three show-stopped bugs with the installation of UNR 9.10. All of these were (relatively) easily fixable once I’d found the source of the problem, but I feel that this is beyond what it is reasonable to ask the average user to work through. Worse, all of the problems seem to be down to insufficient testing on the part of the UNR developers. If Linux on the desktop is to succeed, then gateway distributions such as UNR must work first-time all of the time…

Creation of UNR bootable media for a netbook lacking an optical drive requires a machine already running Windows or Linux (and if not Ubuntu Linux, then the installation procedure is tricky). There is no solution currently available for Mac users, and nothing that a non-expert would want to attempt for non-Ubuntu Linux. I did try ‘dd’ing the UNR ISO image to a USB key, but this was unable to boot. This is a shame, since if a bootable USB-specific image was distributed then it could be written to a USB key from any OS.

I followed the UNR installation instructions and used their Windows utility to write the image to a 2Gb USB key. Since the ISO image itself was only some 680MB, I chose the option to make the remainder of the space available for persistent storage, anticipating that there might be some proprietary hardware drivers required. I then booted the netbook from this device and got the Ubuntu boot-logo and then… nothing. The screen blanked, and nothing else happened. I rebooted again and still nothing. I ran the media-check boot option, and my installation media was verified as being correct.

Going beyond what any average user could be expected to do, I then editing the bootloader options to remove “quiet” and “splash” in order to see what was happening, and indeed this game me a little more information. The last error message was “Cannot mount /dev/loop1 on /cow“… “cow” in this case being “Copy-On-Write” (e.g. the additional space on the USB key) rather than anything trying to be cute. Searching online for the solution to this, it transpires that there’s a bug – whether in the UNR image or in the usb image writer I know not – that means that installation will always freeze at this point if the persistent storage option was chosen. I re-downloaded the image and re-wrote it, and the boot process was able to complete successfully. At the time of writing, the installation instructions still don’t mention this fact.

In any case, I was now able to proceed through the installation phase and restart once complete – at which point I was left staring at a screen cheerfully announcing “No Operating System Installed“. Bah. I rebooted from the USB key and re-ran grub against the newly-installed installation: no difference. I reinstalled again… and there was no difference. Eventually, I came across the solution which was to enter a hidden BIOS settings page and disable AHCI-mode for the internal SATA port. From this point, the UNR installation on the internal drive booted correctly. This one I’m not blaming on UNR: Mac OS is also unable to boot with this option enabled, so it may be a BIOS bug. If I record the problem here, though, it may help anyone else who has the same problem.

Finally, after all of these trials and tribulations and, by now, several days on-and-off, I finally had a working UNR installation… almost. Within the Live USB environment, UNR couldn’t activate the laptop’s wireless hardware, but was able to detect its presence and reported that proprietary drivers were available. These could be installed but, requiring a reboot and lacking persistent storage (grrr), these could not be activated. On booting the installed OS, no mention was made of these proprietary drivers. Even running the tool designed to manage these drivers made no mention of their existence, and the Ubuntu repositories had no installable software of a matching description. It appears that the only place that these drivers actually exist is on the installation USB key, and even these are only installable by resorting to the command-line.

What actually needs to be done is to install packages ‘patch‘ and ‘dkms‘ from the standard repositories (which requires an internet connection in itself – thankfully the wired interface does work), and then install (‘sudo dpkg -i‘) the ‘pool/b/bcmwl-kernel-source‘ deb package from the USB installation key. After this is installed and the system rebooted, then the Hardware Manager then sees the proprietary driver and the hardware it drives.

With all of this sorted out, the system now seems fast and stable (unlike the Live environment, which froze on me twice of about four uses), and seems to do its job well. It’s certainly better-adapted to the small screen that Mac OS ever was, and the hardware support is much better (with trackpad-scrolling (but not multi-touch), audio, and most function keys working out of the box). It’s just a shame that these last remaining rough edges weren’t caught and corrected – because it’s these brick-walls which will prevent a wider up-take of UNR, and I’m willing to state categorically that the current UNR is significantly more usable and productive than any pre-installed netbook OS, be it another Linux variant or be it Windows.