• Home
  • About
  • Contribute
  • Download
Carrierwrt-white
Fork me on GitHub
Carrierwrt-orange

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.

Stable code base

Maintained release branches

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 More

Complete firmware

Fully functional out of the box

CarrierWrt 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 More

Commercial options

Pre-integrated commercial software

Open source is great. But sometimes you just a commercially supported option. CarrierWrt comes with commercial software from leading vendors pre-integrated.

Read More

About

CarrierWrt — an OpenWrt overlay for commercial product development

Key advantages for developers

The primary objective of CarrierWrt is to simplify development of commercial products using OpenWrt.

Versioned everything

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.

Stable release branches

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.

Basic infrastructure already in place

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.

Key advantages for end-users

But advantages for developers tend to translate into advantages for end-users as well.

Easier to use

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.

More functionality

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.

Better quality

Finally, a more conservative approach to maintenance does tend to result in higher quality for the end user.

Contribute

How to improve CarrierWrt or integrate your own software

Getting the source code

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
      

Installing dependencies

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
      

Getting started building from source code

One you have installed the needed dependencies just issue the make command from the top level directory:

        cd carrierwrt && make
      
Then 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.

Fixing bugs, testing new platforms or integrating your own software

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:

  1. First create a fork of the CarrierWrt repository.
  2. Then make the changes you want to your own fork.
  3. When you're all done create a pull request.
The above process makes it easy to review your changes and merge them back into the CarrierWrt mainline. For a complete example have a look at the pull request for the Anyfi.net integration.

Copyright and licensing

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.

Download

Firmware images for many popular consumer Wi-Fi routers

How to find your image

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.

Access point

A classic access point configuration: Wi-Fi and LAN bridged to WAN.

Download Now

Residential gateway

Typical residential gateway: SSID based on Wi-Fi MAC and random WPA passphrase.

Download Now

Wi-Fi router

Like OpenWrt, but with factory default configuration, reset button, etc.

Download Now

Network appliance

A bare bones system for packet processing, with VMware and VirtualBox images.

Download Now

License information

CarrierWrt 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:

  • GNU General Public License version 2. These firmware images contain software licensed under the GPLv2. A copy of that license can be found at http://www.gnu.org/licenses/gpl-2.0.txt. You may obtain the complete Corresponding Source code from us for a period of three years after our last shipment of this product, i.e. at least until 2021-04-26, by sending a money order or check for $50 to CarrierWrt.org, c/o Anyfi Networks AB, Västergatan 31 B, 21119 Malmö, Sweden. It may however be faster and easier to clone CarrierWrt from GitHub and write "make".
  • Apache License version 2.0. These firmware images contain software licensed under the APLv2. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Modified files carry prominent notices stating who made the changes.
  • Anyfi.net Standard Software License. These firmware images contain software that is licensed under the Anyfi.net Standard Software License. A copy of the license can be obtained at http://anyfi.net/license.

Disclaimer

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.