Skip to content
Eric Sauvageau edited this page Jun 28, 2024 · 11 revisions

About Asuswrt:

Asuswrt is a unified firmware developed by Asus for use in their routers. The firmware was originally based on Tomato-RT/Tomato-USB, but has changed a lot since the original code fork. Asus started using this firmware with the RT-N66U.

Being mostly based on GPL code, most of the source code is available. There are a few proprietary components that are closed source (like the wireless drivers from Broadcom/Ralink, or some proprietary Asus components). In these cases, Asus includes binary-only versions of these files. In the end, their GPL release includes everything needed to completely recompile a working firmware, with the same features as found in their firmware releases. Note that due to these binary components, a GPL archive has to be developed for a specific router model, and cannot be reused for a different model.

One big advantage of Asus going with a unified firmware is that they have one global code base for all their supported routers (with a few specialized branches as needed by some specific models). That means that they can frequently add new features to previous models, not only for newer models. It also makes it easier for them to provide longer term support, as they don't need to re-implement bugfixes for each separate model.

About Asuswrt-merlin

Asuswrt-merlin takes advantage of the fact that source code is available from Asus by building on top of it. Asuswrt-merlin is my personal project, originally done for the RT-N66U, and eventually extended to support other flagship routers from Asus.

The general goal of this project is to provide an alternative to the original firmware, and remain in-sync with Asus's own development, so new features and bugfixes development by them can trickle down into Asuswrt-Merlin. This means there are some very strict design guidelines behind this project:

  1. Stay as close as possible to the original firmware. By limiting the amount of sweeping changes made to the code, it means that updated code from Asus can be merged into Asuswrt-Merlin, gaining the improvements and fixes developed by Asus.

  2. The goal is to improve, not to replace the original firmware's functionality Projects like OpenWRT have existed for years, and benefit from those years of development to offer a lot of new features. There is no point in reinventing the wheel - people looking for a completely different firmware with tons of advanced features should look at those excellent and well-established projects if it's available for their device.

  3. Priorities: Stability > performance > features. Fewer changes to the code means fewer chances that new bugs might be introduced. A router firmware is the core of your home network. It must be rock-stable above all. And performance optimizations can have unexpected side-effect when dealing with things that aren't fully understood.

  4. Targeting the novice and average user. Asuswrt is designed to target both the novice and the average users. This project will aim at the same target userbase. Thanks to Entware and user-scripts, many features not integrated in the firmware can be manually added or implemented. There is also an entire ecosystem of third party scripts/addons that are available to use with Asuswrt-Merlin. Many of these can be managed using the built-in AMTM tool, available through SSH.

Clone this wiki locally