User Tools

Site Tools


wibed:getting_started

Getting started with Wibed

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.

Requirements

Controller Requirements

The controller is designed to run on a machine with constrained resources, the recommended minimum hardware and software requirements are:

  • 1 GHz CPU core
  • 512 MB free RAM
  • 2 GB free disk space
  • 1 network interface
  • Debian 7.1 OS or later
  • Python 2.7

Testbed nodes

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:

  • Supported by OpenWRT/Lede
  • 1 wireless radio that supports Ad-hoc ( 2 or more recommended )
  • 8 MB of flash
  • 32 MB of RAM ( 64MB or more recommended )
  • 1 or more ethernet ports
  • at least 1 USB 2.0 port ( for the overlay filesystem that stores the experiments )

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.

Installing the Wibed controller

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.

Node image creation

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.

Compilation enviroment preparation

  1. Download compilation pre-requisites:
    apt-get update
    apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk subversion \
    file
  2. Download LEDE source code
    git clone http://git.lede-project.org/source.git
      
  3. Configure wibed packages feed
    cd source
    cp feeds.conf.default feeds.conf
    echo "src-git wibed https://github.com/battlemesh/wibed-packages.git" >> feeds.conf
  4. Update and install LEDE feeds
    scripts/feeds update -a
    scripts/feeds install -a

Image creation

  1. Configure LEDE image
    make menuconfig
    1. select your target device ( and subtarget ). For UPC Wibed nodes:
      1. Target System: Atheros AR7xxx/AR9xxx
      2. Subtarget: Generic
      3. Target profile: TP-LINK TL-WDR3500/3600/4300/4310/MW4350R
    2. select wibed packages: in the Wibed category, select wibed-system to be included in the image ( <*> )
    3. Configure your testbed settings:
      Using the Wibed node configuration, you will need to provide:
      • The controller URL: Here you have to configure the URL ( indicate the port if it's different to 80 )
      • Testbed name: Specify a name to identify the testbed
      • The password for user root that will be set in the image
      • Management node configuration:
        • Gateway node: Check this box if this will be an image for gateway nodes (that provide connection to the controller)
        • 802.11s management network ssid: The name of the wireless network for the management of the nodes
        • Ad-Hoc management network BSSID: Here you have to assign a identifier for the ad-hoc wireless network used for management of the nodes. All nodes with the same BSSID will be part of the same management network
  2. Compile the image using make:
      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:

make package/wibed-system/clean

Workaround for luasocket errors while compiling

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" \
wibed/getting_started.txt · Last modified: 2017/07/21 13:28 by dpini