Legacy Open Mesh: Open Mesh development information
Topic
This article provides development information for legacy Open Mesh products
Environment
- Legacy Open Mesh
Description
Note: Much of this information is outdated, but may still be of use for some people. Keep in mind that our latest dual-band access point models do not allow you to flash custom firmware.
Overview
Open-Mesh is proud to support many open source projects including OpenWrt, B.A.T.M.A.N., ap51-flash, nodogsplash and the Linux Kernel.
This page contains information for developers on how to build customized firmware images for the Open-Mesh devices and how to install them. Also, you will find some useful hints about advanced debugging techniques in the 'serial console' section.
Building the firmware
Please note: it is not currently possible to build the full NG firmware as it uses some closed-source components that cannot be made freely available. It is still possible to build a mesh network (by using OpenWrt with B.A.T.M.A.N.), but it is not possible to create firmware that will integrate with the full Open-Mesh environment.
All our firmware builds are based on OpenWrt as it has a rich pool of packages and tools. First, you will need a fresh checkout of OpenWrt. If you wish to build packages for firmware-ng you should select the OpenWrt revision based on the firmware-ng version:
- ng3xx => OpenWrt r29330
- ng4xx => OpenWrt r31729
- ng5xx => OpenWrt r36343
and replace the variable "$rev" below:
svn co -r $rev svn://svn.openwrt.org/openwrt/trunk openwrt-trunk
Then change into that newly created 'openwrt-trunk' folder and run
make menuconfig
to select the desired platform and the packages you are interested in:
OM1P:
Target System -> Atheros AR231x/AR5312
OM2P:
Target System -> Atheros AR71xx/AR7240/AR913x/AR934x Target Profile -> [[OpenMesh]] OM2P
Note: The OpenWrt developers included our patches for the OM2P support into the official repository in revision 29397. You can either manually apply the openwrt-om2p.patch to your OpenWrt folder or checkout the OpenWrt trunk in order to build a firmware for this device.
A successful build will produce a number of files; you'll want to use the 'openwrt-ar71xx-generic-om2p-squashfs-factory.bin' file for flashing an OM2P unit.
MR500:
Target System -> Ralink RT288x/RT305x Subtarget -> RT305x based boards
Note: For the WiFi to work you will need to contact Ralink and sign an agreement to get access to their driver.
Installing the firmware
All our devices come with an open bootloader which easily allows you to install new firmware images. To further facilitate to installation Open-Mesh heavily contributes to the flash utility 'ap51-flash'. This tool is capable of automatically detecting a router and choosing the appropriate install method of the image onto the device.
To download the ap51-flash utility run:
git clone https://dev.cloudtrax.com/git/ap51-flash.git
After ap51-flash has been compiled for your platform you can flash all our routers with a simple command:
ap51-flash eth0 /path/to/your/firmware/image
Of course, you will have to replace 'eth0' with the interface your device is connected to.
Nodogsplash
To make nodogsplash better suit our needs we modified its source code. You can download our nodogsplash tarball from the patches section.
Coova-chilli
We also had to modify chilli to the extent of making it work in layer2 mesh networks and radius setups. Check our patches.
Serial console
Our devices also bring a serial connector which is useful for debugging during the early boot stages (when the network is not available yet) or can be used to connect the router to other devices like Arduino / external sensors / etc. All you need is to connect the serial cable to the right pins and configure a few settings on your PC.
OM1P:
baudrate is : 9600 flowcontrol : none parity is : none databits are : 8
With the ethernet jack in front of you, the pinout should look like this:
+---+ |GND| +---+ |TXD| +---+ |RXD| +---+ |VCC| +---+ +-----+ +-----+ +---+ |Power| | LAN | |Ant|
OM2P:
baudrate is : 115200 flowcontrol : none parity is : none databits are : 8
With the ethernet jacks in front of you, the pinout should look like this:
+---+ |RXD| +---+ |TXD| +---+ |GND| +---+ |VCC| +---+ +-----+ +----+----+ +---+ |Power| |LAN1|LAN2| |Ant|
MR500:
baudrate is : 57600 flowcontrol : none parity is : none databits are : 8
With the ethernet jacks in front of you, the pinout should look like this:
+---+---+---+---+ |VCC|GND|TXD|RXD| +---+---+---+---+ +-----+ +----+----+----+----+----+ |Power| | LAN Switch |