2 minute read

This will be the first post in a series dedicated to describe the hardware and the configuration from where this site is served. I have been meaning to write this post for some time, but until now, I had never gotten to it.

1. The hardware

As I already mentioned in my Hello World! post, this site is running on an 1 Gb RAM model of the Pine64+ SoC. I ‘bought’ it last Christmas on Kickstarter , and got it delivered home by may.

I had been curious about the Raspberry Pi, and when I heard about the Pine64, I decided to get one as a Christmas self-present. I decided for the Pine64 because it was superior to the RasPi 2 (at the time there were still no news about the RasPi 3).

Today I would not go for a Pine64, I would prefer a Raspberry Pi 3, since the Pine still has issues with hardware acceleration, and Kodi, which is one of the things I was going to use it for, is not working on it. But despite the problems wit hthe hard ware acceleration (which I hope will get solved in the not so distant future) it is still able to work perfectly as a personal web server.

2. The OS

The Pine64 community has put together a custom Ubuntu 16.04 image, with a custom kernel and other changes needed to get the Pine64 up and running. The latest build for this image can be downloaded from here. The image comes preconfigured with a custom PPA for updates, as well as some scripts to update the custom kernel and uboot.

The OS is quite simple to set up. After downloading the image, I just had to use my laptop to flash the image to a SD-card with the following command (of course, substituting /dev/sdXwith the actual path to the card reader):


~$ xzcat ubuntu/xenial-pine64-bspkernel-*.img.xz | pv | sudo dd of=/dev/sdX bs=1M oflag=sync

Since the image is about 4 Gb in size, it took a while, but after the flashing, I just had to move the card into the Pine64 and plug in the power to make it start.

Once it booted, I ran the sudo /usr/local/sbin/resize_rootfs script to resize the root partition to the full capacity of the card. Once the partition finished resizing, I updated the Ubuntu OS with sudo apt-get update && sudo apt-get full-upgrade, and then the custom kernel and uboot with the custom update scripts that come with the image: sudo pine64_update_kernel.sh && sudo pine64_update_uboot.sh. After the updates, I rebooted the Pine, and started installing packages and customizing the configurations.


Well, that’s it for the ‘boring’ part of the setup. In coming posts, I will describe the installation and configuration of the nginx web server and the virtual hosts I have set up for this jekyll blog and my private git repository.

Leave a comment