2 min read

HOWTO update OpenELEC on Raspberry Pi

OpenELEC (Embedded Linux Entertainment Center)

One of my goals after getting my Raspberry Pi was to use it as an XBMC server. XBMC is an open source (GPL) software media player and entertainment hub for digital media. It runs on Linux, OSX, and Windows, and works great as a set top media center, ala something like Apple TV. Meanwhile another effort called OpenELEC is like a live build of XBMC that you can install on embedded hardware that has been built from scratch specifically to act as a media center, stripped down to the very most basic essentials for a light installation with a quick boot time. Even better, they have builds that are specifically tailored to the very-specific hardware like Ion, Fusion, Intel, and… wait for it… beta versions for Raspberry Pi! So my mind was made up, getting OpenELEC up and running on the Pi was a simple affair with their excellent docs on their wiki. This worked as advertised and things were good. Of course, since this is an early development version, there are lots of changes and improvements as time goes by, and updating is necessary. While you can go through the entire install again, it’s not necessary, and some quick poking around on their forums turned up a simple update script that I downloaded to the Pi and ran, and it worked - it updated to the latest build of OpenELEC and rebooted to install it. This is where things went south, black screen city! Luckily the OS was running so I could still SSH in and poke around, sure enough, everything looked fine, no errors, etc, but it just wasn’t working. My solution was to downgrade to an older version (that was still months newer than the original install I was using), but how could I automate it? I did it by modifying the update script to get a list of available builds and prompt you to choose what build to install. I ran this, rolled back to an earlier build, and boom, everything worked again! I have the script on Github as a gist, embedded here for conivence. As always feedback is welcome.