Skip to content
Firmware-Generator for an OpenWRT Testbed
Ruby HTML Shell
Branch: hbrs
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Initial Import Jan 9, 2016
files fix commit_dumps.sh script Jul 3, 2017
.gitignore Mado config added May 14, 2017
README.md - Towards Lede Apr 28, 2017
Rakefile GPG is no longer needed May 14, 2017
nodes.yml update node version Jun 15, 2017
secrets.yml.gpg New branch for HBRS Jun 1, 2017

README.md

Mesh Testbed Generator

Buildsystem to generate custom Lede-Firmware files for different nodes in a testbed.

Motivation

Having set up a mesh of 5 TP Link TL-WR842nd v2 in our hackerspace for testing and research, there's a need for configuration management. Configuration should be:

  • Consistent / DRY
  • Revertible - especially using first_boot
  • Under version control

To archive these goals, a OpenWRT-configuration is generated based on Ruby .erb templates. A dedicated firmware file is generated for each node.

Structure

  • `nodes.yml - inventory of all nodes. A firmware-file is generated per node
  • files - Directory of .ERB-templates. After processing all ERB-templates, it is integrated into the firmware files
  • bin - Output folder for firmware files
  • Rakefile - Central build file

Usage

  1. Adapt nodes.yml
  2. Adapt templates in files
  3. Run rake

OpenWRT Release (Chaos Calmer) and Platform (TL-WR842nd v2) is hardcoded in Rakefile. You have to change it to support other platforms.

Current Configuration

Current configuration includes

  • Packages like ip, babeld, batman-adv for testing diffrent routing scenarios
  • A collectd configuration ping'ing all nodes for measurements
  • A wireless configuration putting the wifi into mesh mode while setting TX-power to a minimum
  • IPv4 and IPv6 assignments for testing
  • SSH-Key and root-password for accessing the nodes
  • Firewall-Rules to allow connections via SSH from WAN
You can’t perform that action at this time.