The Only Raspberry Pi XBMC (now Kodi) Tutorial You Will Ever Need

Posted By

Nov 4th, 2014
The Only Raspberry Pi XBMC (now Kodi) Tutorial You Will Ever Need

It has been over two years since my original Raspberry Pi XBMC (nowadays referred to as Kodi) tutorial was published and this article has had over one million page views to date.

Please note that I am still waiting for my own Raspberry Pi 2 to arrive as they are temporarily out of stock, so this guide is based on Raspberry Pi model B+. I’m also in process of updating this guide with instructions to OSMC operating system which will replace Raspbmc OS in the future.

Raspberry Pi can replace your HTPC, but it will require a lot of configuration and testing.

Raspberry Pi is an amazing little computer that can be used as a complete XBMC (Kodi) entertainment center solution with the right software and accessories.

While just a bit slower than the Apple TV 2, it can provide output in 1080p high definition video, all for less than $40.

In this complete and up-to-date tutorial, you will learn

  • which components you will need
  • which operating system you should choose
  • how to configure the Raspberry Pi for better performance
  • how to find more media content sources
  • how to turn Raspberry Pi into audiophile music player

Components you will need for optimal performance

To complete this tutorial, you will need to buy the following components

The total price for the computer is about $88, plus $23 for the remote control (Flirc), for a total of $111. However, you may have most of the required accessories at home already.

You can also unlock MPEG-2 and VC-1 decoding by purchasing a license from the foundation’s online store.

Get a Raspberry Pi model B+ board

RPi-boardThe Raspberry Pi is a tiny computer that plugs into your TV with an HDMI cable.

It decodes 1080p H.264 HD video smoothly, and the XBMC user interface is quite responsive as long as you use a light weight skin.

The latest Raspberry Pi model is the B+ version.

Here are the highlights you need to know about this new model:

  • Model B+ uses the same system and amount of memory on the chip.
  • Model B+ features four USB ports, which is useful when you plug in many devices such as USB WiFi adapter, USB TV tuner, USB thumbdrive and Flirc remote companion USB adapter.
  • It has better audio quality with better isolation from PSU noise.
  • Reduced power consumption up to 1W, which means you will be able to overclock it with a less than perfect power supply.
  • Micro SD memory card connectivity instead of an SD card.
  • Nicer looking form factor.

Get a case with built in heat sink

Flirc_case_medium2Nowadays, there are a lot of commercial cases to choose from that you can buy online.

My favorite case is the Flirc Raspberry Pi B+ case, which is hands down the best case for RPi.

The Flirc case is made out of aluminum and it looks stunning compared to other RPi cases in the market. The case has built in heat sink, which is useful especially if you intend to overclock the system.

Get a supported microSD card

RPi-card2Please note that many users report issues with various memory cards, so make sure to get a supported SD card. When I got my first Raspberry Pi model B, I tested 3 cards before I found one that works properly with Raspbmc.

You can get a standard micro SD card with many model B+ bundles, but they may be low quality and do not necessarily last very long.

If you want to increase the longevity of the memory card, I recommend getting a separate micro SD card that comes with wear levelling. Only the more expensive micro SD cards come with wear levelling, which means that the card will try to spread wear out over the whole disk instead of writing and reading the same spot on the disk all the time.

I would also recommend getting a card with at least 8GB storage as more space increases the longevity of the card by having more space for wear levelling.

One good card that supports wear levelling is the SanDisk Extreme Pro 8GB MicroSDHC. However, I found that it is not actually the fastest option while Samsung’s memory card delivered even better performance in the real life usage scenarios.

You can also use a USB memory stick as the Raspbmc will run very well when running the XBMC off the USB stick. Please do not use a slow USB stick, but get a fast USB 3.0 such as Transcend Jetflash 700 or Kingston DT R3.0. Even when the RPi has only USB 2.0, using a USB 3.0 stick with 2.0 sockets will give much better read times.

In order to see how big difference there is between memory cards, I tested them using some common usage scenarios.

The following storage drives were tested:

  • Samsung Mmctr08gubch Class 6 8GB
  • Kingston Class 10 8GB
  • SanDisk Extreme Pro 8GB UHS-1
  • Kingston DT R3.0 USB stick
Samsung Kingston Sandisk USB
Booting up 32.0 sec 39.4 sec 32.7 sec 31.5 sec
Importing movies 82 sec 268 sec 126 sec 90 sec
Opening library 1.7 sec 1.8 sec 1.8 sec 1.9 sec
YouTube search 22 sec 54 sec 20 sec 28 sec


As you can see from the results, the class of the micro SD card does not necessarily mean it will be faster as the random read/write speeds are even more important. Therefore, Samsung’s class 6 micro SD card that is often sold together with the NOOBS operating system install manager performed really well in my tests.

However, you should make sure that your micro SD card will last longer without any issues, so I would recommend using SanDisk Extreme Pro 8GB.

Get a supported power adapter

The RasPi does not come with a power adapter, so you will also need to get a supported power adapter. Be sure to get a good quality power adapter as those cheap power adapters that come together with many Raspberry Pi bundles may not work properly.

For example, I had problems with a Flirc remote companion adapter when using a cheap power adapter. I got erratic key presses with the Flirc when using a power adapter that came together with the Raspberry Pi model B+ bundle. When I plugged the RPi to my TV’s USB slot or used my iPad’s power supply, problems were resolved.

Supported input devices



If your television supports HDMI CEC, I recommend using it as that is the easiest way to control your Raspberry Pi. You can use your TV’s remote to control XBMC by sending signals over the HDMI cable. Usually, HDMI CEC works without further configuration.


FlircIf your television does not support HDMI CEC, then the most cost efficient and working solution is the Flirc (get it here). Flirc learns any remote control so you can use your old IR remote control and map it with the Flirc using a configuration application on Windows and Mac OSX.

You can follow this Flirc guide to map the keys with the configuration application. You can then plug the Flirc into Raspberry Pi and start controlling the XBMC.

Mobile apps

Third option is to use your mobile phone or tablet as a remote control using an app such as Constellation or XBMCRemote.

Build your Raspberry Pi

Building your own system is very easy and by following these four simple steps, you will have the system ready to be booted up with an operating system in less than 30 minutes.


1 First, open the case and apply the thermal tape to the built
in heatsink. Then, insert the board inside the case.
2 Insert the case cover back in place and tighten the screws.
3 Insert the micro SD card to the slot under the case.
Please follow the instructions in the next chapter to
install an operating system.
4 Insert HDMI, Ethernet and micro USB cables in place.
Plug in Flirc adapter, keyboard or any other controllers.


Choose an operating system


The latest XBMC v13 Gotham brings speed improvements to Raspberry Pi users. As stated earlier, XBMC will be called Kodi as of v14 Helix onwards. With the latest release, navigating menus, starting playback and browsing through libraries is much faster than before, so if you have not already updated your Raspberry Pi, now it is a good time.

In this chapter, you will learn which operating system you should choose and how to install it.

I tested three operating system alternatives from performance and stability point of view: OpenELEC, Raspbmc and Xbian. They all use XBMC (Kodi) as an entertainment center, but the Linux distribution in the background is slightly different in each of these alternatives.

Before going through the installation instructions, let’s have a look how these three operating systems performed in real life usage. Please note that these results are based on my experiments and your mileage may vary.

I compared these three alternatives on four different usage scenarios using the Samsung 8 GB micro SD card with each operating system.

OpenELEC Raspbmc Xbian
Booting up 39.7 sec 38.8 sec 61.1 sec
Importing movies 121 sec 82 sec N/A
Opening library 1.8 sec 1.7 sec N/A
YouTube search 29 sec 22 sec 48 sec


The results show that OpenELEC and Raspbmc had quite similar performance while Xbian was considerable slower on booting up and YouTube searching. For some reason, I was not able to import movies to the media library on Xbian, so I was not able to test navigation speeds with fan arts.

All in all, both OpenELEC and Raspbmc are good choices for you, but I would recommend opting for Raspbmc as it is easier to configure, if you, for example, want to overclock it later on.

Beginners: Install operating system with NOOBS

The easiest way to install an operating system is to use NOOBS (New Out Of the Box Software), which is an easy operating system install manager for the Raspberry Pi.

You can either purchase a pre-installed NOOBS micro SD card from an online store or download and install it yourself.

Please note that the latest NOOBS does not have Raspbmc on it anymore as Raspbmc is now replaced with OSMC operating system. I am currently in process of updating this guide for the Raspberry Pi 2 and OSMC.

Buy a preinstalled microSD card

You can buy a micro SD card with NOOBS preinstalled, for example from

Your RPi will boot automatically into NOOBS after booting up the system for the first time with the card inside. The NOOBS installation manager should display a list of operating systems that you can choose to install.

Or download and install NOOBS to microSD card yourself

If you already have a micro SD card (8GB recommended), then you can download NOOBS for free and install it on your card.

Follow these step by step instructions on how to create a NOOBS card.

Install operating system with NOOBS

Now, insert micro SD card with NOOBS to RPi, connect cables, keyboard and mouse and boot up the system.

Please note that you will need to plug in your keyboard and mouse before installing NOOBS as you will need to use a mouse to install the operating system on the RPi.


1 After booting up your Raspberry Pi, a window will appear
with a list of operating systems that you can install.
Select either OpenELEC or Raspbmc and click on Install.
You can also install them both if you want to try them first.
2 Confirm to overwrite all the data on the micro SD card.
3 OpenELEC and/or Raspbmc will run through its
installation process, which will take a while.
4 When the install process has completed, the system will
reboot and you can choose the installed operating system
to be launched.


Advanced users: Install operating system without NOOBS

Download and launch the Raspbmc


The Raspbmc distribution is created and maintained by Sam Nazarko and you can download the latest version here. I will use the Windows installer in this tutorial.

Before launching the application, plug-in the SD card reader and unplug any other USB storage devices to make sure you will not format an incorrect drive by accident.

Now, launch the Raspbmc installer application and select the SD card reader from the devices list.

After clicking the “Install” button, it will take less than a minute while the installer downloads and restores the image to the SD card.

After plugging in the memory card, USB stick, USB keyboard or remote control, Ethernet cable and power adapter, the computer will boot up and the installer program will run for about 15-20 minutes.

The Raspbmc will boot up the computer once the installer script is ready.

Congratulations, now you have XBMC (Kodi) ready to use.

Xbian for experimental users

Xbian_installerI also tested Xbian, which is not included in the NOOBS to see how its performance compares with OpenELEC and Raspbmc.

You can download the Xbian here.

Now, launch the Xbian installer and install the Xbian to the selected drive.

Once the installer has downloaded and copied the image to the card, insert the micro SD card to the RPi and boot up the system to complete the installation process.

As mentioned earlier in this article, I was not too impressed with Xbian’s performance in the real life usage scenarios, so for the time being I would stick with either OpenELEC or Raspbmc.

Performance optimization tips

I run a series of performance improvement tricks to see how they could improve the performance. By following these tricks, you can speed up the system 20-40 percentage compared to the original baseline.

Before After optimization
Booting up 32.0 sec 27.8 sec
Importing movies 82 sec 80 sec
Opening library 1.7 sec 1.4 sec
YouTube search 22 sec 15 sec


Overclock it

You can safely speed up the RPi by overclocking it. Go to “Programs > Raspbmc Settings > System Configuration.

Next, change the “System Performance Profile” to Super to overclock the system. At least for me, the “Super mode” works reliably when running the Raspbmc.

Overclocking did not have as high of an impact as I was hoping for, but booting up time improved over 20 percent. However, movie library importing, navigation speed and YouTube searching remained on the same level.

Get an optimal memory card

Please note that many SD cards are unsupported by the Raspberry Pi, so be sure to get one that is on the list of supported cards such as Samsung’s Rapsberry Pi optimized micro SD memory card.

As seen at the beginning of this article, different memory cards have significant differences in their performance and high-class cards do not necessarily perform better compared to the lower class cards.

Change resolution to 720p

Reducing the XBMC user interface resolution to in Settings > System > Video will save memory it will make the system and menus a bit faster. Video will still play at full resolution (e.g. 1080p).

Go to “Settings > System > Video Output > Resolution” to change the resolution.

I noticed about 20 percentage improvement in the navigation menu speeds, so if you do not need 1080p resolution in the menus, this change will make your system feel snappier.

Change the default skin


Confluence skin works fine, but you can improve the responsiveness of the system by using even more lightweight skin.

Amber skin is beautiful yet responsive skin and it was over 40 percent faster on YouTube searching and about 5 percent faster on navigation menu speeds. However, the booting up time was much slower compared to the Confluence skin.

Both SiO2 and Quartz skins delivered about the same results, so it is really about which interface you prefer. Navigation menu speeds and YouTube searching were about 20 percent faster compared to the Confluence skin. Booting up times were about the same as with Confluence skin.

Disable thumbnail extraction

By default, XBMC will extract thumbnails from videos that have no thumbnail in the library. As this consumes quite a lot of CPU performance, you should disable this feature to speed up navigation in the library.

Go to Settings menu and select Video > File lists > disable “Extract thumbnail and video information”.

You may also want to disable Actor thumbnails from the Settings > Video > Library > Download actor thumbnails when adding to library.

Adjust display refresh rate to match video

I would recommend adjusting display refresh rate to match video in order to get smoother video playback.

You can enable it by going to System > Video > Playback > Adjust display refresh rate to match video.

Use audio passthrough

I have not tested this tip myself, but using audio passthrough should lower the CPU usage for DTS and AC3.

You can enable it by going to System > System > Audio output > Enable passthrough.

Use NFS instead of SMB share

If you are using a Network Attached Storage (NAS) such as Synology Diskstation, it is recommended to use NFS protocol instead of SMB protocol to access media files in XBMC. SMB networking protocol uses much more of the RPi’s CPU, so NFS is a faster option.

For example, during my tests, a 1080p video was buffering frequently over a wireless network with SMB protocol, but with NFS it played smoothly without any buffering issues.

Power it off a USB port on your TV

As this computer does not have a separate power button, a good trick is to connect it to your TV’s USB port, so that when you turn on your TV it will also boot up the computer. This way you will also need one less power plug.

Set up a WiFi adapter

In general, I would recommend avoiding using WiFi, as you may experience streaming issues compared to the Ethernet connection.

However, if you wish to use WiFi, I have been testing the Asus USB-N10 wireless adapter, which seems to work fine with Raspbmc. However, you will need to configure the WiFi adapter by following these steps.

  • In the XBMC main menu, go to Programs > Raspbmc Settings
  • Switch Network Mode to “Wireless (WIFI) Network”
  • Type your wireless network’s name to the “WIFI SSID” field
  • Type your wireless network’s password key to the “WIFI KEY”
  • Click OK and you are ready to use the WiFi adapter

Alternatively, if you have any problems in getting your WiFi adapter working, you should try the OpenELEC distribution.

Add more media content sources


Install MPEG-2 and VC1 video codecs

In order to play MPEG-2 and VC1 video files, you will need to purchase codec licenses from the Raspberry Pi foundation.

Install the codecs by following these steps:

  • Purchase MPEG-2 and VC1 codec license keys
  • You will receive the license key through your email within 72 hours
  • In Raspbmc, go to Programs > Raspbmc Settings > System Configuration
  • Enter the license key from your email to MPEG-2 and/or VC1 codec under the Advanced system settings
  • Reboot the system

Add Hulu, Netflix and other premium channels

I think this online video streaming service is too cool to miss if you want to watch Hulu, Netflix, Amazon VOD, HBO Go and other premium content channels on your Raspberry Pi.

In order to watch premium channels on the RPi, you will need to install commercially available software called PlayOn Media Server on your Windows-based PC that allows you to stream premium content channels into XBMC running on any operating system.

The PlayOn Media Server costs about $60 (one-time fee), but according to my experience it is definitely worth it.


Just buy and download the PlayOn here and install it to your Windows-based computer.

In order to register your copy, open PlayOn Settings (Go to Start / All Programs / PlayOn / PlayOn Settings) and enter the license information on the Registration tab.

Next, go to Videos menu in the XBMC. Select Files > Add Videos… > Browse > UPnP Devices > PlayOn (your computer name) and select OK.

Now, you are ready to browse the large collection of premium content channels on your RPi.

Continue reading more advanced instructions here, if you want to seamlessly integrate Netflix and Hulu into XBMC (Kodi).

Use the Plex Media Server to transcode video files

The RasPi does not have hardware decoding support for any other video codec other than H.264 out of the box, so you will need to have all video files converted into H.264 format in order to play them smoothly. Alternatively, you can buy a license to unlock MPEG-2 and VC-1 decoding.

Fortunately, there is an easier way should you have another desktop PC or a media server. You can use Plex Media Server to transcode any media file you have in your library and stream it using a PleXBMC add-on for XBMC.

First, you will need to download and install the Plex Media Server application either on your Windows, Mac OS X or Linux based computer.

After installation, configure the movie library with the media manager (go to http://your-desktop-pc-ip-address:32400/manage/index.html with your Internet browser).

Next, download the PleXBMC add-on.

In order to copy the plugin file to the RPi, you can use an FTP client such as FileZilla to copy the to /home/pi folder on your RPi. The username is pi and the password is raspberry.

Go to Settings > Add-ons > Install from zip file > Home folder > to install the PleXBMC plugin.

Go to Settings > Add-ons > Enabled Add-ons > Video Add-ons > PleXBMC > Settings to configure the add-on.

  • In the General tab, change the Primary Server Address to the IP address of your desktop PC or media server where the Plex Media Server is running.
  • In the Transcoding tab, tick Enable transcoding to allow Plex to transcode the video to the H.264 format supported by Raspberry Pi’s hardware decoding. Choose the video quality according to your preferences.

Go to Videos > Video Add-ons > PleXBMC > Movies and launch your first movie.

While PleXBMC works with any skin, I would recommend using Amber, which is a PleXBMC-enabled skin that can be installed from the standard skin repository. Once you have installed Amber skin, select “Go PLEX” from the Home Screen by scrolling to Settings and selecting “Go PLEX”.

Turn Raspberry Pi into audiophile music player


If you want to get the best audio playback quality and turn your Raspberry Pi into audiophile music player, I recommend trying out the HiFiBerry DAC+ and Volumio music player. HiFiBerry DAC+ is a special sound card for the Raspberry Pi that is optimized for 192kHz/24bit high-quality sound.

Volumio is a great music system that replaces your XBMC based operating system to play all your music, whether it is a high resolution file or Spotify, with the highest quality. You can control it with your mobile phone, tablet or PC.

To enjoy high-quality sound, you will need


1 Download and extract file.
Download and open Win32DiskImager, right-clicking on the
file, and selecting “Run as Administrator”.
Insert the MicroSD Card on your computer, and browse the
Volumio1.5PI.img file and click on Write.
2 Insert the HiFiBerry DAC+ board to the RPi board.
Insert the micro SD card and cables and boot up system.
3 Type volumio.local/ on your device’s browser.
Be sure that you are connected to the same network as
Volumio. From here, you can configure it such as
adding NAS drives or Spotify credentials.
4 Done! Now you are ready to play your first song.


I have been very satisfied with Volumio, and I have a separate HiFiBerry powered RPi and active speakers in my living room to easily play music whenever I want.


flirc_doneAll in all, the Raspberry Pi is almost ready to replace your home theater PC, but it will require some tweaking before you can realize its full potential as an entertainment center front-end.

One question that many of my readers ask is: “How does this system compare to my other reference HTPCs in terms of performance.”

In order to answer to this question, I compared my optimized Raspberry Pi system with my budget HTPC and as you can see, there is still quite big difference. But, it all comes to how much time and money you are willing to spend. In my case, I still use a full blown HTPC in the living room while other rooms have RPis as secondary HTPCs.

Raspberry Pi Budget HTPC
Booting up 27.8 sec 9.7 sec
Importing movies 80 sec 15 sec
Opening library 1.4 sec 0.6 sec
YouTube search 15 sec 2 sec


Now go and build RPi yourself: get the list of required components.

What’s Next

Next, continue customizing the XBMC (Kodi) user interface with this extensive guide (over 4,000 words including a free PDF version) to learn other useful tips and how to set up live TV on Raspberry Pi.

You might also find these XBMC Netflix and Hulu integration tips useful.