You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This document will walk you through installing and running the essential EdgeX Foundry microservices on a RaspberryPi for testing and evaluation. This is not an officially supported way of running EdgeX Foundry, and should not be used in a production environment. This guide is for developers who want to learn EdgeX by running it as a mock gateway device.

Know your device

This guide has been tested to work on a RaspberryPi 3B+, it may work on other models of the RaspberryPi 3, but it will not work on any older or smaller variations of the RaspberryPi as it requires a 64bit capable CPU.


Step-by-step guide

Install the OS

For this setup we will be running a 64-bit OS on our RaspberryPi 3. While there is no supported 64-bit OS for this device, a number of people have been building their own to meet their needs. We will be using one of these: 

https://github.com/Crazyhead90/pi64/releases/download/2018-04-17/Bamarni-desktop-full64bit-pi3bplus-V2.zip

Download the OS disk image file from the link above, then insert your microSD card into your computer so that you can flash the disk image onto it. If you are running Ubuntu or any other Linux distro, you can flash the image using this command:

unzip -p Bamarni-desktop-full64bit-pi3bplus-V2.zip |sudo dd bs=4M of=/dev/mmcblk0 iflag=fullblock oflag=direct status=progress; sync

Note that you will need to replace the part in bold with the path to your own microSD card, and that it should point to the device and not a partition on the device.

After this is done, insert the microSD card into your RaspberryPi 3 and power it on. You should see a screen with the RaspberryPi logos at the top. On the first boot it will expand the filesystem on your microSD card and setup the system, this can take quite a while (10-30 minutes) so be patient and don't shutdown or reboot your device. It will reboot itself when it is done, and take you to the login screen. The default username is 'pi' and default password is 'raspberry'.

Install system dependencies

Once you have logged in, it's time to install the system dependencies needed to run EdgeX Foundry. Connect your device to your network using an ethernet cable (wifi isn't currently supported) and run the following commands:

sudo apt update

sudo apt install build-essential git wget libzmq3-dev

You  may also want to be able to connect and manage your device remotely, in which case you should also install:

sudo apt install openssh-server vim-tiny

Create swap file

The RaspberryPi 3B+ has a full gig of ram, but between building the EdgeX Foundry source code and running MongoDB this may not be enough. So before going any further you will first want to create some additional memory capacity by adding a swap file to your filesystem. Run the following command to create a new 2GB swap file:

sudo touch /tmp/theswap
sudo chmod 600 /tmp/theswap
sudo dd if=/dev/zero of=/tmp/theswap bs=1M count=2048
sudo mkswap /tmp/theswap 
sudo swapon /tmp/theswap

Install Go & Glide

To get the exact same version of GoLang as used by the EdgeX Foundry, install it from the upstream source rather than through the apt repositories:

wget https://dl.google.com/go/go1.10.1.linux-arm64.tar.gz

sudo tar -C /usr/local -xvf go1.10.1.linux-arm64.tar.gz

cat >> ~/.bashrc << 'EOF'

export GOPATH=$HOME/go

export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin

EOF

source ~/.bashrc

Glide is used to manage go dependencies for EdgeX Foundry. Install it with:

url https://glide.sh/get | sudo GOPATH=/usr/local/go sh

Get the EdgeX Foundry source code

Now that you have Go and Glide installed, you can tell them to fetch the EdgeX services and their dependencies:

go get github.com/edgexfoundry/edgex-go

Then cd into the directory with the EdgeX source code:

cd ~/go/src/github.com/edgexfoundry/edgex-go

Building EdgeX Go microservices

There are two steps for building the EdgeX Go microservices, the first to prepare the build, and the second to compile it:

make prepare

make build

Install and setup MongoDB

Test run EdgeX services

Made EdgeX a system service


  • No labels