CarrierWrt is an OpenWrt overlay that simplifies development of commercial products like Wi-Fi routers and residential gateways, by focusing on aspects that are important to OEMs and their customers.
OpenWrt is known for having the latest and greatest of everything. But that also means living on the bleeding edge. We fix bugs with minimal patches instead of updating to the latest snapshots.
Read MoreCarrierWrt is designed to produce firmware that is usable out of the box and can be quality assured. If OpenWrt is the bazar, then CarrierWrt is the cathedral built on top.
Read MoreOpen source is great. But sometimes you just a commercially supported option. CarrierWrt comes with commercial software from leading vendors pre-integrated.
Read MoreCarrierWrt — an OpenWrt overlay for commercial product development
The primary objective of CarrierWrt is to simplify development of commercial products using OpenWrt.
With OpenWrt the developer is supposed to configure the build using "make menuconfig". This approach however is not usable for large development teams. In CarrierWrt all configuration is instead in version controlled files; if you check out a tag and build you should get the same firmware every time.
OpenWrt is great, but it has a tendency to stay very close to the bleeding edge of upstream projects. CarrierWrt is different; we fix bugs by patching instead of upgrading, ensuring that release branches stay stable.
OpenWrt is made for hackers. Everyone else expect some basic features from commercial products: factory default settings, a working reset button, Wi-Fi on by default, labels on the back with the WPA passphrase, etc. CarrierWrt provides these basic features.
But advantages for developers tend to translate into advantages for end-users as well.
OpenWrt's "failsafe mode" is probably not so fail safe for your grandma: "telenet where?!?" CarrierWrt is easier to use and behaves more the way you would expect a commercial product to behave.
CarrierWrt integrates some interesting functionality out-of-the-box: for example Anyfi.net — a Software-Defined Wireless Networking (SDWN) data plane implementation for IEEE 802.11. Stay tuned for more.
Finally, a more conservative approach to maintenance does tend to result in higher quality for the end user.
How to improve CarrierWrt or integrate your own software
The CarrierWrt repository is hosted on GitHub. You can check out the source code with the following command:
git clone https://github.com/carrierwrt/carrierwrt.git
You need to have installed git, svn, gcc, binutils, patch, bzip2, flex, make, gettext, pkg-config, unzip, libz-dev, libncurses-dev, gawk and libc headers installed on your system to build your own firmware from source code (but you of course don't need it to download pre-built firmware images).
On a Debian based system you can install the needed dependencies with the following command:
apt-get install -y git subversion gcc g++ binutils patch bzip2 flex make gettext \ pkg-config unzip libz-dev libncurses-dev gawk gcc-multilib
One you have installed the needed dependencies just issue the make command from the top level directory:
cd carrierwrt && makeThen have a look around. Basic build configuration is in config.mk. Functionality and default settings are controlled through what we call "product profiles" in products/*.mk. Each product profile builds its own set of firmware images.
If you fix a bug, test a new platforms or integrate some interesting software you should make your changes in the form a a GitHub Pull Request:
The CarrierWrt build system overlay is licensed under a highly permissive "1-clause BSD license".
The OpenWrt build system, as well as the software built by the build system, is licensed separately under their own licenses.
Firmware images for many popular consumer Wi-Fi routers
CarrierWrt firmware images are named exactly the same as their OpenWrt counterparts. Only difference is that CarrierWrt builds firmwares with many different configurations, and places those in different directories. Start by sorting out what OpenWrt image you would use and then pick a configuration below.
Typical residential gateway: SSID based on Wi-Fi MAC and random WPA passphrase.
Download NowA bare bones system for packet processing, with VMware and VirtualBox images.
Download NowCarrierWrt itself is licensed under a simplified single clause BSD license. But CarrierWrt is just a build system overlay on top of OpenWrt, and OpenWrt in turn is a Linux distribution that bundles lots of third party software, under many different licenses. The best way of getting complete and up to date licensing information is to build CarrierWrt from source yourself, and studying the license of each package in the build directory.
There are however some licenses that deserve a mention:
We do our best, but we don't make any guarantees:
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, WE AND OUR SUPPLIERS PROVIDE THE SOFTWARE AND RELATED SERVICES TO YOU AS IS AND WITH ALL FAULTS, AND WE AND OUR SUPPLIERS DISCLAIM ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES AND CONDITIONS RELATED TO TITLE, NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL WE BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE AND RELATED SERVICES, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.