1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/dist/testbed-support
Oleg Hahm e3eda9a315 dist: Makefile to work with IoT-LAB
Introduces a Makefile that can be included into one's application
Makefile in order to remotely control experiments on the IoT-LAB
testbed. It requires that cli-tools
(https://github.com/iot-lab/cli-tools) are installed.
2015-04-28 19:11:37 +02:00
..
Makefile.iot-lab dist: Makefile to work with IoT-LAB 2015-04-28 19:11:37 +02:00
README.iotlab dist: Makefile to work with IoT-LAB 2015-04-28 19:11:37 +02:00

# RIOT integration into IoT-LAB

Check the Wiki to see how to build and run RIOT on FIT IoT-LAB:
https://github.com/iot-lab/iot-lab/wiki/Riot-support

## Control IoT-LAB via Make

### Requirements

This feature requires to have a valid account for the FIT IoT-LAB
(registration there is open for everyone) and the
[iot-lab/cli-tools](https://github.com/iot-lab/cli-tools) to be installed.

### Description

The folder `dist/testbed-support/` contains a `Makefile.iotlab` that defines
some targets to control RIOT experiments on IoT-LAB using the GNU Make build
system. In order to use this, one has to include this Makefile at the end of
the application's Makefile, like this:
```
include $(RIOTBASE)/dist/testbed-support/Makefile.iot-lab
```
### Variables

This Makefile introduces some additional variables (default values in
brackets):
 * IOTLAB_NODES (5)
 * IOTLAB_DURATION (30 minutes)
 * IOTLAB_SITE (grenoble.iot-lab.info)
 * IOTLAB_TYPE (m3:at86rf231)
 * IOTLAB_AUTH ($HOME/.iotlabrc)
 * IOTLAB_USER (taken from $IOTLAB_AUTH)
 * IOTLAB_EXP_ID (taken from first experiment in running state)

### Targets

It defines the following targets:
 * iotlab-exp
 * iotlab-flash
 * iotlab-reset
 * iotlab-term

**Please note:** All targets that require an already running experiment will
use the first experiment of the user that has already entered state "Running"
if `IOTLAB_EXP_ID` is not set.

#### iotlab-exp

This schedules a new experiment on the FIT IoT-LAB and waits until it enters
"Running" state. It will request `IOTLAB_NODES` nodes of type `IOTLAB_TYPE`
for `IOTLAB_DURATION` minutes at site `IOTLAB_SITE`. It will also flash the
binary of the current application to all registered nodes. The name of the
experiment is set to "riot_makefile_experiment"

#### iotlab-flash

This target updates the application on all registered nodes of the given
experiment to the current version of the application.

#### iotlab-reset

This target resets all registered nodes of the given experiment.

#### iotlab-term

Uses ssh to login the user on the IoT-LAB server of the specified site and
start the `serial_aggregator` to communication with all registered nodes.