This tutorial will let you install, configure and run a wibed testbed.
So we can have a functional wibed testbed, we are going to install a server machine runing a web service that allows the users of the testbed orchestrate the nodes: the wibed controller. We are also going to prepare an OpenWRT/LEDE compiling enviroment, that we will use to generate the firmware images for the nodes running the experiments in our testbed.
The wibed controller have a web interface that allows administration of the nodes, updating their firmware, and also running commands remotely. Also the main task of wibed is done throught the web interface: adding experiments and running them.
The controller is designed to run on a machine with constrained resources, the recommended minimum hardware and software requirements are:
We will need several nodes: at least 1 Gateway node, and 3 or more test nodes to run the experiments.
The minimum/recommended hardware requierements for the nodes are:
It's recommended that all the nodes are the same model of device or at least, very similar, so the conditions of the experiment are homogeneous.
For example, we have been able to install and use wibed in TP-Link WDR-4300, WDR-4900, Xiaomi MiWifi Router and Alix boards.
There is already a readme file that explains how to install the wibed controller, you can find it in the root of the wibed-controller git repository.
As in wibed there is one ( or more ) gateway and several nodes, we are going to compile two different images, one for the gateway node or nodes and another for the ones that are going to run the experiments.
The only difference between the two images, is that the gateway one need's to have the gateway setting enabled during the image config.
First we need to download and prepare the OpenWRT/LEDE with wibed compilation enviroment, and later we can proceed with the image configuration and compilation.
apt-get update apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk subversion \ file
git clone http://git.lede-project.org/source.git
cd source cp feeds.conf.default feeds.conf echo "src-git wibed https://github.com/battlemesh/wibed-packages.git" >> feeds.conf
scripts/feeds update -a scripts/feeds install -a
make -j (number of cores)
Note: you will need to generate two images, one for the nodes, and another for the gateway. When you change the settings of the wibed-system package, you will need to clean the buildroot section before compiling the image, so the changes done are applied correctly. You can do it using:
If you get errors with luasocket while building your image, like the following one: /build_dir/target-powerpc_8540_musl-1.1.16/luasocket-3.0-rc1-20130909/src/auxiliar.c:112: undefined reference to `__stack_chk_fail_local' options.o: In function `opt_ip6_setmembership':
You can use the flag -fno-stack-protector to ignore these errors.
Edit luasocket Makefile ( package/feeds/packages/luasocket/Makefile ) and add to variable CC the -fno-stack-protector flag:
CC="$(TARGET_CC) $(TARGET_CFLAGS) -fno-stack-protector $(TARGET_CPPFLAGS) -std=gnu99" \