This post is for all the people waiting for ubiquiti to release the SDK 5.3.3 for the AirOS Firmware.
At Ninux.org we run a 100+ ubiquiti powered wireless network, which has proved to be very stable and performing. In our network we use OLSRD and IPv6, so we normally flash our devices with a version of the Ubiquiti firmware derived from the SDK.
The last 5.3 SDK of the Ubiquiti firmware was buggy, as we all know. Ubiquiti promptly released a 5.3.3 firmware to correct the bug but, despite our continuos efforts and their very same declaration of availability on demand, they ignored our requests to obtain the 5.3.3 SDK. For it I resolved to create by myself an unofficial but working 5.3.3 SDK, which is presented in this article.
Of course my hope and interests are that ubiquiti will soon come back to the godwill policy of public avalilability of their official SDK. Up to that (very welcomed) moment, the Open Source community will make its best efforts to grant the widest performance of Ubiquiti’s excellent products.
Now I will describe how I created this unofficial SDK. Of course I assume the reader is a little familiar with the SDK and the OpenWRT toolchain.
I started from the following 3 files:
- XM-v5.3.3.build9634.bin (b72c73be64f32d6da57db9e061c3fff1)
- SDK.UBNT.v5.3.tar.bz2 (not available anymore on ubnt.com, find it here)
At the byte 943973 of the file XM-v5.3.3.build9634.bin you fill find the header of the SquashFS root partition of the firmware. So I used the hex editor bless to cut the binary image and start from the squashfs header.
At this point using the command line tool “unsquashfs” I was able to have a folder with the files.
After this step the rest of the work was very easy,
I unpacked the 5.3SDK, and I ported the ubnt-base-files and ubnt-web packages to the GPL.UBNT.v5.3.3 GPL archive. After porting, I upgraded all the binary files with the new ones that were inside the SquashFS partition of the firmware image of 5.3.3
I cleaned up everything and repacked. Make sure with “make menuconfig” you select the ubnt-base-files package.
I tested successfully this SDK with NanoStationM5. Feedback on other devices is highly appreciated, either commenting on this blog or writing an email to firstname.lastname@example.org
If you want to know how we use this SDK at Ninux to improve the firmware with IPv6 and olsrd you can have a look to our wiki.