-
Couldn't load subscription status.
- Fork 12
Building the code for Raspberry Pi
These instructions have been tested on Raspbian on a Raspberry Pi device.
These instructions are derived from these links:
- https://sites.google.com/a/chromium.org/dev/developers/how-tos/install-depot-tools
- https://sites.google.com/site/webrtc/reference/getting-started/prerequisite-sw
- https://sites.google.com/site/webrtc/reference/getting-started
-
This works on Debian-based distros
sudo apt-get update sudo apt-get install pkg-config git subversion make gcc g++ python binutils-gold sudo apt-get install libexpat1-dev libgtk2.0-dev libnss3-dev libssl-dev
-
Download depot_tools for chromium repo
mkdir libjingle; cd libjingle git clone --depth 1 https://chromium.googlesource.com/chromium/tools/depot_tools.git
-
Set up environmental variables
export JAVA_HOME=/usr/lib/jvm/jdk-7-oracle-armhf/ export PATH="$(pwd)/depot_tools:$PATH" export GYP_GENERATORS="make" export GYP_DEFINES="$GYP_DEFINES target_arch=arm arm_version=6" export C_INCLUDE_PATH=/usr/include:/usr/include/arm-linux-gnueabihf export CPLUS_INCLUDE_PATH=/usr/include:/usr/include/arm-linux-gnueabihf
-
Configure gclient to download libjingle code
gclient config --name=trunk http://webrtc.googlecode.com/svn/branches/3.52
-
Download libjingle and dependencies (this takes a while)
gclient sync --force
-
Download ipop-tincan from github.com/ipop-project
cd trunk/talk; mkdir ipop-project; cd ipop-project git clone --depth 1 https://github.com/ipop-project/ipop-tap.git git clone --depth 1 https://github.com/ipop-project/ipop-tincan.git
-
Return to libjingle trunk directory
cd ../../ -
Copy modified gyp files to trunk/talk directory
rm -f DEPS all.gyp talk/libjingle.gyp talk/ipop-tincan.gyp cp talk/ipop-project/ipop-tincan/build/ipop-tincan.gyp talk/ cp talk/ipop-project/ipop-tincan/build/libjingle.gyp talk/ cp talk/ipop-project/ipop-tincan/build/all.gyp . cp talk/ipop-project/ipop-tincan/build/DEPS .
-
Sync again to download OpenSSL from chromium repository
gclient sync --force
-
Update build/common.gypi configurations
sed -i "s/'arm_float_abi%': 'soft',/'arm_float_abi%': 'hard',/g" build/common.gypi sed -i "s/'arm_fpu%': '',/'arm_fpu%': 'vfp',/g" build/common.gypi
-
Update the gold linker to arm version
mv third_party/gold/gold32 third_party/gold/gold32.bak ln -s /usr/bin/gold third_party/gold/gold32
-
Generate ninja build files
gclient runhooks --force
-
Build tincan for Raspbian (binary localed at out/Release/ipop-tincan)
make ipop-tincan BUILDTYPE=Release
-
To build debug version with gdb symbols (but creates 25 MB binary)
make ipop-tincan BUILDTYPE=Debug
-
The generated binary is located at
out/Release/ipop-tincanorout/Debug/ipop-tincan
-
Download SocialVPN and GroupVPN controllers
wget http://github.com/ipop-project/controllers/raw/devel/src/ipoplib.py wget http://github.com/ipop-project/controllers/raw/devel/src/svpn_controller.py wget http://github.com/ipop-project/controllers/raw/devel/src/gvpn_controller.py
- Building the code
- IPOP packages
- Running SocialVPN nodes
- Running GroupVPN nodes
- Deploying OSN and NAT traversal services
- Test and monitoring
- Extending the code
- General documentation