I’ve had an Ubuntu 7.1 (“Feisty Fawn” “Gutsy Gibbon” - doh) desktop install for a while for testing purposes, and as usual they moved to a new version within a few weeks of me getting it set up. I don’t have a lot of free time and I’m still not a convert to desktop Linux, so I wasn’t in a rush to upgrade to the spanking new Ubuntu 8.04 (“Hardy Heron”). I actually configured an Ubuntu 8.04 server machine recently for a client, but that was simple & easy as Debian-based, command-line only servers generally tend to be. However, someone raised an issue with the Ogre build with some of the memory allocator changes on 8.04, which only occurred with the updated version of gcc it comes with, so that forced my hand. This morning I had a spare couple of hours so I thought I’d give it a go.
Luckily, Ubuntu (like all Debian derivatives) comes with a semi-automated way to upgrade to a new major version so it wasn’t going to be a fresh install. Some people like to start from scratch, but I’m busy and besides, I deliberately wanted to do an upgrade rather than a clean install to see how well it worked, since I’ve never done it before. I figure this is what a ‘regular user’ would do, given that the automatic updates are constantly prodding you about upgrading, and I’m always interested in putting desktop Linux through it’s paces in the way I think an average non-technical user would, because I hold out hope that one day, it might not be such a pain in the ass and will become a more realistic option for the masses.
Firstly, I was very conscientious and uninstalled Envy, since it makes changes to your kernel and there are very strict warnings about removing it before doing a distribution upgrade. That gave me my first problem, in that after returning to the default setup my screen was horribly corrupted, as I’m woefully used to seeing with desktop Linux. A quick flip to a console, changing the resolution to a basic VESA mode and restarting gdm sorted that out at least. So then I was free to install the new version via the regular software update wizard. That went pretty smoothly, and after restart I had the new default ‘heron embossed’ backdrop, albeit still at my low resolution and software drivers. Rather than install the new version of Envy (NG) right away, I figured I’d give OOTB Ubuntu a chance and let it install the proprietary drivers itself.
That didn’t go so well. It installed the drivers, but on reboot I could only see the top-left quarter of what should have been the login screen, as if I had a virtual window. It was still running at the VESA resolution, so I figured maybe it’s just that it’s gotten confused about the hardware driver’s preferred resolution and the monitor resolution. So, after logging in I tried altering the resolution through the standard ‘Screen Resolution’ widget, which I could just about get to within my tiny ‘window’ on the desktop. That worked insofar as the resolution of the desktop changed, but bizarrely now, only the top-left of the monitor area was being rendered, the rest was either blank, or sometimes it would have the desktop background but nothing else (no windows, pointers etc) except in that top-left area. Even Compiz worked fine, but only in that area, I had to pan other areas into view to see them.
So, I tried installing EnvyNG instead. Same result. Suspecting some borked Xorg configuration setting, I initially tweaked the setting I’d changed to VESA manually back to the native resolution and restarted gdm, but that resulted in a hard crash on ALT-F7. Doing some reading indicated that 8.04 has changed the xorg.conf rather significantly, so I dropped back to a console, stopped gdm and use dpkg-reconfigure xserver-xorg to recreate my xorg.conf from scratch. Restarting gdm afterwards and switching to it with ALT-F7 just brought me a hard crash. Lovely.
Rebooting, I was presented with a complete login screen this time, albeit at default VESA resolution again. Logging in led to a completely white desktop though - I could spin it about as a cube with Compiz and I could see the Compiz logo on the top, but all the other sides of the cube were white. It was also slow as hell, indicating it was running on mesa, as expected, but I couldn’t explain why the desktops refused to render. Dropping back to a console again with CTRL-ALT-F1, I re-enabled EnvyNG and got it to reinstall the driver. Another reboot later and finally everything works again. I looked at my xorg.conf and indeed it’s completely different in structure to the one that had been in place after the upgrade.
The moral appears to be that if you’re upgrading 7.1 to 8.04, reconfiguring the xserver so that it rewrites the xorg.conf should be the first thing you do, before trying to install any custom drivers (via Envy or otherwise probably). For whatever reason the upgrade doesn’t seem to do that, and that caused me quite a bit of hassle. Seems that no matter what, Xorg is always a thorn in my side when I use desktop Linux. At least I can assume that a clean install of 8.04 wouldn’t have suffered from this (I think), but still, it still gives me little faith that a non-technical user can rely on Ubuntu long-term without technical backup to call on, since they would have been funnelled through the upgrade route and had the same problems I had; once again it’s ‘so near, but so far’.
Unfortunately resolving this burned up all my time, and I also have to rebuild a bunch of Ogre dependencies which seem to have gone missing. I’ll have to look into the new gcc issues another time.