As you may know, I have recently received a PINE64 1GB board where I run ubuntu 16.04 xenial and one of the reason for which I wanted to own a PINE64 was to run a Tor relay, dedicating at least 200Mb bandwidth.

If you are interested on running a Tor node (non exit) compiling it from sources on a similar setup as mine, these are the steps you need to follow:

# tar zxvf tor-
  • cd into the Tor directory and compile the source code
# cd tor-
# ./configure && make

The compiling process will take about 20 minutes to complete

  • Move and edit the torrc file (Tor config file):
# sudo cp src/config/torrc /usr/local/etc/tor/torrc
# sudo vim /usr/local/etc/tor/torrc

You need to remove the hash in front of the following lines:

# RunAsDaemon 1 (if you want to run it as a deamon)
# ORPort 443 (I personally run it on port 443)
# Nickname (choose your favourite nickname)
# RelayBandwidthRate 10000 KBytes (This value depend on your internet connection capabilities)
# ContactInfo 0xFFFFFFFF mane  (It is good to specify contact details)
# ExitPolicy reject *:* (if you want the relay to run as a non-exit)
  • You are ready to start your Tor relay
# src/or/tor

You should get an output similar to this:

Mar 09 22:04:30.769 [notice] Tor v0.2.7.6 running on Linux with Libevent 2.0.21-stable, OpenSSL 1.0.2g and Zlib 1.2.8.
Mar 09 22:04:30.769 [notice] Tor can't help you if you use it wrong! Learn how to be safe at httpss://
Mar 09 22:04:30.770 [notice] Read configuration file "/usr/local/etc/tor/torrc".
Mar 09 22:04:30.778 [notice] Based on detected system memory, MaxMemInQueues is set to 733 MB. You can override this by setting MaxMemInQueues by hand.
Mar 09 22:04:30.781 [notice] Opening Socks listener on
Mar 09 22:04:30.782 [notice] Opening Control listener on
Mar 09 22:04:30.782 [notice] Opening OR listener on

Enjoy your Tor node!


My PINE64+ 1GB has arrived and, of course, I’m already playing around with it.

First of all I needed a bootable ubuntu image so I went on the official forum and checked if there was something ready to be used.

Fortunately there are a bunch of good guys there that make good things happen. One of these guys is longsleep, the only user who released a fully working ubuntu 16.04 image so far and many thanks goes to him for his work.

These are the steps you need to follow in order to install ubuntu 16.06 xenial on your PINE64 using a mac computer:

  • Download the latest image file from here (versions might vary with the time)
  • Extract the .img file
  • Flash the .img file into the SD card using the following commands:

*Assuming that your SD card is mounted under /dev/disk2 (otherwise change the number 2 with the appropriate of your system)

# diskutil unmountDisk /dev/disk2
# sudo dd if=/path_to_your_file/xenial-pine64-bspkernel-*.img of=/dev/rdisk2 bs=32m

The last command will take few minutes to complete so be patient

  • Unmount the SD from your mac
  • Insert the SD on your PINE64 and power it up
  • Wait for ubuntu to boot
  • Login using the following credentials:
# username: ubuntu
# password: ubuntu
  • Change the credential with a more secure one
  • Enjoy your PINE64 with the latest ubuntu version

Kudos to the fantastic PINE64’s team who kindly decided to send me a board free of charge in order to test it and document what I will run on top of it with the aim of supporting its community. Keep the good work up!

Stay tuned for more exciting how-to articles!

** Thanks to Lars Hansen for adding some details on how to flash an img file from a Windows computer.

  • Download Win32 DiskImager
  • Extract the .img from the .xz file using 7zip
  • Write the image to the SD card using DiskImager.
  • Insert SD card into Pine64, and boot up.