My Experience Upgrading from Ubuntu 12.04 to 14.04

A journal of issues encountered & ‘fixed’ post-upgrade


If you enjoyed this post, follow me on Twitter: @mikemetral


Ubuntu 14.04 was officially released yesterday on April 17, 2014. However, if you attempted an upgrade in the days leading up to it, you pretty much had the latest and greatest there was to offer, minus a few packages.

In an attempt to avoid the virtual stampedes on release day, I decided to begin upgrading my personal box the day before.

As a means of remembering my upgrading “adventure,” and hopefully being of some assistance to others undergoing the same process, here is a a list of the actions, issues and fixes I experienced in my upgrade from 12.04.2 to 14.04.


Day 1 — April 16, 2014


OS Upgrade

  • Update to 12.04.4
$ apt-get update && apt-get dist-upgrade -y
  • Start upgrade to 14.04 — Took about 2hours
$ do-release-upgrade -d

Video

  • After the upgrade was done, my video card was not functioning. This was expected as I have an AMD Radeon 6550 HD and I constantly have had to use the proprietary Catalyst drivers in the past to get things working after kernel upgrades. However, this time it was different — the catalyst drivers were not playing nice with 14.04. I ended up figuring out that using the default open source fglrx and xorg-* packages from the repos did the trick (after purging the catalyst driver, old fglrx and xorg-* packages from 12.04)
$ apt-get install fglrx -y
  • I then reinstalled Unity, set lightdm as default, and my video was functional again — hooray!
$ apt-get install ubuntu-desktop -y
$ dpkg-reconfigure lightdm
  • However, somewhere in the process of reinstalling Unity I messed with GNOME as a replacement to Unity and gsettings took over the precedence of my user-level settings. This apparently forced my desktop icons to disappear. After much dismay of figuring out that gsettings was the culprit, I fixed it by sticking with gsettings (instead of unity-settings), removing GNOME in place for Unity, and issuing the following from the desktop — can’t do this via SSH:
$ gsettings set org.gnome.desktop.background show-desktop-icons true

VNC

  • I then shifted focus to getting my vnc4server back up & running. By default my ~/.vnc/xstartup uses gnome-fallback in a gnome-session and that kept crashing — of course it did. I couldn’t figure out why it kept crashing even after reinstalling gnome & gnome-session, so no dice on getting that going, oh well.
  • I then proceeded to install xfce4 as a backup to gnome-fallback with vnc4server — it worked, but it was “old looking” and felt like a band-aid solution. That and the fact that the ‘s’ key and the ‘<TAB>’ keys were assigned to open up menus and alternate between apps, not function as regular characters and space creators respectively, sent me to bed late both tired and exhausted.

Day 2 — April 17, 2014


KVM

  • After reviewing the changelog in 14.04 to see what new toys I had picked up with the upgrade, I noticed that qemu-system, qemu-kvm and libvirt had been updated. I was running qemu 1.1.1, which I rolled myself, and figured it was time to swap it out with Ubuntu’s upstream.
  • I purged all previous qemu-* packages and reinstalled
$ apt-get install qemu-system qemu-kvm -y
  • Qemu was working, but my vm’s we’re not getting network connectivity…great, what now?! It took me a bit to realize it, but I was running a VDE switch for my VM’s before the upgrade and I recalled that VDE must be compiled into qemu, as it doesn’t come enabled by default.
  • Since I didn’t want to go down the path of enabling VDE again by rolling out another custom build of qemu, I switched gears to using the standard linux bridge and then this guest vm launch script to make use of the new linux bridge:
#!/bin/bash
bridge=br0
tap=$(sudo tunctl -u $(whoami) -b)
sudo ip link set $tap up
sleep 1
sudo brctl addif $bridge $tap
qemu-system-x86_64 \
-machine accel=kvm:tcg \
-drive file=ubuntu.img,if=virtio -boot c -m 512 \
-k en-us \
-net nic,vlan=0,macaddr=52:54:00:2d:d1:dc,model=virtio \
-net tap,vlan=0,ifname=$tap,script=no,downscript=no -vnc :2 &

Back to VNC

  • I left off the day before being dissatisfied with the look of xfce4 as my desktop manager in a VNC session. So I tried to chase down the crashes gnome-session was having in ~/.vnc/xstartup. I couldn’t pin down the exact issue, but I got around this by manually issuing enough of desktop environment for it to be “good enough” to table my fight with VNC. Here’s my xstartup:
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-window-manager &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus -n &
gnome-terminal &
  • So VNC’s look was now jiving with me, but I still faced the issue with the ‘s’ and ‘<TAB>’ being mapped to some crazy shortcuts I didn’t agree with. I checked my ‘System Settings’ high and low but couldn’t find anything that showed that they were misconfigured. Then I recalled that I had the issue with my desktop icons not showing the day prior due to gsettings being used over unity-settings. I then set out to find the character mappings. Sure enough, both ‘s’ and ‘<TAB>’ were part of a super shortcut gsettings has by default. I jumped on fixing this annoyance real quick — again from the desktop, not SSH:
$ gsettings set org.gnome.desktop.wm.keybindings panel-main-menu “[‘<Alt>F1']”;

$ gsettings set org.gnome.desktop.wm.keybindings switch-applications # “[‘<Alt>Tab’]” 

GNOME vs Unity

  • So with all the issues I’ve faced up to now, I think I’m done and call it quits. I let out a sigh of relief and turn the TV monitor off. I go grab a bite to eat and after about 1 hour I come back to “play” some more with Ubuntu. Turns out that after I turned the TV monitor back on, my video card + Unity start flickering — great, just great, more video issues! I had been warned somewhere along the upgrade process that Unity would most likely run into issues with my hardware since its “older” and sure enough it stuck with that story. So I proceeded to do the most logical thing — give up on Unity and switch to GNOME as I had heard this was standard in the Ubuntu world:
$ apt-get install ubuntu-gnome-desktop -y
$ dpkg-reconfigure gdm
  • GNOME ended up installing & working just fine and I did numerous amounts of “turn the tv off for a couple of hours, then turn it back on” tests to make sure the flickering was gone — and it in fact was — awesome!
  • Since I also use my Ubuntu box as a media / entertainment center, I give YouTube, Hulu etc. a shot on both the latest Google Chrome & Firefox browsers.
  • On many instances Chrome had crackling / static noise at the beginning of videos — enough of it that it was annoying. So I spent some cycles on chasing this down and tried a slew of things but nothing worked. However, Firefox was working just fine with no crackling of any kind, so it was certainly a Chrome issue. Playing with Chrome’s plugin settings for Flash didn’t change anything either, so I gave up on Chrome in turn for Firefox for all video related browsing and rebooted my box to start fresh.
  • Of course, if you’ve made it this far on this blog post you know that my issues with Ubuntu keep piling up one after the other, so after the reboot my sound stopped working altogether. I check the sound settings to find my HDMI output isn’t even showing up. Awesome, just awesome. Not. However, in my journey of reinstalling “all the things” already, I decided to reinstall alsa-mixer, added myself to the ‘sound’ group as some post said to do so (not sure if this even is a ‘thing’) but nevertheless, my sound was back…and has been through multiple reboots (for now).
$ apt-get install alsa-utils ; usermod -a -G sound <username>

Misc

  • Cron Job was creating mail for me in /var/mail/root. Turns out that /etc/cron.daily/apt was crashing approximately every 24 hours with the following: “Failed to open connection to “system” message bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory.” I figured the upgrade didn’t update dbus in its entirety, so I issued the following and got it resolved:
$ apt-get --reinstall install dbus

In conclusion, starting fresh would’ve been the easiest route forward to get to Ubuntu 14.04 — but I had enough data, services and configs on my 12.04 box to be just the right amount of lazy to transfer it all.

Even if I had gone down that route of transferring all of my data, it would’ve probably have taken me the same 2 days, and at least with this option I was able to get a nice refresher for all things Ubuntu and drivers — nevertheless, upgrade to the latest versions of services I value as well.

All in all, I learned a lot and it’s adventures like this that keep us tech folk coming back.

After all, no one ever remembers a smooth OS upgrade. Its the challenging ones that make the best memories ☺