This past weekend I’ve managed to get my hands on a Raspberry Pi 2; long story short I wanted to setup a Minecraft server that would keep running at home to avoid depending on my Macbook, and this was an extremely affordable and, as it turns out, capable little system. After being a Dev turned DevOps at work I used the skills I’ve learned to easily get it running and make my decisions, but others might not be so fortunate. In this short four part series I will go through selecting an OS, getting Minecraft up and running, automated world backups and finally how to get a retro gaming rig going.
As a disclaimer this post assumes some basic Linux knowledge, your Pi connected to your home router and another computer that is UNIX based i.e. Ubuntu, Debian, OSX etc. Personally I used my trusty little Macbook so you may need to adjust the commands you use to suit your machine.
Available Operating Systems
First there’s the multi-boot/Docker approach that I initially had; it would allow you to keep several different operating systems on a single SD card or if you’re familiar with docker, have a single machine that can swap out images on the fly whilst running. BerryBoot was an attractive option and familiar to those who dual boot their systems, but involved some optimising of OS images in order to load them successfully in a different format and was a little over-engineered for me wanting a single server or a retro gaming system at any one time.
Hypriot was the other option using the Docker technology which sounded perfect; create images on my faster Macbook and just pull them from Docker hub, right? Well, the CPU architecture is different between Intel/AMD of almost all laptops/desktops and the ARM architecture that the Pi uses. I’d rather not spend all day baking docker images on my Pi thanks. Additionally after thinking about it, the Docker daemon (the process in charge of running containers) would take up some memory and CPU usage, and really you will want to utilise 99% of your Pi’s resources delivering the server, not virtualising it.
In the end after weighing up the pros and cons for my use case I decided on Minibian and Lakka.
Minecraft Server on Minibian
Minecraft is a popular massive sandbox game, that can also be played as an MMO (massively multiplayer online) game. Occasionally you may not have internet connection and only want to play with friends, and so you can configure your own server to run locally. Since it runs on the JVM it is extremely portable at the cost of needing compute power to support all your players.
Due to the server requiring as much CPU as possible (and funnily enough not memory as I found out later) Minibian made sense. It’s an OS based off of the official Raspian image that behaves very much like Ubuntu e.g. apt-get command. However it is stripped down of all the extras like the desktop GUI and can fit on a 512mb micro SD card. It will be a little daunting at first but the simple command line nature is sufficient for our purposes and I promise you it will make for a smoother server – that’s always on!
Retro Rig using Lakka
By retro rig I mean a system that plays all your childhood favourites right on any screen with HDMI input; from arcade and Atari all the way to Gameboy Advanced and the PlayStation, even some native platforms I haven’t heard of before. There are a multitude of options at our disposal such as Retro Pie and Pi Play, but a lesser known one I came across was Lakka.
Whilst the other systems I saw looked retro and could configure many different options, Lakka was designed to be as plug and play as possible. I like to fiddle but when you want to play, you want to play – there’s no time to go to the command line and fix it every 5 minutes.
Those of you lucky enough to have a USB Xbox controller at least have your work out for you. I won’t lie as if your controllers don’t have a configuration installed it will be a bit of work, but once it’s setup it’ll be there forever. I’ll show you how to do this end to end, make a pull request on GitHub to contribute back to the original project and get you gaming in no time. Once you’re done you can be in a game of Pokemon or Zelda or Spyro in literally less than 30 seconds.
This was meant as an introduction to my adventures with the Pi 2 and to serve as a taster to know what you may be getting yourself into in this post series. Even if you chose not to go ahead, I’ve discussed a few different paths you could take and use it to confirm your own thought train. Keep your eyes peeled for the next post for getting a Vanilla Minecraft server up from 0-60 in cracking time.