Asuswrt-Merlin - custom build of the Asus RT-N66U firmware

Discussion in 'Asuswrt-Merlin' started by RMerlin, Apr 14, 2012.

Thread Status:
Not open for further replies.
  1. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    About:
    This is a customized version of Asuswrt, the firmware developed and used by Asus on many of their routers.

    Currently supported: RT-N66U, RT-AC66U, RT-N16 (Experimental)

    The primary goals of this project are to fix bugs, add a few basic features and tweaks to the original firmware. This firmware will try to remain as close as possible to the original firmware. If you are looking for a slew of advanced features, then this project is not for you. Look at TomatoUSB or DD-WRT, two excellent products that might suit your needs better.

    If however you prefer something as close as possible to the manufacturer's firmware, then this is for you :)

    Latest release: 3.0.0.3.178.15

    Asuswrt-merlin provides the following changes over the original firmware:

    • 64KB NVRAM
    • WakeOnLan web interface (with user-entered preset targets)
    • JFFS persistent partition
    • User scripts executed at init, services startup, WAN up, firewall up and shutdown.
    • SSHD (through dropbear)
    • HTTPS support
    • OUI (MAC address) lookup if you click on a MAC on the Client list (ported from DD-WRT)
    • Optionally turn the WPS button into a radio on/off switch
    • Saving your traffic history to disk (USB or JFFS)
    • Displaying monthly traffic history
    • Cron jobs
    • Monitor your router's temperature (under Administration -> Performance Tuning)
    • Display active/tracked network connections
    • Allows tweaking TCP/UDP connection tracking timeouts
    • Various bugfixes: crash issues related to VPN, etc...
    • layer7 and cifs kernel modules added
    • Optional user-settings for the WAN DHCP client (required by some ISPs)
    • Description field added to DHCP reservation entries
    • Dual WAN support (both failover and load balancing supported)
    • Disk spindown after user-configurable inactivity timeout
    • System info summary page
    • Wireless client IP and hostname on the Wireless Log page

    Download:
    You can download it from the Github repo:
    https://github.com/RMerl/asuswrt-merlin/downloads

    Or from my website:
    http://www.lostrealm.ca/asuswrt-merlin

    The source code including my changes can be found on Github: https://github.com/RMerl/asuswrt-merlin.

    Changelog: http://www.lostrealm.ca/asuswrt-merlin/changelog.txt.


    Hope you folks like it :)
     
    Last edited: Aug 17, 2012
  2. Log in / Register to remove this ad

  3. mrcom

    mrcom Regular Contributor

    Joined:
    Feb 9, 2012
    Messages:
    100
    Great!! Really nice to se people doing there own firmwares and making them available!!! Keep up the good work and a big THANKS!!
    best regards Mrcom
     
  4. srinivasvaradaraj

    srinivasvaradaraj Regular Contributor

    Joined:
    Feb 26, 2012
    Messages:
    64
    Location:
    Beaumont, TX, USA
    I have been wanting to do that but you did it , one word: AWESOME. Will check it out. My gripe with asus firmware was the inability to launch custom scripts or startup commands similar to dd-wrt's rc-startup. I have been experimenting with the builtin wl command to get better control on the wireless performace. Atleast try and see what the driver provides. The frustrating part was that it didn't survive a reboot. So, my question is could you provide a way to start custom startup script/command ?
    Very much obliged.
    -sri
     
  5. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    Custom scripts (like DD-WRT does) are definitely something I want to implement. Myself, I have to manually run two custom scripts: one to update my 6in4 tunnel, and another to setup the IPv6 firewall, as by default the router routes everything.

    I'm trying to hold off any real source-level change until at least the next stable release from Asus, but with the issues of recent betas, I might stop waiting and start working on implementing these.
     
  6. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    Progress update:

    USB gets mounted too late to be usable for startup scripts. So I had to fiddle with something else first:


    That last one gets mounted early enough ;)
     
    Last edited: Apr 15, 2012
  7. srinivasvaradaraj

    srinivasvaradaraj Regular Contributor

    Joined:
    Feb 26, 2012
    Messages:
    64
    Location:
    Beaumont, TX, USA
    Just curious if you have read thru ASUS's licence agreement ? If enough people take interest in this thread, I am considering a github.com posting/account. What do you think ?
    -sri
     
  8. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    I haven't read it, so I'm unsure what would be the legal implications of setting up a git repo with all the files they distribute in their GPL archive, and customizing it. I would assume it would be fine (especially considering their own firmware is based on Tomato), provided we make it clear that this is unofficial, unsupported by Asus, and so on. However, IANAL, so who knows for sure.

    At this point, my personal wish-list for this enhanced firmware are:

    • MiniDLNA update (done)
    • WakeOnLan with web integration (done)
    • JFFS2 support (almost done, working out web integration, and will require thorough tests)
    • Custom scripts (almost done, need more thorough tests)
    • SSH support (I only quickly looked at it, the code is there but Asus took out bits needed for this to work - yet should be doable)
    • Actually giving this a name, beside "Merlin's custom builds" :)
    • Only the most obvious bugfixes to the original firmware (because sometime, fixing one thing can break something else - there might be a reason why a specific bug hasn't been fixed by Asus yet)

    A few things I definitely do NOT want to do with this project:

    • So-called "performance tweaks" (as they typically open the door to stability issues - I trust engineers with the actual HW datasheets in hand to know better than me in their design decisions)
    • Re-working of any of the current inner workings (same reason)
    • Re-working of the WebUI

    I want it to remain as close as possible to the original firmware, to ensure it remains as stable and reliable as the stock firmware is. And also to make it as easy as possible to upgrade to any new code base released by Asus (considering they make 1-2 of them every month so far). People willing to go with more "experimental" or radical changes can find that with the other existing projects (IMHO).
     
  9. shantanugoel

    shantanugoel Occasional Visitor

    Joined:
    Feb 28, 2012
    Messages:
    45
    Awesome stuff, Eric. I was looking to modify the code for the same things as yours (custom scripts at startup, jffs) when I saw this page. Looks like you've got it pretty much wrapped up :)

    For ssh, You can use the ssh.c file from rc.orig folder and then add start_sshd and stop_sshd calls in rc.c file (with checking a nvram variable for ssh enablement). SSH enablement option can be added to advanced_system_content.asp file in www folder.
    I've done this and will test in morning and let you know.

    Waiting for your build with jffs and scripts support :)
     
  10. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    Thanks for the tip (I was going to grab the Tomato sources to recover that missing code). Got SSH working and integrated in the web interface :) I just need to test out pubkey authentication, and the sshd_forwarding option.
     
  11. zonly1

    zonly1 Occasional Visitor

    Joined:
    Feb 21, 2012
    Messages:
    16
    Great job, I really think I'm going to test this out! Would you consider adding the Web log features that are included in Tomato?
     
  12. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    I haven't used Tomato in quite a few years (my previous router was on DD-WRT). What does this feature do?
     
  13. zonly1

    zonly1 Occasional Visitor

    Joined:
    Feb 21, 2012
    Messages:
    16
    It allows you to see two things. 1. Recently Visited Web Sites; Date/Time, IP Address, and Domain Name and 2. Recent Web Searches; Date/Time, IP Address, and actual words searched.

    Very cool feature!

    TIA,
    Bill
     
  14. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    Not something I would plan to implement as part of the firmware, sorry. That would require to tinker with the firewall or the network interface to be able to intercept traffic and interpret it.
     
  15. thE_29

    thE_29 Occasional Visitor

    Joined:
    Mar 20, 2012
    Messages:
    22
    Is there an active shell/ssh in the firmware?!

    Like in *-WRT or Tomato-firmwares?!
     
  16. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    Asus provided a telnet access in their stock firmware. I am also adding SSH for the next release of my custom builds.
     
  17. thE_29

    thE_29 Occasional Visitor

    Joined:
    Mar 20, 2012
    Messages:
    22
    I think i will try your next firmware then ;)

    Is "ipkg" working?


    My (and some other guys) problem is: Tomato USB has random errors in shell with cmd-line parameters and for that it is unusable for me..
     
  18. RMerlin

    RMerlin Part of the Furniture

    Joined:
    Apr 14, 2012
    Messages:
    13,369
    Location:
    Canada
    ipkg working just as well as it does on the original firmware. You will get an error when updating repos, but that's because Asus' repo is missing the Packages.tgz file. I have been trying to get their tech support to fix it, but I have a feeling they do not understand what I am trying to explain to them, since it's been two weeks now, and the file is still MIA. Nonetheless, Oleg's repo is working fine. I was able to install lighttpd + php (with some manual tinkering) on my system. I just had to enable DownloadMaster first for it to initialize the /opt filesystem. It might not be straightforward as a fully supported feature, but it's still doable.

    I'm also using an ext3-formatted USB flash for better optware support.

    On another topic: JFFS, user scripts and SSH are now finalized and working great. I'm going to test them some more for a few days before releasing the next build.
     
  19. shantanugoel

    shantanugoel Occasional Visitor

    Joined:
    Feb 28, 2012
    Messages:
    45
    For the asus problem, we can just comment out the asus repo from ipkg.conf. Also, we can simply install our own ipkg or opkg and corresponding repos using http://code.google.com/p/wl500g-repo/wiki/Using
     
  20. TC777

    TC777 Occasional Visitor

    Joined:
    Feb 25, 2012
    Messages:
    36
    I am still using the Tomato firmware, but one thing that continues to annoy me about the Asus firmware is the problem they have with correctly displaying the connected client list. Many times it hangs on certain connected clients. I had that same problem on the rt-n56u also. Yet the custom firmwares, or Tomato have no problem with it.

    I haven't tried this firmware, but it probably has that problem seeing that's it's mostly made by Asus?
     
  21. dejanh

    dejanh Occasional Visitor

    Joined:
    Feb 1, 2012
    Messages:
    31
    Impressive. Subbed for future updates. Right now I am going to jump to .112 official, but looking forward to a custom build of the official .112 :D
     
Thread Status:
Not open for further replies.

Share This Page