Porting OpenWRT for Wi-Fi Cloud Management
A developer of a cloud platform for Wi-Fi networks, their deployment, configuration, and monitoring. Our customer's platform is developed on the Linux-based OpenWRT operating system, which is compatible with Wi-Fi access points by different manufacturers in a wide price range.
To port the custom operating system for OpenWRT telecom devices to Wi-Fi routers from several manufacturers: TP-Link, LigoWave, Open-Mesh, Mercusys, EnGenius, Mikrotik, and Siemens — a total of 22 routers.
The customer gave us a batch of devices from various manufacturers and models based on the Qualcomm Wi-Fi chips, as well as Mercusys routers based on the Mediatek chips:
- One router manufactured by Mikrotik:
- Mikrotik RBwAPG-5HacT2HnD
- One router by Siemens:
- Siemens Enterasys WS-AP3610
- Two routers by EnGenius:
- ENS500-AC v1
- EnGenius EAP 2200
- Three routers by LigoWave:
- LigoWave NFT 2ac outdoor
- LigoWave NFT 3ac
- LigoWave NFT 3ac lite
- Three routers by Mercusys:
- Mercusys AC12 V1
- Mercusys MW300RE V3
- Mercusys MW325R V2
- Eight routers by TP-Link
- TP-Link MR3020 V3
- TP-Link MR3420 V5
- TP-Link CPE510 V1
- TP-Link EAP225 V3
- TP-Link EAP225-Outdoor V1
- TP-Link EAP110-Outdoor V3
- TP-Link RE450 V2
- TP-Link TL-WR940N V6
- Four routers by Open-Mesh:
- Open-Mesh A42
- Open-Mesh A62
- OM2P V4
- OM2P-HS V4
OpenWRT support was already provided for all four Open-Mesh routers, as well as for the TP-Link EAP225 Outdoor V1 and TP-Link TL-WR940N V6. That's why we tested them and wrote some instructions on how to build and implement the firmware on these devices.
In the Mercusys MW300RE V3 and Mercusys MW325R V2 routers, there was not enough RAM and FLASH memory to run OpenWRT: the OS adaptation was impossible.
Mercusys AC12 V1 had protection against introducing non-standard firmware via digital signature verification. Bypassing the protection was time-consuming and the successful result was not guaranteed, so we agreed with the customer not to port the OS to this router.
Other devices were successfully adapted for OpenWRT.
In this project, we faced several engineering challenges and were able to overcome them:
- The customer provided only the devices, and the technical documentation was missing. We received all the necessary information with reverse engineering. This is quite an obvious fact: manufacturers are not interested in having third-party software running on their devices.
- Another difficulty was the outdated version of OpenWRT, on which the customer's operating system was based. To solve this problem, we had to make changes to the customer's OS drivers taken from newer versions of OpenWRT.
- Several devices had problems with drivers transferring:
- In the first one, the loader initialized the Ethernet controller incorrectly, so the driver did not work. To configure this router, we added the driver initialization code from the loader of another device with the same chipset.
- In the second one, the Ethernet driver also did not work, possibly due to a combination of Ethernet MAC/PHY chips that no one had tested before us. We found the cause and made the necessary corrections to the driver in the customer's operating system.
Thanks to porting, the customer's OpenWRT-based operating system became compliant with a number of devices from several manufacturers. This custom OS enables the following features:
- configure, manage and monitor multiple Wi-Fi access points, SSIDs from one platform;
- monitor indicators in real-time: the number of wireless clients, traffic flow, SSID load;
- remotely configure the device before sending it to customers;
- perform integration with third-party applications.
The results of our engineering team's work are now used in the popular Wi-Fi cloud management platform, which is used by end users at enterprises in the areas of trade, catering, transport, and organization of public spaces.