Asuswrt-Merlin
==============

About
-----
Asuswrt is the name of the firmware Asus has developed for
their various router models.  Originally forked from Tomato, 
it has since grown into a very different product, removing 
some more technical features that were part of Tomato, but 
also adding a lot of new original features.

Asuswrt-merlin is a customized version of Asus's firmware. The goal is 
to provide bugfixes and minor enhancements to Asus's firmware, with also 
a few occasional feature additions.  This is done while retaining 
the look and feel of the original firmware, and also ensuring that 
the two codebases remain close enough so it will remain possible 
to keep up with any new features brought by Asus in the original firmware.

This project's goal is NOT to develop yet another firmware filled with 
many features that are rarely used by home users - that is already covered 
by other excellent projects such as Tomato or DD-WRT.

This more conservative approach will also help ensuring the highest 
level of stability possible.  Priority is given to stability over 
performance, and performance over features.



Supported Devices
-----------------
Devices supported on the new generation/current branch (382.xx and newer):
 * RT-AC66U_B1 (use the RT-AC68U firmware)
 * RT-AC68U, RT-AC68P, RT-AC68UF (including HW revision C1 and E1)
 * RT-AC1900 & RT-AC1900P (use the RT-AC68U firmware)
 * RT-AC87U
 * RT-AC3200
 * RT-AC88U
 * RT-AC3100
 * RT-AC5300
 * RT-AC86U
 * RT-AC2900 (use the RT-AC86U firmware)
 * RT-AX88U

No longer supported:
 * RT-N16
 * RT-N66U
 * RT-AC66U
 * RT-AC56U

NOTE: all the "R" versions (for example RT-N66R) are the same as their 
"U" counterparts, they are just different packages aimed at large 
retailers.  The firmware is 100% compatible with both U and R versions 
of the routers.  Same with the "W" variants that are simply white.

The legacy 380.xx branch is no longer being actively developed.
Support for the RT-N66U and RT-AC66U has been dropped.



Features
--------
Here is a list of features that Asuswrt-merlin adds over the original 
firmware:

System:
   - Various bugfixes and optimizations
   - Some components were updated to newer versions, for improved
     stability and security
   - User scripts that run on specific events
   - Cron jobs
   - Ability to customize the config files used by the router services
   - Ability to turn off router LEDs
   - Entware easy setup script (alternative to Optware - the two are 
     mutually exclusive) (unavailable on RT-AC86U)
   - SNMP support (except for the RT-AC86U)
   - Nano text editor (for more user-friendly script editing)


Disk sharing:
   - Enable/disable the use of shorter share names
   - NFS sharing (through webui)
   - Allow or disable WAN access to the FTP server
   - Updated Samba version (3.6), with SMB2.0 support
   - TLS support for the FTP server


Networking:
   - Force acting as a Master Browser
   - Act as a WINS server
   - SSHD support for key-based authentication
   - Allows tweaking TCP/UDP connection tracking timeouts
   - CIFS client support (for mounting remote SMB share on the router)
   - User-defined options for WAN DHCP queries (required by some ISPs)
   - Advanced OpenVPN client and server support
   - Support for new OpenVPN 2.4 features like NCP and LZ4
   - Netfilter ipset module, for efficient blacklist implementation
   - Configurable min/max UPNP ports
   - DNS-based Filtering, can be applied globally or per client
   - Custom DDNS (through a user script)
   - TOR support, individual client control (based on experimental code
     from Asus)
   - Policy routing for the OpenVPN client (based on source or
     destination IPs), sometimes referred to as "selective routing")
   - DNSSEC support
   - fq_codel queue discipline for QoS (ARM-based models only)
   - Full cone NAT support (RT-AC86U only)
   - Detailed wireless troubleshooting information (RT-AC86U only)
   - Modern DDNS client (In-a-Dyn), with HTTPS support


Web interface:
   - Performance improvements
   - Optionally save traffic stats to disk (USB or JFFS partition)
   - Enhanced traffic monitoring with graphical reports of
     historical data
   - Traffic report per IP (except on RT-AC86U)
   - Hostname field on the DHCP reservation page
   - System information summary page
   - Wifi icon reports the state of both radios
   - Wireless site survey
   - Advanced Wireless client list display, including automated refresh
   - Redesigned layout of the various System Log sections
   - Editable fields for some pages
   - User-provided SSL certificate


Some features that first appeared in Asuswrt-Merlin have since been 
integrated/enabled/re-implemented in the official firmware:

- HTTPS webui
- Turning WPS button into a radio on/off toggle
- Use shorter share names (folder name only)
- WakeOnLan web interface (with user-entered preset targets)
- clickable MACs on the client list for lookup in the OUI database
- Display active/tracked network connections
- VPN client connection state report
- OpenVPN client and server
- Configurable IPv6 firewall
- Persistent JFFS partition
- The various MAC/IP selection pulldowns will also display hostnames
  when possible instead of just NetBIOS names
- SSHD
- Improved compatibility with 3TB+ and Advanced Format HDDs
- Display the Ethernet port states
- Disk spindown after user-configurable inactivity timeout



Installation
------------
Simply flash it like any regular update.  You should not need to 
reset to factory defaults (see note below for exceptions).
You can revert back to an original Asus firmware at any time just
by flashing a firmware downloaded from Asus's website.

If the firmware upgrade fails, try rebooting your router to free 
up sufficient memory, without any USB disk plugged in,
then try flashing it again.

NOTE: resetting to factory default after flashing is 
strongly recommended for the following cases:

- Updating from a firmware version that is more than 3 releases older
- Switching from a Tomato/DD-WRT/OpenWRT firmware

If you run into any issue after an upgrade and you haven't done so,
try doing a factory default reset as well.

Always read the changelog, as mandatory resets will be mentionned 
there when they are necessary.

In all of these cases, do NOT load a saved copy of your settings!
This would be the same thing as NOT resetting at all, as you will 
simply re-enter any invalid setting you wanted to get rid of.  Make 
sure to create a new backup of your settings after reconfiguring.



Documentation
-------------
For documentation on how to use the features that are specific to 
Asuswrt-Merlin, as well as additional guides, please consult the
wiki:

https://github.com/RMerl/asuswrt-merlin/wiki



Source code
-----------
The source code can be found on Github.

Original legacy branch:
https://github.com/RMerl/asuswrt-merlin

New generation/current branch (382.xx and newer):
https://github.com/RMerl/asuswrt-merlin.ng

   
Contact information
-------------------
SmallNetBuilder forums (preferred method: http://www.snbforums.com/forums/asuswrt-merlin.42/ as RMerlin)
Website: https://asuswrt.lostrealm.ca/
Github: https://github.com/RMerl
Email: rmerl@lostrealm.ca
Twitter: https://twitter.com/RMerlinDev
IRC: #asuswrt on Freenode
Download: https://asuswrt.lostrealm.ca/download

Development news will be posted on Twitter and the support forums.  
You can also keep a closer eye on development as it happens, through 
the Github code repository.

For support questions, please use the SmallNetBuilder forums whenever 
possible.  There's a dedicated Asuswrt-Merlin sub-forum there, under 
the Asus Wireless section.  The community there is the primary source 
of technical support.

I want to give my special thanks to Asus for showing an interest in 
this project, and also providing me with support and development 
devices when needed.  I also want to thank everyone that has 
donated through Paypal.  Much appreciated!

Finally, my special thanks to r00t4rd3d for designing the 
Asuswrt-Merlin logo.



Disclaimer
----------
This is the part where you usually put a lot of legalese stuff that nobody 
reads. I'm not a lawyer, so I'll just make it simple, using my own words 
rather than some pre-crafted text that will bore you to death and that 
nobody but a highly paid lawyer would even understand anyway:

I take no responsibility for issues caused by this project. I do my best to 
ensure that everything works fine. If something goes wrong, my apologies.

The Asuswrt-merlin firmware is released under a GPL licence.  In short, you 
are free to use, redistribute and modify it, as long as all the associated 
licences are respected, and that any changes you make to the GPL code is 
made publicly available.

Copyrights belong to the appropriate individuals/entities, under the appropriate 
licences. GPL code is covered by GPL, proprietary code is Copyright their 
respective owners, yadda yadda.

I try my best to honor the licences (as far as I can understand them, as a 
normal human being). Anything GPL or otherwise open-sourced that I modify 
will see my changes published to Github at some point. A release might get 
delayed if I'm working using pre-release code. If it's GPL, it will eventually 
be published - no need to send a volley of legal threats at me.

In any other cases not covered, Common Sense prevails, and I shall also make use 
of Good Will.

Concerning privacy:

The only call back made by this firmware to me is when it checks for the
availability of a new version.  The automated check can be disabled if desired.
More info on the Wiki:

https://github.com/RMerl/asuswrt-merlin/wiki/RMerl/asuswrt-merlin/wiki/Privacy-disclosure


--- 
Eric Sauvageau
