A Raspberry Pi-based client/server system to unify the bandwidth of multiple available networks in order to provide a single high(er) bandwidth network access in rural locations.
These installation and build instructions assume a development machine (DEV), separate from the Raspberry Pi (RPI), running Ubuntu 20.04.
- (On DEV): Install the build essentials package:
sudo apt install build-essential git
- (On DEV): Install the ARM cross-compiler and debugger:
sudo apt install gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf gdb-multiarch
(it is important to install version 8 of the cross-compiler if using Raspbian Buster, because it lacks the newer glibc library) - (On DEV): Install SCons:
python3 -m pip install SCons
- (On RPI - Optional): Optionally install the GDB server on the Raspberry Pi to be able to remotely debug from the development PC:
sudo apt install gdbserver
- Clone this repository:
git clone git@github.com:kaloianm/rural-pipe.git
- Build the Boost binaries for both ARM (Raspberry Pi) and PC architectures:
scons --client_arch=pi --server_arch=pc build/native/pi/boost build/native/pc/boost
- Run
scons --client_arch=pi --server_arch=pc
- Follow these instructions in order to configure the Raspberry Pi as a Wifi router (so it manages its own internal network)
- TODO: Instructions to start the client/server
Implemented on Mac, using Microsoft Visual Studio Code and Ubuntu 20.04 running under Parallels Desktop for Mac.
Copyright 2020 Kaloian Manassiev
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.