Netmaker is a platform for creating and managing fast, secure, and dynamic virtual overlay networks using WireGuard. This project offers OpenWRT packages for Netmaker.
Download the prebuild package and copy it onto your OpenWRT installation, preferably into the /tmp
folder.
Then install the ipk package file:
opkg install netmaker_*.ipk
Now start netclient
of Netmaker:
/etc/init.d/netclient start
To include Netmaker into your OpenWRT image or to create an .ipk
package (equivalent to Debians .deb files), you have to build an OpenWRT image.
Now prepare OpenWRT:
git clone https://github.com/openwrt/openwrt
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
To build Netmaker for OpenWRT, you need to have Golang with OpenWRT build envirment. Then, you can insert the Netmaker package using a package feed or add the package manually.
A feed is the standard way packages are made available to the OpenWRT build system.
Put this line in your feeds list file (e.g. feeds.conf.default)
src-git netmaker http://github.com/sbilly/netmaker-openwrt.git
Update and install the new feed
./scripts/feeds update netmaker
./scripts/feeds install netmaker
Now continue with the building packages section.
Configure packages:
make menuconfig
Now select the appropiate "Target System" and "Target Profile" depending on what target chipset/router you want to build for. Also mark the Netmaker package under Network ---> VPN ---> <*> netmaker
.
Now compile/build everything:
make
The images and all *.ipk packages are now inside the bin/ folder, including the netmaker package. You can install the Netmaker .ipk on the target device using opkg install .
For details please check the OpenWRT documentation.
For a release, it is useful the build packages at a bulk for multiple targets:
#!/bin/sh
# dump-target-info.pl is used to get all targets configurations:
# https://git.openwrt.org/?p=openwrt/openwrt.git;a=blob;f=scripts/dump-target-info.pl
./scripts/dump-target-info.pl architectures | while read pkgarch target1 rest; do
echo "CONFIG_TARGET_${target1%/*}=y" > .config
echo "CONFIG_TARGET_${target1%/*}_${target1#*/}=y" >> .config
echo "CONFIG_PACKAGE_example1=y" >> .config
# Debug output
echo "pkgarch: $pkgarch, target1: $target1"
make defconfig
make -j4 tools/install
make -j4 toolchain/install
# Build package
make package/netmaker/{clean,compile}
# Free space (optional)
rm -rf build_dir/target-*
rm -rf build_dir/toolchain-*
done