Amateur Radio Emergency Data Network (AREDN)
Go to file
Joe AE6XE ec4bf4eca3 Revert "fix prebuild shellcheck tests to run properly with external sources (#5)"
This change brought compatibilty to newer versions of shellcheck.
Unfortanately, current linux OS' do not offer this newer version
and a higher burden to compile and install shellcheck is required.
Consequently, this upgrade will be defered until newer versions
of shellcheck are included by default in linux distribtuions.
2018-07-11 14:30:33 -07:00
.circleci circleci: further refinements in build config (#39) 2018-07-09 14:50:17 -05:00
configs aredn: iperf fw rules and fw restart on pkg install 2018-07-01 20:20:26 -05:00
files feature: add SSID to status page (resolves #31) (#42) 2018-07-10 19:06:18 -05:00
patches ar71xx: Add Support for the TP-LINK CPE510 V2.0 Device 2018-07-04 18:17:14 -07:00
scripts Revert "fix prebuild shellcheck tests to run properly with external sources (#5)" 2018-07-11 14:30:33 -07:00
.gitignore
AREDNLicense.txt update AREDNLicense.txt websites list 2018-07-02 18:20:28 -05:00
CONTRIBUTORS update contributors file to add KK4ZUZ (#6) 2018-05-02 22:11:34 -05:00
LICENSE build: create top level make structure 2018-03-23 00:39:07 -07:00
Makefile hardware: add aredn definition for mikrotik 912uag-5hpnd 2018-06-15 17:50:18 -05:00
README.md add Docker build instructions (#26) 2018-07-06 10:05:16 -05:00
config.mk bugfix: correct config.mk package path (#43) 2018-07-10 19:10:01 -05:00
feeds.conf build: update aredn_packages and openwrt repo references to develop branch 2018-03-23 00:43:31 -07:00
openwrt.mk build: update to OpenWRT 18.06 branch and README 2018-06-15 21:45:24 -05:00

README.md

Amateur Radio Emergency Data Network AREDN(tm) Firmware

http://www.arednmesh.org

Build Information

The AREDN firmware is based on OpenWrt with additional packages and patches. A Makefile automates the entire process to create firmware images.

What to know about the images built with the instructions below

The default git branch builds images with the following:

  • includes history from AREDN nightly build 176
  • olsrd upgrade from 0.6.7 to 0.9.6.2
  • ported on top of OpenWrt 18.06 branch
  • added Mikrotik basebox 5
  • added tp-link cp210 v2.0
  • focus has been on 64M RAM devices, 32M devices are currently unstable in this branch
  • compatible with all prior AREDN and BBHN 3.1.0 networks (called version 3)

Images built

Device Image to Use RAM Stability
AirGrid XM bullet-m 32Mb unstable
AirGrid XW loco-m-xw 32Mb unstable
AirRouter airrouter 32Mb unstable
AirRouter HP airrouter 32Mb unstable
Bullet M2/M2Ti/M5/M5Ti bullet-m 32Mb unstable
Bullet Ti bullet-m 32Mb unstable
NBE-M2-13/16/19 loco-m-xw 32Mb unstable
NanoBridge 2G18 loco-m 32Mb unstable
NanoBridge 5G22/25 loco-m 32Mb unstable
NanoBridge M9 loco-m 32Mb unstable
NanoStation Loco M2/M5/M9 XM loco-m 32Mb unstable
NanoStation Loco M2/M5 XW loco-m-xw 64Mb testing-stable?
NanoStation M2/M3/M5 XM nano-m 32Mb unstable
NanoStation M2/M5 XW nano-m-xw 64Mb testing-stable?
PicoStation M2 bullet-m 32Mb unstable
PBE-M2-400 loco-m-xw 64Mb testing-stable?
PBE-M5-300 loco-m-xw 64Mb testing-stable?
PBE-M5-400/400ISO/620 rocket-m-xw 64Mb testing-stable?
Rocket M9/M2/M3/M5/M5GPS XM rocket-m 64Mb testing-stable?
Rocket M2/M5 XW rocket-m-xw 64Mb testing-stable?
Rocket M2 TI rocket-m-ti? 64Mb unknown
Rocket M5 TI rocket-m-ti 64Mb testing-stable?
TPLink CPE210 v1.0/v1.1 cpe210-220-v1 64Mb testing-stable?
TPLink CPE210 v2.0 cpe210-v2 64Mb testing-stable?
TPLink CPE510 v1.0/v1.1 cpe510-220-v1 64Mb testing-stable?
TPLink CPE510 v2.0 cpe510-v2 64Mb testing-stable?
Mikrotik BaseBox 2/5 mikrotik-nand-large 64Mb testing-stable?

Building with Docker

Installing the Docker environment on your windows/linux/mac machine is a pre-requisite. A docker 'container' has been pre-configured with an aredn linux build environment. Alternative instructions are below if you wish to setup your linux install with the compiler pre-requisites necessary to do the build.

To build with docker:

docker pull arednmesh/builder
docker run -it --name builder arednmesh/builder

To pull an image (or any other file) out of the docker container:

docker cp builder:/opt/aredn/aredn_ar71xx/firmware/targets/ar71xx/generic/<image>.bin <local directory>

Build Prerequisites

Please take a look at the OpenWrt documentation for a complete and up to date list of packages for your operating system.

On Ubuntu/Debian:

apt-get install git subversion build-essential libncurses5-dev \
  zlib1g-dev gawk unzip libxml-perl flex wget gettext quilt \
  python libssl-dev shellcheck lua5.1

On openSUSE:

zypper install --type pattern devel_basis
zypper install git subversion ncurses-devel zlib-devel gawk unzip \
  perl-libxml-perl flex wget gettext-runtime quilt python \
  libopenssl-devel shellcheck lua51

Building firmware images

To obtain the source and build the firmware locally use:

git clone https://github.com/aredn/aredn_ar71xx.git
cd aredn_ar71xx
vi config.mk # enter your callsign, etc.
# build default ubnt and tplink images
make  
# copy the firmware image files to save elsewhere, will be cleaned next step
# build mikrotik images
make SUBTARGET=mikrotik

Building the images may take minutes or hours depending on the machine. For more details see build options.
Review the build options in config.mk: -j <number of cores + 1>. V=s will give more verbose error messages.

An internet connection is required during the build process. A good internet connection can improve the build time.

You need approximately 10GB of space for the build.

How to build prior builds of AREDN

Prior AREDN images can be rebuilt. Insert one of the following after the "cd aredn_ar71xx" command above:

AREDN Nightly Build #176

git checkout 91ee867

Return to most current changes

git checkout develop

Directory Layout

Included in the git Repo:
config.mk    <- build settings
openwrt.mk   <- which openwrt repo and branch/tag/commit to use
feeds.conf/  <- custom package feeds (edit to point to your clone of aredn_packages)
files/       <- file system in AERDN created images, most customizations go here
patches/     <- patches to openwrt go here 
scripts/     <- tests and other scripts called from the build 
configs/     <- definitions of features in the devices' kernel and what packages to include
Makefile     <- the build definition
README.md    <- this file

Created by the build:
openwrt/     <- cloned openwrt repository
firmware/    <- the build will place the images here
results/     <- code checks and other test results in jUnit xml format

Patches with quilt

The patches directory contains quilt patches applied on top of the openwrt git repo defined in config.mk.

If a patch is not yet included upstream, it can be placed in the patches directory with the quilt tool. Please configure quilt as described in OpenWrt Quilt.

Add, modify or delete a patch

Switch to the openwrt directory:

cd openwrt

Now you can use the quilt commands.

Example: add a patch
quilt push -a                 # apply all patches
quilt new 008-awesome.patch   # tell quilt to create a new patch
quilt edit somedir/somefile1  # edit files
quilt edit somedir/somefile2
quilt refresh                 # creates/updates the patch file

Submitting new features and patches to AREDN

The highlevel steps to submit to this repository https://github.com/aredn/aredn_ar71xx are:

  1. create a github account and 'fork' this repo
  2. git commit a change into your fork, e.g. http://github.com/ae6xe/aredn_ar71xx
  3. create a pull request for http://github.com/aredn/aredn_ar71xx to consider your change

Submitting Bug Reports

Please submit all issues to http://github.com/aredn/aredn_ar71xx/issues