Raspberry Pi XBMC Media Center – A Complete Solution

RaspberryPi Raspberry Pi XBMC Media Center   A Complete SolutionI have to admit it’s taken a good amount of research and experimentation, but I finally have an XBMC media center solution on the Raspberry Pi that rivals what I used to have on my old power-sucking full-size PC.

I’m writing this guide to help others get up and running with a stable solution as quickly as possible. I’ll be covering everything from the hardware pieces to the software and configuration. I’m also hoping this guide will be accessible to those who aren’t overly tech-inclined, and I’ll provide some support in the comments.

Continue on after the break for the complete guide.

Table of Contents

  1. Introduction
  2. The Hardware
  3. Installing OpenELEC
  4. Configuration
  5. Adding Media
  6. Updating OpenELEC
  7. Media Management
  8. Closing Thoughts

Introduction

What is a Raspberry Pi?

The Raspberry Pi is a credit card-sized computer that you can buy for $35. It’s amazing because it’s capable of running a full desktop operating system like Linux (albeit a bit slowly) on hardware that is very, very small and cheap. It’s pictured below:

RaspberryPiBoard Raspberry Pi XBMC Media Center   A Complete Solution

The Pi has two USB ports, an 1/8″ audio port (headphone jack), an RCA video out (for standard definition TVs), an HDMI video out (for HDTVs), an SD card slot, and an ethernet port. All are fairly standard ports for a normal computer, but the video outputs are made for televisions instead of typical computer monitors (though computer monitors often have HDMI inputs these days as well). Pretty much everything on the Pi is perfect for an HTPC, so it’s no surprise that there’s a growing community using it as such.

What is XBMC?

XBMCLogo Raspberry Pi XBMC Media Center   A Complete SolutionXBMC is an open-source media center application that is meant to be used in the living room on your TV; it allows you to play back all of the movies, tv shows, music, and pretty much everything else you have on your home network easily with a remote control.

The interface rivals anything I’ve ever seen elsewhere; for playing back your own local media, nothing rivals the experience of XBMC. A screenshot of the XBMC home screen is below:

XBMCScreenshot Raspberry Pi XBMC Media Center   A Complete Solution

Why create a Raspberry Pi XBMC media center?

For a long time I’ve wanted a small, silent, and energy-efficient machine that was capable of running XBMC. Until the Raspberry Pi, this was possible but typically required a lot more money and wasn’t near as energy-efficient. The Pi allows for a very cheap solution with an extremely small footprint, and XBMC provides an incredibly powerful media center with support for nearly all codecs and file types.

Back to Index

The Hardware

The Raspberry Pi is a computer in itself, but it does require some extra hardware in order to function properly for what you use it for. Here’s a list of all of the hardware pieces I’ve used in my setup (that I’ve confirmed to work well):

Device Required? Recommended Model Price
Raspberry Pi Required Raspberry Pi Model B $35.00
USB Hub/Power Supply Required Belkin 4-Port USB Hub $13.99
SD Card Required SanDisk Extreme Pro 8 GB SDHC Class 10 SD Card $21.29
Raspberry Pi Case Optional Pibow $33.45
USB Hard Drive Optional Western Digital My Passport 2TB External Hard Drive $149.99
USB Wireless Adapter Optional Netgear WNA-1100 Wireless Adapter $31.99
Remote Control w/USB Receiver Optional Noah Company MediaGate GP-IR02BK MCE Remote Control $26.18

“Whew! That’s a lot of hardware!” you say? True, it is; but only the top three are required and you may have much of it sitting around your house already. Still, I wanted to detail everything that went into my setup so that it could be easily replicated. Let’s go into detail on all of the items.

Raspberry Pi

Of course, we’ll start off with the Pi. You’ll need to order the more popular Model B, which is a slight upgrade from the $25 Model A. It’s important to note that the Raspberry Pi Foundation has put out a new version of the Raspberry Pi Model B with 512 MB of RAM, instead of the original 256 MB. I’ve tested both with the original and the revised versions, though, and both worked fine for me. In addition, I didn’t notice much of a performance difference between the two when running XBMC. However, it’s certainly possible that our OpenELEC XBMC distribution could be optimized to better utilize the 512 MB of RAM in the newer version, so if you have a choice, buy the newer version (they should cost the same amount). That said, either version will do just fine (don’t go out and buy the 512 MB one if you already own the 256 MB version…unless of course you want another one for tinkering).

USB Hub/Power Supply

Next, we’ll need power for our Pi and attached USB devices. Truthfully, you probably already own what you need here. Ultimately, you just need a micro-USB cell phone charger to power the Pi, and a powered USB hub to plug in more devices, if necessary. Depending on the peripherals you want to connect and the amount of power coming from your power supply, you may not even need the USB hub. It’s important to note, though, that some cell phone chargers won’t provide enough power to the Pi, especially if you have peripherals attached directly to the Pi. You can check the compatibility list here to see if your USB hub is compatible, and check the list here for power supplies. If it isn’t in the list it doesn’t mean that it won’t work, however.

The Belkin USB hub I’ve referenced is unique because it will simultaneously provide power to both the Pi and the attached USB devices with one cable as opposed to two. This is especially handy because there’s also only one power adapter to plug into the wall, as opposed to two (one for the power supply and one for the USB hub). Do yourself a favor and get the $14 Belkin hub. There may be other hubs that support this, but some powered hubs do not, and this one is confirmed to work properly.

SD Card

The Pi uses the SD card to run the operating system off of and save data to; you can compare it to the internal hard drive in a full-size PC. Because of this, it’s best to get a fast, high-quality SD card for the Pi, as there are some very slow SD cards available, which can severely affect the Pi’s performance. That said, most SD cards bigger than 2 GB will work in a pinch. Still, there are some SD cards that are not compatible with the Pi, so it’s best to check the compatibility list here before buying one.

Raspberry Pi Case

Now for the optional components. I’ve run the Raspberry Pi without a case for long periods of time, and never ran into any real issues. Therefore, I don’t see any reason why a case is required, but it is certainly nice to have; it makes me stop worrying about frying my Pi from static electricity and certainly cleans things up. My favorite case is the Pibow, referenced above, primarily because it’s the most stable case I’ve found. There are, however, many different cases available and any of them should work fine (you could even build your own).

Should you choose to get the Pibow and the Belkin USB hub I’ve referenced, you can clean things up quite a bit by attaching the hub to the top of the Pibow (I used a hot glue gun), as pictured below. It will also help if you can find a short 6″ USB cable to attach them together, as pictured. I picked up this 3-pack from Amazon and it’s working well.

PibowWithHub1 Raspberry Pi XBMC Media Center   A Complete Solution

PibowWithHub2 Raspberry Pi XBMC Media Center   A Complete Solution

USB Hard Drive

For media playback, you can either choose to stream your media from other computers you have in the house (XBMC is very good at this), or you can load media from an attached USB hard drive, or both. Keep in mind that if you want to use a wireless network connection that you might have issues playing 1080p HD content, depending on the speed of your wireless network (and how much interference there is). The easiest and most fool-proof solution is to use an attached USB hard drive. Ideally, you’ll want a 2.5″ form factor laptop-style external hard drive, as it won’t require another power adapter; you’ll also need plenty of space for all your large videos. The aforementioned Western Digital My Passport works great. Obviously, though, if you only want to stream your media from other computers, then a USB hard drive won’t be necessary.

USB Wireless Adapter

There are two ways to connect your Pi to your network: either through the built-in ethernet port, or by adding an external USB wireless adapter. If you have ethernet available, you’ll want to use that as it’s easier to configure and is much faster for streaming videos than typical wireless networks. That said, wireless will work fine if you have a compatible adapter and a properly-configured wireless network. The Netgear I referenced above is confirmed to work out of the box; there are many others that will, and many others that won’t. I would try what you have available around the house to see if any of them work, and if not purchase the Netgear referenced above or choose another from the compatibility list here.

You will want your Pi connected to the Internet, even if you don’t plan to use the Internet for anything. The Pi does not have an internal clock, so it needs the Internet in order to pull down the time (without it, XBMC will just always have an incorrect time). In addition, XBMC needs the Internet in order to pull down information and artwork for your media; this is a feature that you’ll want to use, because XBMC does it flawlessly and it makes for an excellent experience.

Remote Control

Finally, the last piece of optional hardware is the remote. Obviously, you’ll need some way to talk to XBMC. You can either plug in a mouse and keyboard, or a remote; XBMC is set up to work just fine with only a remote. Take note, though, that I’m finding that some XBMC distributions get hung up when multiple input devices are connected (such as a remote as well as a mouse and keyboard); this initially threw me for a loop for quite a while. The remote I referenced above works out of the box, and includes the necessary USB receiver. Still, you can try whatever you have around the house, and if all else fails, just plug in a normal USB mouse and keyboard. Once again, a compatibility list for remotes and keyboards is available here.

Back to Index

Installing OpenELEC

Distributions

There are currently three different distributions that support running XBMC on the Raspberry Pi; they are OpenELEC, Raspbmc, and Xbian. After giving all three distributions a serious shot, it was blatantly obvious that OpenELEC was hands-down the best of the three. It’s currently easier to get going, more stable, faster, and nicer to work with than the other two. That said, the tides may turn in the future, so I wanted to at least mention Raspbmc and Xbian. But for the sake of this article we’ll focus on getting OpenELEC installed, since it’s currently the best distribution and provides an excellent solution.

OpenELEC has been around for a long time, so it’s no wonder that it’s the furthest along. It’s available for many different types of hardware, not just the Raspberry Pi, which is why it has been around for longer than Raspbmc and Xbian, which focus on the Raspberry Pi only. That said, there is a specific build for the Pi, so OpenELEC Raspberry Pi images are specifically tailored for the Pi.

SD Card Installation

In order to install OpenELEC on your SD card to be used in the Pi, you’ll need a desktop or laptop computer with an SD card slot (or a USB SD card reader). If you don’t have one, USB SD card readers are very cheap and easy to find. There are ways to install the image on Windows, Linux, and Mac, so don’t worry about that.

The best place I’ve found to download the most up to date image of OpenELEC for the Raspberry Pi is here. Download the latest .img.zip file, extract it, and save the .img file in an easily accessible location on your computer. Once you have the .img file, follow the instructions here to install the image to your SD card (there are instructions for Windows, Linux, and Mac).

Booting Up the Pi

Once you have the latest image of OpenELEC installed to your SD card, eject it from your computer, put it in the Pi (take note that it goes in the Pi upside down), and boot it up. At this point, leave all USB devices detached from the Pi, other than the power (but you will need to attach a monitor or TV of some sort to either the HDMI or RCA video port, of course). This way, if one of your USB devices causes issues, you can isolate the problem later. When the Pi boots up, you should see an OpenELEC boot graphic and eventually full-on XBMC.

If you don’t see XBMC after a few minutes, there are a few things that could have gone wrong. If you see video on your screen but it doesn’t boot up properly, something may have gone wrong during the writing of the SD card; try that process again. There also could be a problem with the video connection to your screen (either HDMI or RCA video). Most boot issues though are caused by a power supply that doesn’t provide enough power to the Pi; be sure to try another power supply. If none of your power supplies are working, buy the Belkin USB hub referenced above.

Once booted to XBMC, you won’t be able to do anything with it since you haven’t plugged in any input devices. Simply unplug the Pi and start plugging in devices one by one to confirm that the Pi still boots with each device. Take note that each additional device requires more power, so you may still run into power issues while plugging in additional devices. It is odd, but sometimes changing the USB port will solve power issues, so try different devices in different ports if necessary. If you find that the Pi won’t boot with certain devices plugged in, the vast majority of times it will be because of a lack of power. If all else fails buy the Belkin USB hub (or just buy it from the start to avoid the struggle).

Back to Index

Configuration

Once you have the Pi booted with all of the necessary devices connected, there are plenty of things to configure. For the most part, everything will work fine out of the box, but it is worth running through some configuration in order to make sure that you get the best experience.

Network Configuration

If you’ve plugged an ethernet cable directly into the Pi, then most likely your network will just work, unless your network requires a manual IP setup (which would be very odd). Still, manual IP configurations can be configured by going to the Programs option on the XBMC home screen, followed by OpenELEC OS Settings, and then the Network tab. Click on Static IP address in order to enter in manual IP settings.

If instead you need to connect via wireless, make sure your USB wireless adapter is connected on boot-up and again go to Programs, OpenELEC OS Settings, and the Network tab. Choose “WLAN” for the Network Technology, and select “wlan0″ for the Network Interface (you can also try wlan1 if you have it and wlan0 doesn’t work, but that’s never been necessary for me). Enter your wireless SSID under WLAN SSID, and select your security setting under WLAN Security (most likely WPA/WPA2). Then enter your wireless password under WLAN Passphrase, and select OK. If you don’t know what these settings are for your wireless network, then you’ll need to consult the manual for your router (or talk to whoever set up your router).

Once your wireless is configured, shut down the Pi by going to the power button on the XBMC homescreen and selecting Power off System. Wait for the screen to go black and unplug the Pi. Re-plug it back in, wait for it to boot up, and hopefully you’ll have a connection. You can confirm that the system is connected by going to System on the home screen, and selecting System info. You should see an IP address listed. If not, the Pi isn’t connected; you’ll need to re-check your wireless settings and/or try a different wireless adapter. If all else fails, buy the Netgear adapter I listed above, in addition to the Belkin USB hub, as that will ensure that you have enough power and a compatible wireless adapter.

You’ll notice that once you’re connected, either by ethernet or by wireless, the system time will begin to update automatically, instead of showing up as midnight every time you boot up the device (though the time may not be correct because of an incorrect time zone; we’ll get to fixing that in a bit).

Other OpenELEC OS Settings

Navigate back to the OpenELEC OS Settings by going to Programs on the home screen, followed by OpenELEC OS Settings. There are many things to configure here, but most people won’t need to change anything beyond the network settings. Therefore, if you’d rather skip this section, then feel free. Under the System tab, there are settings related to the hardware that you have installed. As your settings may be different than mine, you’re on your own here. Most often though, the default settings will be fine.

The Network 2 tab allows you to configure another network (such as enabling both wireless and ethernet at the same time), but at this point I don’t see much reason to do so, so you can most likely skip over this tab as well.

The Services tab is just a bit more important, but only for those who know what Samba and SSH are. This tab will allow you to enable SSH so that you can connect to the console from another computer. It will also let you enable or disable Samba, which is basically Windows networking to the Pi, and set a Samba password if you’d like. You probably do not want to disable Samba, though, as doing so will cripple a number of important features (including running manual updates to OpenELEC).

XBMC Settings

Now that we’re past the OS settings configuration, things will thankfully get a bit easier. Go to System on the home screen and select Settings. Many settings are available here to configure XBMC; feel free to poke around and experiment with them; the vast majority of them are not dangerous. We’ll cover a few of the important ones here.

Under Appearance, select International, and choose your language, region, and timezone settings. You can confirm that the time in the upper-right hand corner is updated to reflect the correct time where you’re at.

Also under Appearance, select Skin, and uncheck “Show RSS news feeds”. The XBMC news feed is nice, but is another thing for the Raspberry Pi to process, and can slow down the interface, so it’s a good idea to disable.

Also in Appearance, Skin, select the “- Settings” option underneath the Skin option and go to Background options. Uncheck ‘Show Background “Now Playing” Video’ and ‘Show Background “Now Playing” Visualization’. These options significantly slow the Pi down and are rather unnecessary (they let you watch a movie or see visualizations while you’re navigating the interface, which I personally find annoying, anyways).

Update December 9th, 2012: Just realized that I forgot one other thing on this screen; be sure to check “Hide Background Fanart” and “Hide Fanart in full screen visualization”. Fanart is nice, but unfortunately slows down scrolling between videos tremendously; I’ve found that disabling it provides a much better experience.

Under System, go to Audio output. Here you’ll want to specify whether you want to output audio via HDMI (built-in through the HDMI cable if using HDMI), or Analog (through the headphone jack). You can also specify your speaker configuration and other settings.

Again, these are only the most important settings to check. The screens are all fairly self-explanatory and there are many things you might be interested in throughout them all. It’s worth going through the one by one to confirm that everything is the way you wish.

Configuring a Remote Control

Most remotes and receivers made for PCs (especially MCE remotes), will work out of the box without issues. However, if your remote isn’t working, you’ll need to unplug the receiver, plug in a keyboard, and then there’s one setting that may fix the issue. Go to System on the home screen, select Settings, and then the System tab. Under Input devices, select the “Remote control sends keyboard presses” option. This may fix the issue for you, or it may not. There are ways to manually configure remotes that don’t work out of the box, but it’s unfortunately beyond the scope of this article. If all else fails, just buy the remote I’ve referenced above.

Overclocking the Pi

Overclocking the Pi certainly isn’t necessary, but you can get increased performance out of it by overclocking it past the default 700 MHz that it’s configured to run at. To overclock, you’ll need to shut down the Pi, remove the SD card, and put it back into your computer. A drive called System should show up, and you’ll find a file on the drive called config.txt. Open this file up in a text editor, and look for the “Overclock mode settings”.

Before we get to changing the values, a word of warning: a number of things can go wrong when overclocking the Pi, the worst of which is SD card corruption. When using some of the more “extreme” overclocking settings, some users find that the SD card data can get corrupted and their configuration and any data stored on the SD card is lost. This seems to vary between devices, but is a very valid concern (I’ve seen it happen multiple times). Other things that can happen with overclocking is that the device will no longer boot, or it runs out of power if you’re using overvoltage settings. Obviously, a more powerful power supply can help with the latter. If these things scare you, then you should probably just avoid overclocking or only overclock to the “modest” overclocking setting.

Underneath the “Overclock mode settings” line, you’ll see a number of “commented out” (#) lines that specify the recommended overclocking settings. The “modest” setting almost always works without issues, but the subsequent settings may or may not work depending on your particular hardware. Obviously, you’ll have to experiment. If you try a setting, and the Pi doesn’t boot or is unstable, you’ll want to try a less-extreme setting.

To apply the overclocking configuration, you’ll need to uncomment (remove the #) from the arm_freq, core_freq, sdram_freq, and over_voltage lines. Then enter the values for each line from the table above, using the specific configuration that you want to try.

Once you’ve set the values, save the file and eject the SD card (make sure you properly eject it from your operating system before removing the card). Put it back in the Pi, give it a boot, and see how things run. If you have issues, try a less extreme setting, and you’ll be on your way.

Adding Codec Licenses

The Pi is capable of playing back nearly all video files, but due to licensing issues you’ll need to pay a small bit of money to purchase codecs for playback of MPEG-2 (DVDs) or WMV files. You may not have any of these files in your collection, and if that’s the case, then don’t worry about it. Still, most people will at least have some MPEG-2 format videos. At least the cost is very cheap; it costs less than $6.00 to enable both MPEG-2 and WMV-format playback.

To enable the playback for these formats, you’ll need to purchase the license keys from the Raspberry Pi Store here. In order to purchase them though, you’ll have to retrieve your Raspberry Pi’s serial number which is not on the outside of the device. To retrieve it, you’ll need to SSH into your Pi from another computer, and then run the following command to retrieve the serial:

cat /proc/cpuinfo

To SSH into your Pi, first make sure you have SSH enabled (go to Programs on the home screen, OpenELEC OS Settings, Services). Then follow this guide in order to SSH into your Pi.

Once you purchase the licenses, it may take a few days to receive them, but they’ll eventually show up in your email. To install the licenses, you’ll need to edit the same config.txt file that we looked at for overclocking. Shut down and unplug the SD card from the Pi, plug it into your computer, and look for the System drive to show up. Open the config.txt file and paste the line(s) from your email to the end of the file. Save the file, properly eject the SD card, insert it back into the Pi, boot it up, and you should now be able to play MPEG-2 and/or WMV files.

Back to Index

Adding Media

Remember that there are two ways to play media on the Pi via XBMC: either by streaming it from another computer or attaching a USB hard drive. Streaming is great because everything happens over the network and it doesn’t require copying files; however, depending on your files and the speed of your network, your files sometimes might not play well if your network can’t keep up. Using a USB hard drive is ideal if you have very large 1080p movies that can’t be streamed, or if you don’t have another computer in your house with enough space anyways.

Streaming Your Media

In order to stream your media, you’ll need to make sure that the computer that contains the media files is sharing them out to other computers on your network. This process varies significantly depending on the operating system that you’re running, so it is hard to create a guide for. If you’re not familiar with sharing files across your network, then perhaps you should go with the USB hard drive option instead, or do some Google searches to figure out how to share files on your operating system.

Once your files are shared (and you know the computer name and share name of the shared folder), go to Videos from the home screen and select Files. Go to the “Add Videos…” option and select Browse. Select your network (there are several ways to connect; most likely you’ll want to use Samba “Windows network (SMB)”), select your share, and login if necessary. Then, under “This directory contains”, be sure to specify the type of media in the folder you’re adding (TV Shows, Movies, etc.). Choose Yes to refresh info for all items within the path, and your media should start showing up in XBMC. Do this for any additional folders (you’ll want to add separate folders for different types of media, such as movies and TV shows). Keep in mind you can also do this for Music and Pictures in much the same way.

Using a USB Hard Drive

To use a USB hard drive, you’ll want to connect it to a computer in order to add media to it. OpenELEC can read pretty much all hard drive partition formats: Mac, Windows, or Linux. I prefer exFat because it allows me to have large files while working with both Mac and Windows. That said, you ought to be able to leave your drive as-is and it should work just fine.

Once you have your drive ready, you’ll want to copy movies and TV shows into separate folders on the hard drive, so that you can classify them as such in XBMC. Same goes for music, pictures, and other types of videos. Once you’re done copying over your files, eject the disk from your computer and plug it into the USB hub connected to your Pi (the on-Pi ports probably won’t work because there won’t be enough power to power the hard drive, assuming it’s a 2.5″ hard drive that is powered by USB). Make sure your Pi is off when you plug it in, and then boot it up.

Go to Videos on the home screen, and select Files. You should see your hard drive in the list here, named by the volume label for the drive. Navigate to the folder that you wish to add media for, and highlight it, but don’t open it. If you’re using a mouse, right-click on it. If you’re using a remote, there should be a menu button of some sort that triggers the context menu (though on my remote, which is the recommended remote, it’s oddly the “Guide” button). If you’re using a keyboard, press the C key. Once you have the menu open for the item, select “Set content”. In the dialog that pops up, select the type of media under “This directory contains” and press OK. Choose Yes to refresh the info for all items in the path, and you should start seeing your media show up in XBMC.

Naming Your Media Files

XBMC pulls information and artwork from the Internet for all of your media, to present it in attractive and functional ways. However, in order for it to recognize the media files for what they are, it is best to follow a strict naming convention for all of your movies and TV shows. For movies, the best format to use is this:

The Movie Name (YEAR)\The Movie Name (YEAR).ext

For example: Forrest Gump (1994)\Forrest Gump (1994).mkv

You’ll notice that each movie is in its own folder. This makes it much easier to add metadata files to the movies, so that you can save metadata information along with the movies. In case you have lots of movies and don’t want to manually create folders for all your movies, here’s a walkthrough as to how to do it automatically on Windows. On Mac or Linux, you’ll have to find your own utility (you might have to use a shell script of some sort).

You can also just throw all movies into the same folder (use the same naming convention but just for the movie file instead of the folder as well), but you may run into issues down the line if you want to customize your data.

Also take note that when you add your movies to XBMC (set content or add movies), there’s an option to specify that “Movies are in separate folders that match the movie title”. If you are using movie folders (as you probably should), you’ll want to check this box when you add your movies.

For TV shows, the best naming convention is like this:

The Show\Season 1\The Show S01E01 Episode Title.ext

For example: Mythbusters\Season 1\Mythbusters S01E01 Exploding Toilet.mkv

The S01E01 stands for Season 1, Episode 1. Also notice the separate folders. For TV shows, it’s pretty important for them to be in separate folders (though the Season folders are not quite as important). Even still, as with the naming convention for movies, these naming conventions are standard and so it certainly won’t hurt to rename your files to match. If you don’t have the episode titles, it doesn’t hurt to leave them off as XBMC will automatically download them from the Internet.

For music, the names of the files don’t much matter as XBMC will pull metadata from the tags inside the files instead. Pictures are browsed only by folder structure in XBMC, so the folders and names matter only to how you prefer to view them.

Updating the XBMC Database

There are ways to automatically update your XBMC database when you boot up XBMC, but I don’t recommend them on the Pi as they have caused stability issues for me.

Update December 9th, 2012: It seems that with the latest versions of OpenELEC, automatically updating your XBMC database on startup works just fine. I still recommend waiting until the rest of the system is working before enabling this option, as it can interfere if you have other issues with the system, but it’s a nice feature once you have everything working properly. To enable it, go to System, Settings, Video, and check “Update library on startup”.

XBMC won’t automatically find new media that you’ve added, nor will it remove media that you’ve deleted. After adding new media, you’ll need to go to Videos on the home screen, select Files, browse to the folder that contains the media you want to update, and open the context menu (C key, menu or guide button, or right mouse button). Select “Update library” to add the new media to your collection.

You’ll notice that “Update library” will add new media to your collection, but it won’t remove deleted media. To do that, you’ll need to go to System on the home screen, select Settings, Video, Library, and select “Clean Library…”. This will go through and remove files from your library that are no longer found.

Back to Index

Updating OpenELEC

Updates for OpenELEC come out pretty much every day, as it is constantly being improved for the Pi. You can find the updates in the same place that you downloaded the original .img file, but you’ll need to download the .tar.bz2 files instead of the .img.zip files. Download the latest .tar.bz2 file, and extract it to your computer. You’ll need an unzip program that can extract .tar.bz2 files, but most modern file extraction programs can.

Once you have the files extracted, browse to the target folder inside the extracted files. Inside this folder you’ll find four files: KERNEL, KERNEL.md5, SYSTEM, and SYSTEM.md5. Ultimately, you’ll be copying all four of these files over to your Pi in order to update OpenELEC.

Assuming you haven’t disabled Samba in XBMC, you’ll find that there’s a share called “openelec” on your network. Browse to this share and you’ll see a bunch of folders; these folders are actually on your Raspberry Pi’s SD card. You’ll want to copy the four aforementioned files to the Update folder inside the openelec share.

After the files are copied, simply reboot the Pi to install and apply the update. To safely reboot the Pi, select the power button on the home screen and choose Reboot. As the Pi comes back up, you can watch it apply the update. Version information is available under System on the home screen, System info.

Media Management

There are quite a few applications available that you can use to manage your media; some of them are incredibly powerful but difficult to use, while others are very easy to use but lack depth. However, there’s a new application out called MediaElch that does an amazing job of being easy to use and functional, and it’s by far the best media management application available for XBMC.

You may find that after naming all of your files properly everything seems to just work perfectly in XBMC right out of the box. XBMC is excellent at pulling quality artwork and matching movies correctly nearly every single time. That said, if you have any relatively unknown movies or are dissatisfied with what XBMC has found, you may want to take it a step further and manually manage your collection. This is what MediaElch is for. It allows you to manually download media information from the Internet and save it locally to your files, overriding XBMC’s default downloads.

Believe it or not, MediaElch runs great under Windows, Mac, and Linux; it’s the greatest thing for media management since sliced bread. If you use MediaElch and can afford to, drop a donation to Mr. Daniel Kabel who wrote and is actively improving the software.

MediaElch is fairly straightforward to use, so I won’t go into details on how to use it, but you’ll want to add your media folders to it just like you do in XBMC, and search for and choose metadata for all of your videos. Most likely you’ll want to use it in “XBMC XML” mode as that’s the easiest and safest method to use.

After using MediaElch to manually download metadata for your videos, the one caveat is that you’ll need to force XBMC to re-scan your media files. The easiest way to do this in batch is to simply remove the folder from your library, and then re-add and re-scan your files. To do this, go to Videos on the home screen, select files, and then browse to the folder that you would like to rescan. Open the context menu on the folder (C key, menu or guide button, or right mouse button), and select “Change content”. Under “This directory contains”, select None and press OK. When prompted to “remove all items within this path from the XBMC library”, choose Yes. XBMC will remove all the items from your library, and then you can add them back in the same way you did before.

Closing Thoughts

I certainly hope this article has helped you get your Raspberry Pi media center in good shape; if it has, please let me know by commenting below. If it hasn’t, then please let me know what issues you ran into or what you feel is missing from the article. This is a work-in-progress, and I hope to ultimately make it the de facto standard article for setting up XBMC on the Raspberry Pi. If you have anything at all to add, please let me know, and enjoy your humble but powerful new media center!

Back to Index

65 thoughts on “Raspberry Pi XBMC Media Center – A Complete Solution

  1. Jason Carr Post author

    Just updated the post to add a bit about disabling fanart which significantly speeds up the interface, and revised the part about updating the library on startup, which works just fine in the latest versions of OpenELEC. I also changed “Samba” to “Windows network (SMB)” in the streaming section, as that’s what is actually displayed in XBMC.

    Lots of people are reading this, but not a soul has commented! Please comment if you find it useful, even if just to say you’re using it. :)

    Thanks!

    Reply
    1. Colin Bruner

      Thanks much for what you’ve given here! I’ve recently cut the cord on Direc-TV and I’m trying to solve the DVR need for overair tv. I own a Pi (not connected yet) and a Roku. From the money I’ll save without having D-TV, I don’t mind spending some for HD Homerun and a USB drive. Your article should prove to be an invaluable guide when I get down to putting it all together. Thanks again!

      Reply
  2. Wayne

    I’m still on the original XBOX 1 – XBMC. With a couple of problems I’ve read recently, I think its time I switched platforms. The original XBOX is still running fine, but isn’t man enough to run 1080p – or much over 420 in fact.

    As you’ve asked for questions, hopefully you’ll be able to help before I get a Pi.

    Question about performance:
    How the Pi performs at 1080 or just generally. Is there any noticeable slow down with foreground movement/water scenes as the original XBMConXBOX1 gets jerky/skips. Forests/water/close in-focus fight/crowd scenes seem best to try this.

    Question about heat:
    I want to house the Pi inside the TV and use the internal relay to act as the power off/on switch (simplified, but you get the idea (anyone else reading this – don’t do it. Capacitors stay charged for a really long time after the TV is unplugged. You *will* get hurt)) as I don’t want to manually pull the power cable and reinsert. In your opinion, are the heat sinks necessary and does it deserve a low RPM PC fan pointing at the board also.

    Storage:
    You mention about the external USB disk. Have you tried running XBMC from that. My reasoning behind this is for future updates. I don’t want to open the Telly again (hey – I’m lazy) or is it a requirement to boot from SD. I plan to stream everything from a central SMB server, so the other machines can have access :) If it works, how does it fair running from a standard USB stick or HDD and streaming from a wired network.

    Very detailed and useful write up BTW. Has clarified a few things already

    Thanks –Wayne

    Reply
    1. Jason Carr Post author

      Hi Wayne; no problem. Here’s what I know.

      Performance-wise, there are zero issues with 1080p playback. Every once in a blue moon I find a video that won’t play, but that’s very rare and it’s more likely due to incompatibility than performance. Even still, you’re more likely to run into playback issues due to streaming than to the CPU/GPU on the Pi. It just works.

      Heat-wise, it most certainly does not need a fan. You can house the Pi in many different cases, and even when overclocked I have yet to see any heat issues. The only thing I can see causing heat problems is if heat from the TV interfered with it, causing it to overheat. As far as heat sinks, that’s really beyond my area of expertise.

      As far as running XBMC from the external disk, it may or may not be possible. I know it is possible with some other distributions (though not exactly easy), but not sure about OpenELEC. Truth is, though, it shouldn’t be necessary to run it from the external hard drive because updates can easily be applied over the network (see the details in the article). So the only reason you’d ever have to physically access the SD card is if for some reason your installation got corrupted (which I have yet to see happen except for due to overclocking issues). So I think you’d still be safe using the SD card so long as if something crazy did happen you’d still be able to access it, even if it was a small bit of work. Shouldn’t be anywhere near a regular occurrence (been using mine for 4-5 months now without having to touch it).

      I stream everything from my server as well, over ethernet, and everything works great, even 15-20GB 1080p movies. The worst issue I see is that every once in a while (still rare), I get a single, quick buffering wait towards the beginning of the movie. So, no real issues there. You’re on your own trying to run XBMC from the external hard drive or USB stick though; should be possible (of course), but you might run into trouble finding instructions on how to do it.

      Keep me updated on how everything goes; I hope it all works out great. :)

      Reply
      1. Wayne

        Thanks Jason. I bought one last night, so need to wait for delivery now :(

        One last question, do you run overclocked or is yours running at 700MHz (STD).

        I’m impressed about the lack of heat. I guess they can’t get too hot, if its the same chip as in your phone.

        I’ll post back with how I’ve got on.

        Thanks –Wayne

        Reply
        1. Jason Carr Post author

          I have run them both at 700 MHz and overclocked to the Medium overclocking settings (without the voltage boost). With the voltage boost, I always seem to run into SD card corruption issues (I have with all three Pis that I’ve owned). However, heat has never been issue that I could tell, even when overclocked to the max. All my testing was done inside of a Pibow case.

          I’ll look forward to hearing how it all goes. :)

          Also, if you want to send me pictures during and after the build, I’d love to post them here…

          Reply
  3. Doug Martin

    I am very new to all of this so my questions/comments/issues may seem ridiculous so please be patient. First, thank you for all of the time that you have put into this and thanks for sharing your experience and knowledge. I was very excited to try this out so I ordered two of the Model B Raspberry Pis so I could set one up as a media center and experiment with the other. I did not have any trouble setting up the SD card and getting the Pi to boot up. When it did, however, the mouse and keyboard would not work at all. I finally figured out that the power supply I was using was not powerful enough. After switching it out with another, I was able to get the mouse working and then realized that I may not need the keyboard most of the time. Once I was up and running, I tried to set things up as you recommended. The problem is, I can only play files with mp4 and m4v extensions. The audio works on the mp4 files but not the m4v files. The audio works for all other extensions but the video does not. So far, I have tried mpg, iso, mpeg, wmv, and asf files with no luck. As I said, the audio works but the video does not. I realize that I will need a license for the wmv and mpeg2 files and I plan to purchase one soon if I can get this thing up and running reasonably well. The license is cheap so I don’t see any reason not to purchase it. The only files I really care about are the iso files since most of my kids’ movies are in that format. I am using an HDMI cable and the files are located on an external drive which has its own power supply. The only other peripheral I have attached is the mouse as previously mentioned. I would really appreciate your thoughts on this. I plan to try another power supply for the Pi but I can’t imagine that is the problem since some video plays. Thanks for you time.

    Reply
    1. Jason Carr Post author

      Hi Doug, it sounds like the missing licenses are the problem for all of those files, including ISOs, MPEGs, and WMVs. ISO files are DVD images and the videos inside are all MPEG-2 format, so the license is required. So once you get your licenses the files should play.

      That said, I remember running into a few minor issues with ISO files in the past (some wouldn’t play), but I expect that most if not all of the issues have been resolved by now; it’s been more than a few months.

      But you’re right, most likely the power supply is not the problem for that issue. You just need the licenses for the files to play.

      Reply
  4. Toby Secker

    Hi I’ve got my xbmc up and running on my rpi. Love it. Just a quick question regarding USB hard drives. Is it safe to pull the cord on the rpi after you power off the system via xbmc? Does it unmount the drives first? Cheers

    Reply
  5. Jason Carr Post author

    Hi Toby, yes, it’s safe to unplug after doing a proper shutdown in XBMC. I’d give it a few seconds just to be sure, but it does properly shut down the computer like any other computer and does unmount the drives; it’s just that the Pi can’t automatically turn off because there’s no power switch.

    Reply
    1. Toby Secker

      Great! Thanks mate.

      Just one more thing I’m having trouble setting up. I hope you can help?

      I want to be able to access my usb hard drive that’s connected to the rpi over the network so I can transfer movies etc. Problem is it only shows up as a media player rather than a drive.
      Any ideas?

      Reply
      1. Jason Carr Post author

        Sorry for the late response, Toby. Have you tried accessing the drive via the main share for the Raspberry Pi? If you use the IP address of the Pi, I believe there should be a folder in there for the connected drive.

        Reply
          1. Jason Carr Post author

            What operating system are you using? Windows? How and where are you typing it in? You’ll want to type it into Windows explorer as \\IP. For example: \\192.168.1.10

  6. Jennifer

    This is what I bought, so far. BEFORE I found your Blog:

    Raspberry Pi

    Clear ABS enclosure

    Ultra Aluminus USB 3.0 Hub – 4 Port USB 3.0 5GBPS

    Wd My Passport portable drive

    SiliconDust HDHomeRun PRIME TV Tuner – 3 Tuners, 1080i HDTV, MPEG2, MPEG4, H.264, Record/Watch Premium Cable TV, Windows & Android Compatible, (HDHR3-CC)

    Reply
      1. Jennifer

        Hi, thanks for responding.
        I tried the usb port in my wireless router, the 2.0 and 3.0 usb ports in my laptop and a usb port in my TV.

        I also tried two different cables, thinking one of them might carry more power than the other.

        Reply
    1. Jason Carr Post author

      Glad to hear you got it working. There are plugins for XBMC, yes, but I haven’t tested many extensively with OpenELEC on the Pi. What are you looking to do?

      Reply
  7. Jennifer

    Thank you!

    I mainly want to explore. I don’t have any experience with much other than Windows.

    I’ve used Open Office and I installed a couple of free operating systems onto a hard drive for my mom several years ago.

    But as far as plans for the RPb, I want to replace my HUGE Dell tower that I have been using as as a media center for the past 5 years or so. I swear it’s like the fan in that thing knows it’s being replaced soon and it has gotten much louder and runs more often. lol

    I think I have everything to get live tv from cable except maybe a CODEC (sp?) or two. I’m waiting for my usb hub to get here and the home run prime triple tv tuner card unit.

    Reply
    1. Jason Carr Post author

      Awesome; let us know how it goes with the TV card. The only issue I’ve run into with XBMC/OpenELEC is the lack of Netflix support. For that reason, I’ve got a Roku running right beside my Pi. Really wish I could combine the two…but Roku isn’t very good at playing your own media (though Plex on Roku does work fairly well), and XBMC/OpenELEC on the Pi can’t play Netflix…so I’m stuck with both.

      Reply
      1. Jennifer

        Eh hem… Three TV cards. lol
        Obviously I don’t know a lot about technology, but could you stream digital media through a tuner to get Netflix? I know it’s encoded differently, but it’s coming from the same line.

        If there is a way, someone will figure it out.

        Reply
    1. Jason Carr Post author

      Last time I checked OpenELEC was the best but as they are all in development, the tides can turn at any time. They all have the same basic goals but are developed by different people/groups.

      Reply
  8. Jennifer

    The media center is running, but not like I want it to yet. Homerun Prime worked after I purchased the MPG2. What I need now is a local TV Guide and the ability to record.

    Any help or suggestions will be HUGELY appreciated…
    MASSIVLY appreciated!

    I am a 40-year-old woman. I am pretty proud of myself for getting this far. ; )

    Reply
  9. Christian

    Thank you Jason for posting this.

    I just wanted to add that my Samsung TV- 6 Series was able to detect the XBMC/RPi and via the Anynet+ HDMI CEC allowed the Samsung remote to control XBMC pretty well. The TV shows that it knows about XBMC in the sources list (with anynet+ next to it) and XBMC also loaded the CEC device plugin.

    I was running XBMC on the original XBOX and loved using the controller for the controls but one less remote to worry about and not having to buy anything extra is pretty nice. I didnt know what anynet was until I plugged it in :)

    Thank you again for posting great instructions.

    Reply
  10. Malingo

    great post. i take it plugging in the hdd directly to the pi wont pick it up. its light flashes but i cant seem to detect it in the menus anywhere. have u tried the wd passport without using the powered hub?

    Reply
    1. jaffar

      raspberry has no enough power to run the 2.5″ HDD , you can pwoered usb-hub connected to the raspberry or use externall powered 3.5″ HDD like( WD My book ) like what i do … the powered-usb-hub is better and more neat, but I like what i have =)…

      Reply
  11. Stevo

    Awesome post! Explains a few things clearly that I haven’t read elsewhere.

    One question though, I got my RPi yesterday, and its working perfectly with openelec – I actually can’t believe how good the little thing is…. I’m connecting to my media on a wd mybook via USB, but when I turn off the Rpi, the hdd keeps spinning up every few minutes. It only spins for a few seconds, and then goes quiet again. If I disconnect the USB cable from the Rpi the drive just stays asleep. But connecting it back to the Rpi causes the drive to spin up again, even with the Rpi power switched off.

    Any ideas? It would be nice not to have to disconnect the drive every time I’ve finished using it.

    Thanks again!

    Stevo.

    Reply
  12. James

    Nice set up. Just to clarify do you have one or two cables running between the belkin hub and the RPi? Your picture/description shows just one, but that is not working for me with my (very similar) Belkin hub. I have two… one for power and one to link the ports. Thanks for the great tips. James

    Reply
    1. Jason Carr Post author

      James, it is as it shows in the picture; there is only one cable between the hub and the Pi (as is also stated in the article). Just because it’s a similar Belkin hub does not mean that it will work; it must be the exact same Belkin hub.

      Reply
  13. Luke Dubber (@LukeDubber)

    Jason I have the same remote as you have GP-IR02BK and I can plug the receiver into a Windows PC and it works fine. I see the red LED go off whenever I press a button. But when I plug it into the Pi with Raspbmc, I get nothing. No lights and no controls. I use to use this remote years ago with a older XMBC setup on a old Linux PC. Any suggestions?

    Reply
    1. Jason Carr Post author

      Luke, I’m guessing your Pi doesn’t have enough power to power the remote receiver; make sure you’re using the same hardware that I’ve listed above (or experiment with other power adapters, etc.).

      Reply
  14. david

    Can you post a picture of your overall system? I have a similar one and it’s always a mess when I put it under the television. I wonder if you devised something cooler.

    Reply
    1. Jason Carr Post author

      Other than the hub attached to the Pi pictures that I show above, I really haven’t done anything worth photographing. The cables are kind of a mess, but luckily I’m able to hide the whole thing pretty well (I just keep the infrared receiver out in the open). But yeah, I know cable management for it can be kind of a pain, especially since the HDMI cable is probably heavier than the Pi itself. Don’t have a good solution for that really though, other than maybe to stick the Pi down to something. If you figure something out, do share it with us if you can. :)

      Reply
    1. Jason Carr Post author

      Unfortunately, I don’t. XBMC on the Pi is wonderful for playing your own personal media (or even streaming it from within your house), but it falls flat on its face when you try to stream Netflix or Hulu (even on a full-blown PC). I’ve looked for good solutions for years, but unfortunately they don’t exist.

      I’ve settled for getting a Roku; they’re incredible cheap, stable, and work great for streaming Netflix and Hulu. However, Rokus are terrible at streaming your own personal media, hence the need for the Pi. So we use both a Roku and XBMC on the Pi. Wish I could combine them, but I haven’t yet found a way.

      Reply
  15. mrbaptista

    Hi,

    I’m going nuts trying to connect my 3.5″ external powered hard drive formatted in exfat. It just won’t show up in the system. Do I have to install some kind of driver?

    Reply
    1. Jason Carr Post author

      Hmm, sorry to hear. I’ve used an exfat drive before without any issues; not sure why it wouldn’t work. Stupid question, but did you reboot the Pi after plugging it in? Also, even though powering the drive isn’t an issue, still might help to try some different power supplies just to make sure it’s not having trouble powering the port itself (just a guess). Try a different port as well, if you haven’t already.

      Reply
      1. mrbaptista

        Yup. Rebooted after plugging and I think I’ve used both USB ports.
        I’ve tried to power the Pi from the USB port on my TV and from a external USB supply. The hard drive was always powered with it’s own power supply. Nothing works :(
        I’m using the latest version of OpenELEC. Do you have to add any driver for exFAT or does it come built in?

        Reply
        1. Jason Carr Post author

          Just to make sure, I would try some additional external power supplies; maybe the hub I reference in the article, that would make sure that the issue isn’t power. But that’s a guess. No, I never had to install any drivers for exFat support. It should work out of the box.

          Also, it’d be a lot of work, but try formatting the drive as NTFS or FAT32 at least temporarily to see if the problem is exFat, or the drive itself. Or try a different drive maybe.

          Reply
  16. Tom

    Does the Belkin 4-Port USB Hub referenced in the article powered externally. I followed the link to the new egg site it doesn’t look like it is externally powered . According to the product page or your picture. please let me know.

    Reply
  17. Anders Johannsen

    I have added my enitre folder of music, and now regret it, how do I remove it from library? its easy in ‘videos’ but in ‘music’ “remove from library” somehow is missing.. what to do?

    Reply
    1. Jason Carr Post author

      Anders, go to Music > Files, highlight the Music source you added, and open up the context menu on it (C key on your keyboard or right click with the mouse, etc.). Select Remove Source, confirm Yes, and then you’ll be asked if you want to remove all items from the library.

      Reply
  18. Stu

    Thanks for making this Jason – was a good help to me. Worked first time!

    I’ve ran into a somewhat related problem:
    Icefilms/1channel etc. don’t work anymore with “script failed” error. I’ve tried multiple solutions to try to fix it but nothing is working. Perhaps it’s my internet provider banning the web paths.

    Any ideas?

    Thanks again, Stu

    Reply
  19. David Mitchell

    Hey Jason, you’re so awesome for creating this site!! I have a quick question regarding the USB hub you recommended. What were you referring to when you said that it was unique? Will any other powered hub work? Also, it seems kind of strange to me that the hub is acting as a peripheral device to the Pi and the main source/input simultaneously. Do you mind shedding some light on how that works?
    Thanks!!
    David

    Reply
    1. Jason Carr Post author

      The USB hub is unique because it powers everything through the single USB cable. I’m not sure how common that really is, as I haven’t had many hubs to test with. However, I do know that not all powered hubs will do that.

      I’m also not familiar with the process of how it works, unfortunately. It baffled me as well, at first. However, I do know that it works well.

      Reply
  20. Anders Johannsen

    Hey Jason.. thanks for you reply..

    now I have another problem.. after updating to gotham from frodo, my navigation isnt as it used to.. “SmallStepBack Step back 7 seconds in the current video.” which i’ve loved since having xbmc on my xbox 10 years ago – well it doesnt work anymore. I had it on my return button on my sony remote. I’ve tried the keymap add-on to fix this, but that did not help at all, quite the opposite..

    any ideas or wait for 14.1?

    Reply

Leave a Reply