Pi the Successor

Upon hearing the news about Raspberry Pi 2, I was immediately interested: a quad-core processor? That could run four Doomsday multiplayer servers without breaking a sweat! I jumped into the web browser to place a preorder without hesitation.

I then remembered my trusty Raspberry Pi model B, which has been lying around unused of late. Perhaps I could employ it as an autobuilder client, to replace my old Mac Mini? Compared to a disk-spinning, fan-blowing Mac Mini, a completely quiet and tiny Raspberry Pi seems much better. Nowadays the Mac Mini has only been running nightly API documentation updates and other documentation generation tasks, so the relatively slow Raspberry Pi CPU shouldn’t be a problem.

To work then! Initially I hoped that my current Raspbian setup would be fine, however at some point in the past it seems I had broken apt-get; it failed to install any packages and even after several attempts it resisted resuscitation. I decided to just grab the latest image of Raspbian and start from scratch.

A blank installation of Raspbian expects one to plug in a keyboard and monitor to set things up, however I felt lazy and wanted to go in headless. Furthermore, I wanted the Raspberry Pi to join my wireless home network. Well, I still had to get started with a wired network cable because before joining the WLAN I still needed to enter my credentials and whathaveyou. So turns out in this case one must add a custom boot parameter to specify the IP address the Raspberry Pi will use on the cable connection. After this I actually managed to get an SSH login going.

I then installed a bunch of software: gcc, git, Qt 4, doxygen, and postfix. For generating the documentation I needed to compile Amethyst that can be found in the Doomsday Engine Git repository.

While compiling the latest version of Doxygen, which was taking a while, I decided to look into overclocking. I hadn’t previously tried it with Raspberry Pi and was surprised that there was an extremely easy way to choose the overclocking settings. I decided to go with a slight boost to 800 MHz, which gives a nice psychological advantage if not much of a practical one.

I rely on Dropbox for certain parts of file distribution within the autobuilder. However, Dropbox is not available for Raspberry Pi so this presented a problem. Fortunately my other Linux machines already were running Dropbox so I was able just mount one of their Dropbox folders over sshfs. As a side note, I’ve been using sshfs for quite a while to access Dropbox from virtual machines, since there’s no need for running it on a virtual machine if the host already has it.

I use email for monitoring what the autobuilder is up to, so I needed to setup up Postfix for mail routing. I’m using Gmail for SMTP, and since the old Mac Mini has been my Gmail SMTP relay, I needed to transfer this also to the Raspberry Pi.

Setting up Postfix turned out to be quite a challenge, though! I was happy to mostly adapt the Mac Mini’s Postfix configuration, however upon testing, it just couldn’t look up the smtp.gmail.com domain no matter what I did. After some googling I basically gave up and just used a fixed IP address, figuring how often could Google possibly be changing their IP address for this? (I’ll find out in the future, I guess.)

I proceeded to test each autobuilder client if their email was working. Turns out it was about time, because one of the clients had an invalid Postfix configuration and had been buffering emails for months! I blew past Gmail’s daily sending limit before managing to delete the remaining 50,000 status/error emails.

Then it was just a matter of adding a script for the autobuilder to copy the documentation files generated by the Raspberry Pi to the approprate machines/directories, and I could power off the Mac Mini for good.