I had previously stated the myriad of ways in which the Raspberry Pi can be put to use. While utilizing separate SD cards for each OS is a viable solution, it is a bit cumbersome and perhaps expensive if you don’t have a lot of spare SD cards lying around. Hence, what’s better than being able to run a whole bunch of OSes from a single card and being able to switch seamlessly between them. A point to note is that a LOT depends on the speed of the SD card and I have settled on using the Samsung Evo + which might be a bit of an overkill for the Pi but it ensures the fastest experience.
In my case, I had the following requirements of a multi-boot system.
1. First and foremost, Kodi. It is a powerful media player by itself but what makes it truly worthwhile are the countless add-ons that significantly boost its functionality. The Pi makes for a formidable media centre with its hardware x264 decoding and finds a lot of its utility online.
2. An OS to execute the various Pi projects. A CLI may do but a GUI makes things a lot easier.
3. A retro games emulator. Who can beat nostalgia?
While there are multiple ways to fulfill each of the requirements I mentioned above, my evaluation lead me to settle on the following:
1. Kodi – OSMC: OpenELEC, LibreELEC and OSMC are the standalone Kodi OSes available and while Kodi is Kodi, there are still some pros and cons to each. OpenELEC and LibreELEC operate on a “just enough OS” principle wherein the installation contains no extra fluff. This certainly speed things up but may limit the extent to which you can play around in the background with SSH. LibreELEC is a fork of OpenELEC and the situation is akin to what happened with Open Office wherein most developers have eloped to the “Libre” camp, so one might imagine that it would see more proactive development going ahead. However, after trying out LibreELEC, I settled with OSMC, mainly because I was having a hell of a time with Bluetooth on LibreELEC. Also, the OSMC skin looks much more refined and the vertical interface is much easier to use when you are left dangling with a TV remote. Moreover, while I have only used SSH to enable OpenVPN, I am pretty sure that OSMC will allow for a lot more tinkering that the “ELECs” if need be.
2. OS – Raspbian: Yup, I settled with the de-facto OS. The project support for this is unparalleled which certainly makes things a lot easier. Ubuntu Mate comes in at a close second if you are looking for a true “desktop” experience but it comes at the expense of speed even though it is compiled for ARM v7 as the MATE desktop environment is more resource hungry. Lubuntu is a good alternative but you lose out a lot of the Ubuntu look and easy customization. Having said that, the Pixel desktop environment has made Raspbian a lot more welcoming and easy to use. The built-in license for RealVNC as well as the GUI for Raspi config are like icing on the cake.
3. Retro gaming console – Recalbox: RetroPie is the more popular option here but in my testing, I found it to behave a bit irrationally. The configuration done for RetroPie didn’t map properly to many of the emulators. Also, the bluetooth interface kept on throwing errors wherein I couldn’t remove an existing device because it wasn’t listed and neither could I add it since it was stated to be already present. In that sense, Recalbox is more user friendly. The interface does hide more of the advanced options for RetroArch, but it worked well for me out of the box and was more reliable in general.
With my options in place, the next thing was getting them to play ball on a single SD card. To that end, I considered the following options:
1. NOOBS: The option that the Raspberry Foundation themselves provide. It is quite easy to add offline OSes by adding them to the “os” folder on the SD card and then selecting them at the time of installation. The downside is that by default the OS selection requires the use of a keyboard since it doesn’t support HDMI-CEC. Since I was looking at a wireless option, I had to leave this one out in its unadulterated form.
2. BerryBoot: It certainly solves the OS selection problem by supporting HDMI-CEC and allowing the use of the TV remote to select an OS. The OS images have to be modified to be compatible with BerryBoot but thankfully there is an updated repository of all prominent OSes maintained here. Unfortunately there are some limitations to this approach. It uses SquashFS, a compressed file system that limits performance and also prevents one from making automated system level updates.
3. Multi Boot Pi: This eponymous option is the first thing that pops up on Google and is indeed a great option built on NOOBS. The built-in OS switcher makes it easy to switch between OS and also set the default boot option. I had selected the latest available download at the time of this writing which offers quad boot support. I presumed that being based on NOOBS, I can avoid installing RasPlex and that doing so would adjust the menu entries in the respective OSes. However, that is not the case. RasPlex hangs around no matter what and requires manual editing to remove the references. Also, updating the various OSes led to a change in the look of the Kodi Program launcher for the other OSes and I presume future updates might break it altogether. Even otherwise, the RetroPie option that this goes with just wouldn’t work for me.
4. Matt Huisman’s Dual Boot: This is built on the same principle as Multi Boot Pi, but includes Recalbox by default which is what I prefer. Although the default installation is for dual boot, adding Raspbian was as easy as copying the folder that comes with the Raspbian NOOBS zip. It boots to OSMC by default which is again as per my preference, though that can be edited easily as well. The site also includes the necessary scripts including the one on adding Raspbian to Kodi, so any unexpected link breakages can be easily rectified. Having said that, I updated all the OSes without any adverse effects. It would also be pertinent to note that you can and should adjust the partition sizes for each OS as per your requirement. I have kept about 2 GB for OSMC, 8 GB for Recalbox and the rest for Raspbian.
So, that’s it as far as my setup is concerned. It strikes the perfect balance between all that I require of the Pi with convenience to boot. (pun intended.)