WARNING: This document may contain errors which may result in damage to your router. USE AT YOUR OWN RISK. I recently bought a cheap D-Link DIR300 router from Ebay with stock firmware, and decided to install the Gargoyle firmware. However, the installation guide provided here did not work for me. The problem was that I was indeed able to install the new bootloader and DD-WRT, but after restarting the router in order to install the Gargoyle firmware then the bootloader loaded but DD-WRT did not, thus I was unable to use the Fon Flash. Then I found an installation guide for OpenWrt (http://oldwiki.openwrt.org/OpenWrtDocs(2f)Hardware(2f)D(2d)Link(2f)DIR(2d)300.html)and altered it a bit for Gargoyle. Hire is my installation guide: Assuming you want to install Gargoyle 1.0.14, then you need to copy the following files to your local TFTP server (for windows use tftp32 http://tftpd32.jounin.net/): * ap61.ram – Downloaded from the DD-WRT site. * ap61.rom – Downloaded from the DD-WRT site. * gargoyle_1.0.14-atheros-root.squashfs * gargoyle_1.0.14-atheros-vmlinux.lzma Start the TFTP server and replace the bootloader as described here: http://www.dd-wrt.com/wiki/index.php/DIR300. You do not need to install DD-WRT just the DD-WRT bootloader! Chang your local ip to 192.168.1.2/255.255.255.0 restart the router and if you are able to telnet on port 9000 and ip 192.168.1.1 (use Putty as a Telnet client for Windows) then do the following: DD-WRT> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . DD-WRT> ip_address -h 192.168.1.2 DD-WRT> load -r -b %{FREEMEMLO} gargoyle_1.0.14-atheros-vmlinux.lzma Using default protocol (TFTP) Raw file loaded 0x80040800-0x801007ff, assumed entry at 0x80040800 DD-WRT> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7 ... Erase from 0xbfc30000-0xbfcf0000: ............ ... Program from 0x80040800-0x80100800 at 0xbfc30000: ............ ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . DD-WRT> load -r -b %{FREEMEMLO} gargoyle_1.0.14-atheros-root.squashfs Using default protocol (TFTP) Raw file loaded 0x80040800-0x802207ff, assumed entry at 0x80040800 DD-WRT> fis create rootfs ... Erase from 0xbfcf0000-0xbffb0000: ............................................... ... Program from 0x80040800-0x80220800 at 0xbfcf0000: .............................. ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . DD-WRT> fconfig Run script at boot: true Boot script: Enter script, terminate with empty line >> fis load -l vmlinux.bin.l7 >> exec >> Boot script timeout (1000ms resolution): 4 Use BOOTP for network configuration: true Gateway IP address: 192.168.1.1 Console baud rate: 9600 GDB connection port: 9000 Force console for special debug messages: false Network debug at boot time: false Update RedBoot non-volatile configuration - continue (y/n)? y ... Erase from 0xbffe0000-0xbfff0000: . ... Program from 0x80ff0000-0x81000000 at 0xbffe0000: . DD-WRT> reset Now reset your IP configuration and you should be able to log in to Gargoyle via HTTP or SSH. You can install other versions of Gargoyle via the web insterface.