Skip to content

Build IPOP for Ubuntu and Raspberry Pi

Vahid Daneshmand edited this page Feb 12, 2020 · 8 revisions

Build IPOP for Ubuntu and Raspberry Pi

Description
Tested on Ubuntu 18.04 x64
Raspbian Buster on Raspberry Pi 3 and 4
Time ~ 10 Minutes

Download and Install Dependencies

sudo apt update -y
sudo apt install -y git make libssl-dev g++-5 python3 python3-pip python3-dev openvswitch-switch iproute2 bridge-utils
sudo -H python3 -m pip install --upgrade pip
sudo -H python3 -m pip --no-cache-dir install psutil==5.6.3 sleekxmpp==1.3.3 requests==2.21.0 simplejson==3.16.0 ryu==4.30

Note: Python v3.6 or higher is required.

Build IPOP

Run the following commands as a regular (non-root) user:

mkdir -p ~/workspace/ipop-project/ipop-vpn/config
cd ~/workspace/ipop-project/

Get Tincan and WebRTC Libraries

Note: If you have already built the WebRTC libraries yourself following this Wiki's instructions, this step is already done and you should skip it.

For master branch (Development):

git clone https://github.com/ipop-project/Tincan

For other branches, for instance bh1 (Latest Stable Release):

git clone -b bh1 --single-branch https://github.com/ipop-project/Tincan

Ubuntu, x86_64:

git clone -b ubuntu-x64 --single-branch https://github.com/ipop-project/3rd-Party-Libs.git Tincan/external/3rd-Party-Libs

Raspberry Pi 3, ARMv7:

git clone -b rpi3-arm7 --single-branch https://github.com/ipop-project/3rd-Party-Libs.git Tincan/external/3rd-Party-Libs

Raspberry Pi Zero, ARMv6:

git clone -b rpizero-arm6 --single-branch https://github.com/ipop-project/3rd-Party-Libs.git Tincan/external/3rd-Party-Libs

Get Controllers

For master branch (Development):

git clone https://github.com/ipop-project/Controllers

For other branches, for instance bh1 (Latest Stable Release):

git clone -b bh1 --single-branch https://github.com/ipop-project/Controllers

Then:

cp -rf Controllers/controller/ ipop-vpn/

Build Tincan

cd Tincan/trunk/build/

To build the Tincan binary in debug mode:

make DEBUG=1
cp -f ../out/debug/$(uname -m)/ipop-tincan ../../../ipop-vpn/

Otherwise, for release mode:

make
cp -f ../out/release/$(uname -m)/ipop-tincan ../../../ipop-vpn/

Now you can manually run IPOP from ipop-vpn directory.

Build Debian Package

If you want to build the IPOP deb package to be able to install/start/stop/remove IPOP easier:

cd ~/workspace/ipop-project
git clone https://github.com/ipop-project/Release-Management.git
cp ipop-vpn/ipop-tincan Release-Management/Deploy/deb-pak/ipop-vpn/opt/ipop-vpn/
cp -r Controllers/controller Release-Management/Deploy/deb-pak/ipop-vpn/opt/ipop-vpn/
cd Release-Management/Deploy/deb-pak && ./deb-gen

The deb package, ipop-vpn_{ver}_{arch}.deb will be generated in the current directory. Now you can install and run it.