Software and Hardware Prerequisites for prplMesh
Features > prplMesh
Hardware Requirements
This article assumes that you already have a suitable platform with the MM6108 HaLow chip integrated via SDIO or SPI and running successfully in Linux. If you do not have this please reach out to support to discuss the options, or consider using an evaluation kit as a starting point. All OpenWrt-based EVKs from Morse Micro support prplMesh (known by its standard name ‘EasyMesh’) out of the box.
Software Requirements
The following section outlines the software components that are required for integrating prplMesh with HaLow support into Linux.
hostapd_s1g and wpa_supplicant_s1g
Ensure that both these packages are compiled and installed on the intended Linux device. These are customized versions that support HaLow interfaces, and should already be present as part of the basic HaLow integration on the platform.
UCI, ubus, and libubox
Not all Linux systems include UCI, ubus and libubox by default, as these are generally specific to OpenWrt-based systems. However they are integral components of the Morse Micro adaptation of prplMesh, and will need to be included. prplMesh relies on UCI as its configuration interface and requires ubus for DHCP events. While the absence of ubus events may not cause significant functional issues, it is essential for successfully building the SDK.
Host Machine Compilation and Installation Requirements
The following host packages should be installed before compiling UCI and ubus:
sudo apt install lua5.1
sudo apt install liblua5.1-0-dev
sudo apt install libjson-c-dev
Once the host dependencies above are installed, follow the steps below to retrieve and compile the source code for each of the packages for the host machine and install on the host:
- libubox:
$ git clone git://git.openwrt.org/project/libubox.git
$ cd libubox
$ cmake .
$ sudo make install - ubus:
-
$ git clone git://git.openwrt.org/project/ubus.git
$ cd ubus
$ cmake .
$ sudo make install - UCI:
-
$ git clone git://git.openwrt.org/project/uci.git
$ cd uci
$ cmake .
$ sudo make install
Other Packages
Refer to the prplMesh README.md file for additional package requirements. At time of writing this includes:
binutils
cmake
gcc
git
libjson-c-dev
libncurses-dev
libnl-3-dev
libnl-genl-3-dev
libnl-route-3-dev
libssl-dev
ninja-build
pkg-config
python
python-yaml
python3
python3-yaml
bison
curl
flex
libevent-dev
libyajl-dev
lua5.1
liblua5.1-0-dev
build-essential
clang-format
gcovr
bridge-utils
ebtables
iproute2
net-tools
psmisc
uuid-runtime