Ok so last night before heading to bed, I finally felt brave enough to click that "Upgrade to 8.04 LTS" button that's been sitting in my Ubuntu 7.10 Update Manager for a month or two. This first part was relatively painless: About a gig worth of files downloaded, unzipped, installed, some packages uninstalled, some questions about overwriting a couple config files. However, today was the fun stuff where I actually tried to get it all working again.

The system naturally required a reboot. Upon doing so, I got to my grub menu where it took me a minute to think of why it was still called "Ubuntu 7.10": I had installed the grub menu long ago in ages past when I was using OpenSUSE and hadn't updated the menu.lst file yet on that partition. Oh well, it was a simple naming change - - I could just do that later, right?

Anyway, upon finally booting up into Ubuntu, I was greeted with a dumping out to a full-screen console, then flickering black, then dumping back to full-screen console, then black a couple times more. Next, a warning that the display was not configured properly and would be operating in low resolution mode, then finally into a 800x600 Gnome desktop.

Once things settled down, attempting to change the screen resolution presented me with an error dialog stating: "The X Server does not support the XRandR extension...". I was not alone.

Doing a bit of web research, I thought I'd attempt to install the nVidia driver from nVidia themselves:

Woops - nVidia warns me that the X-Server can't be running. Ok: sudo /etc/init.d/gdm stop. Bye-bye nice warm and fuzzy windows and try it again...

Woops - nVidia says that the compiler used to compile my kernel (gcc 4.1) does not match the current compiler (gcc 4.2). Hm, that's odd but ok, temporarily remap the "gcc" symlink to /usr/bin/gcc-4.1. Try again...

Woops - nVidia says that I don't have the Linux kernel source. Ok: sudo apt-get install linux-source and the 2.6.24 kernel source is downloaded and installed. Try again...

Woops - nVidia warns me that the kernel source is still not installed for my kernel. Hmm: uname -r and it tells me the kernel version is 2.6.22. Whah? I confirm from sources on the web that Ubuntu 7.10=2.6.22 and that Ubuntu 8.04=2.6.24... so why is it booting up attempting to use the 2.6.22 kernel?

Yep, you guessed it: The grub menu that I installed years ago in my OpenSUSE partition of course had no idea that I have upgraded my Ubuntu system. It was still invoking the operating system using the 7.10 kernel and bad things were happening (my guess: the nVidia driver had been upgraded to support "recent Linux 2.6 kernels" and my old kernel just didn't cut the mustard).

So... spend 15 mins re-learning how grub works and finding the menu file, then change the .../boot/grub/menu.lst file on that OpenSUSE partition from:

title ubuntu-7.10

root (hd1,7)

kernel /boot/vmlinuz-2.6.22-14-generic root=...

initrd /boot/initrd.img-2.6.22-14-generic



title ubuntu-8.04

root (hd1,7)

kernel /boot/vmlinuz-2.6.24-22-generic root...

initrd /boot/initrd.img-2.6.24-22-generic


Reboot and now I'm back in business (the display is fine).

So now I have to decide if installing grub on Ubuntu and copying over the menu and overwriting the old OpenSUSE grub install on the master boot record is worth the risk/pain or what...

Well, I thought it was a funny story anyway.

§511 · December 9, 2008 · Linux, Software, Technology · Tags: , , , · [Print]

4 Comments to “From Gibbon to Heron…”

  1. Hrish Thota says:

    Do you use your computer to do work?

    Or do you do work to use your computer?

  2. A little bit of both, actually πŸ˜‰

    I guess the question I ask myself is – how much did that work cost me? I’d say somewhere between $130 and $220

  3. Mauriat says:

    I don’t even know where to begin πŸ™‚

    1. You used the Nvidia drivers directly from their site? Doesn’t Ubuntu provide pre-packaged drivers through some repo?

    2. The gcc mismatch should have been a red-flag. If ever you see such a warning you should have checked the kernel you booted right away. Rookie mistake. — However modifying symlinks is even worse. Multiple compilers on a system is very common. It is better to set some env variable to set the compiler you wish to use. Either that, or just pass as an argument to the Makefile.

    3. Finally the most important take away: learn to chainload! If I were you I would have made the OpenSUSE grub on the MBR chainload the grub on (hd1,7). That way you are never bound to continuously modify the grub config on the MBR. Whatever bootloader exists on the chainloading partition will work (even if it is Windows). And this is a 1 time change: once setup you will never do it again, just make sure whatever OS you install installs grub (or lilo) to the “root /” partition, NOT the MBR. (FYI: This is the only way I can manage 9 OS’s)

    I mean Linux is, like, so easy. πŸ™‚

  4. @Mauriat: Chainloading sounds like what I want – I’ll have to look into it, thanks. You’ll probably be getting some emails from me eventually πŸ˜‰

    For the nVidia drivers – yes, Ubuntu provides those, but I thought maybe there was some problem with the provided drivers (based on a quick Google search) so I figured I would give it a shot.

    For the symlink thing, the nVidia installer _DID_ suggest changing the CC env variable, but I couldn’t figure out how to get that to take (I tried “export CC=/usr/bin/gcc-4.2”, but the installer didn’t seem to like that), so I tried the temporary technique of changing the symlink. Of course I changed it back right away once I figured out what was really going on.