This page looks best with JavaScript enabled

Compile Gargoyle for Netgear R6220

 ·   ·  ☕ 3 min read

    Netgear R6220 router an AC1200 dual-band router with very impressive specs. It was awarded the best router in 2016 and now in 2019, I still think it is a very good router. It has a 2 core Mediatek MT7621 (MIPS) processor with 128 MB RAM & 128 MB ROM i.e. ample space with some good processing power. Below you can see the impressive specs. BTW: I got this for almost 15 USD which was a steal!

    root@OpenWrt:~# cat /proc/cpuinfo
    system type             : MediaTek MT7621 ver:1 eco:3
    machine                 : Netgear R6220
    processor               : 0
    cpu model               : MIPS 1004Kc V2.15
    BogoMIPS                : 584.90
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 32
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
    isa                     : mips1 mips2 mips32r1 mips32r2
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    kscratch registers      : 0
    package                 : 0
    core                    : 0
    VPE                     : 0
    VCED exceptions         : not available
    VCEI exceptions         : not available
    
    processor               : 1
    cpu model               : MIPS 1004Kc V2.15
    BogoMIPS                : 584.90
    wait instruction        : yes
    microsecond timers      : yes
    tlb_entries             : 32
    extra interrupt vector  : yes
    hardware watchpoint     : yes, count: 4, address/irw mask: [0x0ffc, 0x0ffc, 0x0ffb, 0x0ffb]
    isa                     : mips1 mips2 mips32r1 mips32r2
    ASEs implemented        : mips16 dsp mt
    shadow register sets    : 1
    kscratch registers      : 0
    package                 : 0
    core                    : 0
    VPE                     : 1
    VCED exceptions         : not available
    VCEI exceptions         : not available
    
    root@OpenWrt:~# cat /proc/meminfo
    MemTotal:         124016 kB
    MemFree:           67696 kB
    MemAvailable:      50560 kB
    Buffers:            2460 kB
    Cached:            12820 kB
    SwapCached:            0 kB
    Active:            25640 kB
    Inactive:           5116 kB
    Active(anon):      18372 kB
    Inactive(anon):      144 kB
    Active(file):       7268 kB
    Inactive(file):     4972 kB
    Unevictable:           0 kB
    Mlocked:               0 kB
    HighTotal:             0 kB
    HighFree:              0 kB
    LowTotal:         124016 kB
    LowFree:           67696 kB
    SwapTotal:             0 kB
    SwapFree:              0 kB
    Dirty:                 0 kB
    Writeback:             0 kB
    AnonPages:         15476 kB
    Mapped:             2920 kB
    Shmem:              3040 kB
    Slab:               9628 kB
    SReclaimable:       2636 kB
    SUnreclaim:         6992 kB
    KernelStack:         448 kB
    PageTables:          336 kB
    NFS_Unstable:          0 kB
    Bounce:                0 kB
    WritebackTmp:          0 kB
    CommitLimit:       62008 kB
    Committed_AS:      23588 kB
    VmallocTotal:    1040376 kB
    VmallocUsed:           0 kB
    VmallocChunk:          0 kB
    

    I am running OpenWRT on this router. You can use the OpenWRT information page to install OpenWRT over the stock FW. Now OpenWRT is good but I miss some of the user-friendly features from Gargoyle FW, which is another open source FW based on OpenWRT. One of the best features is the Quota & throttling support in the UI. I can do all these things in OpenWRT but again, it is a lot of manual steps and I also want somebody like my wife to be able to manage the router as well if needed.

    The current binaries available for the MT7621 does not have R6220 profile and also, it does not have the latest OpenWRT base. Hence the only option is to compile Gargoyle and create a working FW. Below are the steps for the same. The code below is self-documenting but do ask me your questions in comments as needed.

    The original source is: https://github.com/ericpaulbishop/gargoyle. I have a forked version available at: https://github.com/wolverine2k/gargoyle. Start working on the master branch since that is up-to-date and being actively worked upon upstream.

    git clone git@github.com:wolverine2k/gargoyle.git
    cd gargoyle
    git checkout master
    make ramips.mt7621
    

    If the compilation is successful, you should have the necessary binaries generated in: ramips-src/bin/targets/ramips/mt7621

    Gargoyle R6220 Firmware Images

    You might face error with obfsproxy-legacy which I faced. So I had to apply the patch to get it to compile. Now simply do a sysupgrade on your OpenWRT FW to enjoy Gargoyle. I will put another blog post if I find any instabilities.

    More documentation on the same can be found at: https://www.gargoyle-router.com/wiki/doku.php?id=developer_documentation.

    Enjoy going Gargoyle!

    Share on
    Support the author with

    Naresh Mehta
    WRITTEN BY
    Naresh Mehta
    Ideas analyzed logically to make sense & grow upon...