This focused on using the Raspberry Pi as an educational device, to learn about the hardware, operating system and programming (by the way, for those who are interested in this aspect, there is an excellent new post on the Raspberry Pi site about Mathematica and the Wolfram Language).
In the second post, I looked at the other two general-purpose Linux ports specifically for the Pi, Arch Linux ARM and Pidora. Now I am going to move on to the other major use of the Raspberry Pi, as a multimedia player and home entertainment hub.
As I mentioned in the previous posts, the Raspberry Pi NOOBS distribution image includes a number of different operating systems.
In addition to the three general-purpose Linux ports mentioned above, it also includes Raspbmc and OpenELEC (Open Embedded Linux Entertainment Center), both of which are dedicated Linux systems specifically designed to run the XBMC Media Center package.
I want to stress here that I am not any kind of expert or even experienced user of such multimedia systems, so I am going to concentrate on the Raspberry Pi itself. If you want more information about XBMC, please check their web site (linked above).
To start at the beginning, installing either Raspbmc or OpenELEC (or both) from the NOOBS distribution is the same as I described in the previous posts.
When you boot the Raspberry Pi for the first time you will automatically get the operating system installer selection screen. If you already have one or more operating systems installed on the NOOBS SD card, you can hold down the Shift key while booting to get back to the installer selection screen.
Warning: if you already have one or more operating systems installed on the NOOBS card, and you change the selections and click 'Install', it will wipe everything that is currently installed on the SD card and make a clean installation of whatever you selected.
It will not add, change or reconfigure the existing installations, and it will not preserve anything you have on the card, even in the 'Storage' partition. Make sure you save any data you want to keep before doing this.
At this point some people are likely to be wondering: why bother? The XBMC package can be installed on Linux, so why not just load the Raspberry Pi with Raspbian and then add XBMC to it? Well, that would almost certainly work (I haven't tried it myself, so I can't say how easy/difficult/impossible it might be), and if you really want to learn everything possible about loading and configuring your Raspberry Pi, that might be a good choice for you.
But consider these points:
- To get the best performance with XBMC, a considerable amount of custom configuration and tuning is required. You could do this yourself, but it would be time consuming and error prone, and this is one of the things which has arleady been done by the creators of these distributions, based on their extensive experience.
- General purpose Linux systems include a lot of utilities and packages which are of no use or interest on a dedicated media center system, so the overall size and system load, both in terms of disk space required and CPU/memory load, can be dramatically reduced by eliminating most such packages.
- A dedicated media center system will include more than just XBMC itself; things like Apple AirPlay and AirTunes support, GPIO (I/O bus) devices, camera support, preconfigured media sharing via local network or internet and probably a lot more that I haven't even noticed yet.
Ok, that sounds pretty convincing. But then, what are the differences between these two Media Center distributions for the Raspberry Pi?
At the user interface level, meaning what you see and do with the system, there are not many differences. But under the covers they are very different.
Raspbmc was created and is maintained by one very talented young man, Sam Nazarko. This was not his first foray into Linux-based media centers and servers, he previously created Crystalbuntu for the AppleTV 1, which basically combined a stripped-down Ubuntu distribution with XBMC and the Broadcom Crystal HD card to create a media center.
OpenELEC was created and is maintained by a small group of dedicated people. Raspbmc is derived from Debian GNU/Linux, and was basically created by removing a lot of stuff that is not relevant for this purpose, and then configuring, customizing and tuning it for the best performance running XBMC.
This could be an advantage because it benefits from the ongoing development, bug fixes, new device support and so on that is constantly happening with Debian. OpenELEC is not derived from any other distributions, it is built from scratch by the development team.
That difference in derivation is probably the single biggest and most important difference between these two operating systems, and it shows even in their installed sizes. Raspbmc takes about 750MB on the SD card, which is pretty impressive compared to the 2GB that Raspbian uses, but OpenELEC only uses about 100MB!
Yes, you read that right, I couldn't believe it either. In fact, while I was researching some of the details for this I decided to look at the contents of the SD card, to see where each version was installed and how much space they took. I found Raspbian and Raspbmc easily enough, but I couldn't figure out which partition was OpenELEC, because none of them seemed to be large enough!
Both of these distributions boot to the XBMC Home screen:
In my rather brief experience so far, both of these work quite well, and once booted and running XBMC they are visually nearly indistinguishable from each other. My impression has been that OpenELEC is a bit faster, and seems a bit more reliable.
One small example is that I couldn't get the Weather configuration to work on Raspbmc, but had no trouble with that on OpenELEC. There were some other places where installation or configuration of Music or Video add-ons didn't work on Raspbmc but did on OpenELEC. But when it came to actually playing multimedia content, both of them performed very well.
I have tried three different monitors so far; an old Compaq (1280x1024) using an HDMI to DVI cable; a new HP (1920x1080) using a standard HDMI cable; and my TV (1920x1080) also using the standard HDMI cable. All three of these came up at the optimal resolution without me having to make any adjustments.
When using the TV via HDMI, both video and audio were sent over the HDMI cable: with the two computer monitors, I also connected a set of external speakers (Hercules) on the audio output jack and I went to the System Configuration screen and selected analog audio output.
It would also be possible to connect a TV (or other display) via the RCA plug and a composite video signal, but I haven't tried that. I assume that would require some manual tweaking of the display resolution, and of course there would be no audio on that so it would also require analog audio connection.
You can check the hardware configuration and performance by going to the XBMC System menu and choosing System Info:
I still feel like I have to laugh when I see that screen - 332MB of free memory, only about 10 percent of memory used, and it is running just fine, and will do an excellent job of playing multimedia content for me. Very nice.
If you need to change the system configuration, such as for adjusting video resolution or changing between digital (HDMI) and analog audio output, you also go to the 'System' menu, but then choose the 'Settings' option to get this screen:
For multimedia content I have used USB sticks containing digital pictures, music and HD movies, a USB CD/DVD drive to play music CDs and DVD movies, and of course various internet sites and services, connected via the built-in RJ-45 wired connection. I will probably try a USB WiFi adapter sometime soon, but I have not done that yet.
To summarize, my experience with the two dedicated XBMC Media Center versions on the Raspberry Pi has been very good.
I have viewed my digital photos, played music from both local media and internet radio, and played video ranging from simple flash clips to 1080p HD video, again both from local media and online sources.
Although general use such as moving between menus and setting up new media sources seems sluggish, when it is actually playing multimedia the performance is flawless, there is no hesitation, jerkiness or synchronization issues that I often see with other Linux systems.