In 2014 I watched new single-board-computers enter the market. I am very fond of the Raspberry Pi project and I am using RPi for quite some time now as you can see from my previous posts on my website. Now I am curious about the differences. I am currently looking for a base station for my home automation project. I wouldn't call this a server since this term is in most cases used for different hardware. In this context reliability, cost of operation running 24/7, ease of use are the most important factors for me. I am going to write a series of blog posts on benchmarks of the different models in this context.

 

The BeagleBone Black is a $45 ARM Cortex-A8 community-supported development platform. With 4GB of eMMC flash on-board, processor speed increase to 1GHz, and improved power consumption in comparison to earlier beaglebone boards - the BBB has much to offer. BBB has 512MB DDR3 ram. Unboxing the board and the enclosure both make a perfected impression on me. Assembly of the enclosure is very easy since the board is mounted using 4 little screws. The rock solid enclosure has openings that allow access to buttons and GPIO pins.

 

During the last two weeks I got convinced by the excellent quality of the BBB board and enclosure. I am particularity fond of the Beaglebone since it is open hardware (in the sense of open source hardware!).

 

After an initial little hiccup during installation of Debian Linux I decided to use Archlinux from now on.

bbb.png

I followed this perfect set of instructions for installation:

http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black

 

These instructions are organized into two sections:

  • creating a micro sd card and booting the BBB from it
  • installing Archlinux onto eMMC

 

After that you have to sync and update:

$ pacman -Syyu
$ pacman-db-upgrade











 

An optional step is to configure a suitable hostname for your new BBB based docker machine. I choose "kujira02" for that.

$ hostnamectl set-hostname kujira02











 

And now the installation of the docker package itself:

$ pacman -S docker systemd











 

Enable docker to run as a service:

$ systemctl enable docker.service











 

Done! Now we will reboot the BBB and check if everything worked as expected:

$ shutdown -r now











 

Check that the docker service is running:

$ ifconfig
...
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
      inet 172.17.42.1  netmask 255.255.0.0  broadcast 0.0.0.0
      inet6 fe80::5484:7aff:fefe:9799  prefixlen 64  scopeid 0x20<link>
      ether 56:84:7a:fe:97:99  txqueuelen 0  (Ethernet)
      RX packets 282177  bytes 14504931 (13.8 MiB)
      RX errors 0  dropped 0  overruns 0  frame 0
      TX packets 637920  bytes 931009075 (887.8 MiB)
      TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...











 

I am now able to use arm specific docker containers (as a convention they are usually prefixed with "armhf-"). In this example I start my "armhf-bench" container from docker hub and use it.

$ docker run -t -i finklabs/armhf-bench
105.2116s
3.1723Mb/sec
216.119 MiB/s











 

That's it. Here my benchmark results for the Beaglebone Black:

BoardBeaglebone Black
CPU (lower is better)105.2 sec
FileIO3.17 MB/sec
Memory216.1 MiB/sec
Wattage 2.12 Watt


If you are interested in this work let me know.

 

Parts used:

 

Resources


Have fun!

Mark