4.0 KiB
HOWTO Build Maxwell
This documents how to build the Maxwell meshing software with OpenWRT.
Base system is Debian Bullseye (11/testing) on ppc64le architecture. Should also work fine on x86_64.
Build thang
Do.
OpenWRT build system:
Install Dependencies
Dependencies for other distros are listed here:
Get current:
apt update
Upstream command suggests for Debian:
apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python3-distutils python3-setuptools python3-dev rsync subversion swig time \
xsltproc zlib1g-dev
Full docs list more dependencies for full list, that work with Debian Bullseye. Takes over 6 gigs on root filesystem
apt install \
asciidoc \
bash \
binutils \
bzip2 \
flex \
git-core \
g++ \
gcc \
util-linux \
gawk \
help2man \
intltool \
libelf-dev \
zlib1g-dev \
make \
libncurses5-dev \
libssl-dev \
patch \
perl-modules \
python2-dev \
python3-dev \
unzip \
wget \
gettext \
xsltproc \
zlib1g-dev \
libboost-dev \
libxml-parser-perl \
libusb-dev \
bin86 \
bcc \
sharutils
Maybe want to use ccache
to save on rebuilds:
apt install ccache
Add to your ~/.bashrc
:
PATH=/usr/lib/ccache:$PATH
Then log out and back in and run echo $PATH
to make sure it is there.
Run ccache -s
during build to see cache hit rate.
Get Source
Clone OpenWRT sources, around ~300 megs:
git clone https://git.openwrt.org/openwrt/openwrt.git
Pull in more needful things:
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
Add Maxwell source code, around ~5 megs, to openwrt
directory:
git clone https://github.com/drandyhaas/haasmesh.git
Configure Build
If you've done other builds, it is good to clean up first, maybe:
make clean
There are a variety of units the setup script is compatible with:
- luma
- Maxwell Indoor 3-Band: ea8300
- Maxwell Outdoor 2-Band: ew72
- c7v2
- c7v5
- jetstream
- redmi
You will need to check out the correct git branch or commit depending on your radio.
To get the stock version OpenWrt 19.07.4, r11208-ce6496d796
of the Maxwell Indoor 3-Band EA8300:
git checkout ce6496d796
To get the stock version OpenWrt SNAPSHOT, r14229-b52b4afa15
of the Maxwell Outdoor 2-Band EW-72:
git checkout b52b4afa15
TODO: Add more versions, newer releases.
To build, run the build script with one of these options.
haasmesh/script/setupnodebuild.sh [luma|ea8300|ew72|c7v2|c7v5|jetstream|redmi]
For example, to configure the build system for the Maxwell Outdoor 2-Band, run:
haasmesh/script/setupnodebuild.sh ew72
The configure script should run in ~1 second. Once it is configured, run the menuconfig:
make menuconfig
In there, there are a few options needed to select:
network -> alfred (with auto bat-hosts) batctl-full iperf3
network/wirelessAPD -> remove wpad-basic, install wpad-mesh-openssl
network/filetransfer -> wget
network/ssh -> openssh-client-utils
utilities/compression -> unzip
utilities/editors -> nano
utilities/bootloader -> uboot-envtools
kernel/network support-> kmod-batman-adv
kernel/wireless drivers -> kmod-rt2800-usb (for alfa r36a)
firmware -> ath10k non-ct drivers and kmod-ath10k non-ct (for wave-1 devices only, like archer)
firmware -> ath10k-firmware-qca9888-ct (for ea8300)
development -> diffutils
luci, luci-app-commands
for luma also add:
utilities -> i2c-tools, nand-utils, usbutils
kernel/filesystems -> kmod-fs-exfat, kmod-fs-ext4, kmod-fs-vfat, kmod-usb-storage
TODO: Make defconfig
for different hardware.
Hit <TAB>
to get to EXIT
, then <ENTER>
to select Yes
to save the configuration.
Build Source
Now, actually build it. Takes over an hour or two, depending on hardware.
make