8
Getting started with prplMesh
Frederik Van Bogaert edited this page 2021-10-27 09:16:42 +00:00

[[TOC]]

Choosing and obtaining a device

While prplMesh can be built and operated on many hardware platforms, it is recommended to use one of the platforms we use internally for development as your chosen device to experiment with. This has the following advantages:

  • There are pre-built images available, so you don't need to build prplWrt or prplMesh yourself
  • Since they are built in our CI, we know there are no fundamental issues with building for those platforms
  • We test these platforms in our CI, so they should be working relatively smoothly (and any issues you encounter are likely already known about).
  • The prplMesh team will be more easily able to support you if you use a known device

Device purchasing options

  • Turris Omnia

    Any version should work: 1GiB or 2GiB of RAM, with wireless cards, black model or metallic 2019/2020 refresh. Amazon link

  • Netgear Nighthawk RAX40 A.K.A. AX3000, AX 4-stream

    Note: this device is not recommended, as wireless backhaul does not work correctly on it. However, if that does not apply to your use case, see this Amazon Link

  • Gl.Inet B1300

    AC Gigabit Router, 400Mbps(2.4G)+867Mbps(5G) High Speed, DDR3L 256MB RAM/32MB Flash ROM. Amazon link or Direct E-Mail order from Gl.Inet, OpenWRT preinstalled (click "Buy Minim Kit")

  • NEC AX3000XP (Japan only) Amazon.co.jp link

    This hardware is based on the Intel Axepoint reference design; there may be others available based on the same chipset, which will also work, although the process for flashing new images will likely be different. Acquiring the NEC device outside of Japan is not easy; contact the prplmesh team for options.

Building an image (optional)

Once you have your device, you can build prplMesh (and prplOS/RDK) for it. If you're using one of the devices listed above, you can skip that step and use one of our pre-built images instead.

More details are available in the following articles:

Note: for demo and experimentation purposes, it's recommended to enable MMX (and NBAPI) in the build (and to use the version of the pre-built images that have it installed). This gives you a convenient web UI to see the prplMesh results, statistics, network configuration and to change settings (such as SSID, Security parameters, etc)

Deploying images

Once you have the correct image, there's a number of ways to go about flashing it to the device of your choice:

Using prplMesh

Traditional method

These examples assume prplMesh is running as a controller.

Once prplMesh is installed and running, you can test the functionality using the command

/etc/init.d/prplmesh status

and expect to see something similar to the following output:

radio0 is enabled
radio1 is enabled
enable: 1
management_mode: Multi-AP-Controller-and-Agent
operating_mode: Gateway
WLAN Ready
/opt/prplmesh/scripts/prplmesh_utils.sh: status
2818 /opt/prplmesh/bin/beerocks_controller
2819 /opt/prplmesh/bin/beerocks_agent
2840 /opt/prplmesh/bin/beerocks_fronthaul
2842 /opt/prplmesh/bin/beerocks_fronthaul
2813 /opt/prplmesh/bin/ieee1905_transport
2818 /opt/prplmesh/bin/beerocks_controller
executing operational test using bml
operational test success!
OK Main radio agent operational
OK wlan0-1 radio agent operational
OK wlan1-1 radio agent operational

A list of devices can then be requested using

/opt/prplmesh/bin/beerocks_cli -c bml_conn_map

Example output:

bml_connect: return value is: BML_RET_OK, Success status
bml_nw_map_query: return value is: BML_RET_OK, Success status

GW_BRIDGE: name: GW_MASTER, mac: e4:95:6e:44:6d:49, ipv4: 192.168.1.199
    ETHERNET: mac: e4:95:6e:44:6d:4a
    RADIO: wlan0-1 mac: e6:95:6e:44:6d:49, ch: 1, bw: 20, freq: 2412MHz
    RADIO: wlan1-1 mac: e6:95:6e:44:6d:4a, ch: 48, bw: 80L, freq: 5240MHz
bml_disconnect: return value is: BML_RET_OK, Success status

Using ubus

If the Northbound API is enabled (it should be by default), prplMesh can be addressed using ubus on prplWrt, and rbus on RDK-B (work in progress at the time of writing)

$ ubus call Controller.Network get

Example response:

{
        "Controller.Network.": {
                "NumberOfAccessPoints": 0,
                "ControllerID": "e4:95:6e:44:6d:49",
                "ID": "e4:95:6e:44:6d:49",
                "TimeStamp": "2021-03-08T08:34:41.367665936Z",
                "NumberOfDevices": 2
        }
}

See the dedicated article for more information on the Northbound API

Using MMX

You can use MMX either from the command line or from the web UI. Command line usage example:

root@prplWrt:/# mmx-cli
> mmx prplmesh network show
ID: 10:0c:6b:c7:d7:69  NumberOfDevices: 0  ControllerID: 10:0c:6b:c7:d7:69     
                       TimeStamp: 2020-12-19T05:10:31.725814245Z               
                       NumberOfAccessPoints:                                   
 
>

Web UI: navigate to http://ROUTER-LAN-IP/ (e.g. http://192.168.1.1/), and select 'prplMesh' from the menu

See the dedicated article for more information on MMX