Amateur Radio Emergency Data Network (AREDN)
Go to file
Eric a5e7a9d1cf build: kernel options, additions to top/busybox, modules (#253)
Add kernel build options to conserve RAM.  Measured 520k reduction.

disable CRASHLOG interface, we can't really see it anyway
CONFIG_KERNEL_CRASHLOG=n

remove process core dump support (see above reasoning)
CONFIG_KERNEL_ELF_CORE=n

there is no "swap"
CONFIG_KERNEL_SWAP=n

remove debug symbols
CONFIG_KERNEL_KALLSYMS=n

remove debug info
CONFIG_KERNEL_DEBUG_INFO=n

more unnecessary kernel exports
CONFIG_STRIP_KERNEL_EXPORTS=y

remove libraries of unnecessary functions
CONFIG_USE_MKLIBS=y

compress /tmp 
CONFIG_PROCD_ZRAM_TMPFS=y

seldom used key stroke
CONFIG_KERNEL_MAGIC_SYSRQ=n

Not used with AREDN
CONFIG_PACKAGE_MAC80211_MESH=n

Above options Ref:  https://openwrt.org/docs/guide-user/additional-software/saving-space#modifying_build_configuration_variables

-------------

Additional options
CONFIG_BUSYBOX_DEFAULT_MKSWAP=n
CONFIG_BUSYBOX_CONFIG_MKSWAP=n

improved "top" command.
CONFIG_BUSYBOX_CONFIG_FEATURE_TOP_INTERACTIVE=y

additional modules to build
CONFIG_PACKAGE_kmod-usb3=m
CONFIG_PACKAGE_block-mount=m
CONFIG_PACKAGE_kmod-usb-storage=m
CONFIG_PACKAGE_kmod-usb-storage-extras=m
CONFIG_PACKAGE_kmod-usb-storage-uas=m

Additional filesystem modules complementing USB storage
CONFIG_PACKAGE_kmod-fs-vfat=m
CONFIG_PACKAGE_kmod-fs-ntfs=m
CONFIG_PACKAGE_kmod-fs-ext4=m
CONFIG_PACKAGE_e2fsprogs=m

Reduce log usage of /tmp and RAM
I can't find my notes of course...
CONFIG_LOG_BUF_SHIFT=16
CONFIG_LOG_CPU_MAX_BUF_SHIFT=16

additional options to support performance metrics
CONFIG_BUSYBOX_CONFIG_IOSTAT=y
CONFIG_BUSYBOX_CONFIG_RENICE=y
CONFIG_BUSYBOX_CONFIG_FEATURE_PS_LONG=y
2018-10-31 16:21:49 -07:00
.circleci ci: add check2build to workflow section (#114) 2018-08-07 08:37:31 -05:00
configs build: kernel options, additions to top/busybox, modules (#253) 2018-10-31 16:21:49 -07:00
files bugfix: correct poe functions in adv cfg (#250) 2018-10-27 11:37:45 -05:00
patches mtd: spi-nor: Add Winbond w25q128jv support 2018-09-13 19:30:15 -07:00
scripts Typos (#234) 2018-10-22 17:04:11 -05:00
.gitignore Typos (#234) 2018-10-22 17:04:11 -05:00
AREDNLicense.txt update AREDNLicense.txt websites list 2018-07-02 18:20:28 -05:00
CONTRIBUTORS Update contributors file (#80) 2018-07-18 21:11:14 -05:00
LICENSE build: create top level make structure 2018-03-23 00:39:07 -07:00
Makefile build: prepare back to develop branch from release 2018-09-28 17:01:04 -07:00
README.md aredn: add definition for Bullet M2 XW (#246) 2018-10-25 23:44:45 -05:00
config.mk build: reset version to NoCall 2018-09-28 21:28:10 -07:00
feeds.conf build: lock in aredn_packages to 3.18.9.0 release 2018-09-28 16:08:26 -07:00
openwrt.mk aredn: bump to OpenWrt 18.06.1 2018-08-29 20:28:51 -07:00

README.md

Amateur Radio Emergency Data Network AREDN(tm) Firmware

http://www.arednmesh.org

Usage Information

What to know about the images built with the instructions below

This is the active 'develop' branch with latest AREDN code. At anytime a new change may be broken or break prior capabilities.

The Amateur Radio community is encouraged to participate in loading the images produced from a "nightly build" and run the AREDN firmware in a variety of environments. Given new features may not yet be documented, participants should already have a basic knowledge of Linux and Networking to understand and provide useful feedback to the Developer submitting the code.

The goal of participation is to obtain confidence that new features and the overall mesh node is stable. The more participation, the earlier an issue is found, the faster an enhancement will be turned into a release.

Here is a summary of significant features added since 3.18.9.0 was released:

  • Locked to Openwrt 18.06.1

Please refer to https://gihub.com/aredn/aredn_ar71xx/issues for a list of outstanding defects.

The following devices have a peculiar cat5 configuration due to a limitation in the Ethernet driver. The 'Main" port is used for LAN devices only. The "Secondary" port is WAN and DtDLink usage only. Depending on deployed usage, 2 cat5 cables may be needed.

  • Ubiquiti Nanostation M5 XW
  • Ubiquiti Nanostation M2 XW
  • TP-Link CPE210 v1.0 and v1.1
  • TP-Link CPE510 v1.0 and v1.1

Latest Mikrotik installation options are found at: https://www.arednmesh.org/content/installation-instructions-mikrotik-devices

Images built

Device Image to Use RAM Stability
AirGrid XM bullet-m 32Mb stable
AirGrid XW loco-m-xw 32Mb stable
AirRouter airrouter 32Mb stable
AirRouter HP airrouter 32Mb stable
Bullet M2/M2Ti/M5/M5Ti bullet-m 32Mb stable
Bullet Ti bullet-m 32Mb stable
Bullet M2 XW rocket-m-xw 64Mb stable
NanoBeam-M2-13/16/19 loco-m-xw 32Mb stable
NanoBridge 2G18 bullet-m 32Mb stable
NanoBridge 5G22/25 bullet-m 32Mb stable
NanoBridge M9 bullet-m 32Mb stable
NanoStation Loco M2/M5/M9 XM bullet-m 32Mb stable
NanoStation Loco M2 XW loco-m-xw 64Mb stable
NanoStation Loco M5 XW with test date before ~Nov 2017 loco-m-xw 64Mb stable
NanoStation Loco M5 XW with test date on or after ~Nov 2017 rocket-m-xw 64Mb stable
NanoStation M2/M3/M5 XM nano-m 32Mb stable
NanoStation M2/M5 XW nano-m-xw 64Mb stable
PicoStation M2 bullet-m 32Mb stable
PowerBeam-M2-400 loco-m-xw 64Mb stable
PowerBeam-M5-300 loco-m-xw 64Mb stable
PowerBeam-M5-400/400ISO/620 rocket-m-xw 64Mb stable
PowerBridge nano-m 64Mb stable
Rocket M9/M2/M3/M5/M5GPS XM rocket-m 64Mb stable
Rocket M2/M5 XW rocket-m-xw 64Mb stable
Rocket M2 TI rocket-m-ti? 64Mb unknown
Rocket M5 TI rocket-m-ti 64Mb stable
TPLink CPE210 v1.0/v1.1 cpe210-220-v1 64Mb stable
TPLink CPE210 v2.0/v3.0 cpe210-v2 64Mb stable
TPLink CPE510 v1.0/v1.1/v2.0 cpe510-520-v1 64Mb stable
Mikrotik BaseBox 2/5 mikrotik-nand-large 64Mb stable
Mikrotik hAP lite 952Ui-5ac2nD mikrotik-rb-nor-flash-16M-ac 64Mb stable

Submitting Bug Reports

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

Developer Only Information

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

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
git checkout 3.18.9.0
vi config.mk # enter your callsign, etc.
# build default ubnt and tplink images
make  
# build and add mikrotik images to firmware dir
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. Replace one of the following after the "cd aredn_ar71xx" command above:

AREDN release 3.18.9.0

git checkout 3.18.9.0

AREDN release 3.16.2.0

git checkout 3.16.2.0

AREDN release 3.16.1.1

git checkout 3.16.1.1-make

AREDN 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 high level 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