<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>pig-monkey.com - tftp</title><link href="https://pig-monkey.com/" rel="alternate"></link><link href="https://pig-monkey.com/tag/tftp/feed" rel="self"></link><id>https://pig-monkey.com/</id><updated>2012-09-15T00:00:00-07:00</updated><entry><title>Recovering the Linksys WRT54GL via TFTP</title><link href="https://pig-monkey.com/2008/07/recovering-the-linksys-wrt54gl-via-tftp/" rel="alternate"></link><published>2008-07-18T00:00:00-07:00</published><updated>2012-09-15T00:00:00-07:00</updated><author><name>Pig Monkey</name></author><id>tag:pig-monkey.com,2008-07-18:/2008/07/recovering-the-linksys-wrt54gl-via-tftp/</id><summary type="html">&lt;p&gt;Last May, &lt;a href="http://www.dd-wrt.com"&gt;DD-WRT&lt;/a&gt; released the (long in development) v24 of their firmware. I had been running one of the release candidates for it on my Linksys WRT54GL, but decided today to upgrade to the stable release. I downloaded the appropriate file (&lt;code&gt;dd-wrt.v24_std_generic.bin&lt;/code&gt;), followed the &lt;a href="http://www.dd-wrt.com/wiki/index.php/Installation#Upload_The_Firmware"&gt;instructions for flashing through …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;Last May, &lt;a href="http://www.dd-wrt.com"&gt;DD-WRT&lt;/a&gt; released the (long in development) v24 of their firmware. I had been running one of the release candidates for it on my Linksys WRT54GL, but decided today to upgrade to the stable release. I downloaded the appropriate file (&lt;code&gt;dd-wrt.v24_std_generic.bin&lt;/code&gt;), followed the &lt;a href="http://www.dd-wrt.com/wiki/index.php/Installation#Upload_The_Firmware"&gt;instructions for flashing through the web GUI&lt;/a&gt;, and promptly bricked the router.&lt;/p&gt;
&lt;p&gt;It wasn&amp;rsquo;t totally destroyed. I could still ping the router, but couldn&amp;rsquo;t access it in any other way. The power light would flash repeatedly, and no other lights came on. No amount of hard resets would fix it.&lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;According to &lt;a href="http://www.dd-wrt.com/wiki/index.php/Recover_from_a_Bad_Flash#WRT54G.2FGL.2FGS"&gt;DD-WRT&amp;rsquo;s wiki article on bad flashes&lt;/a&gt;, the repetitive blinking of the power light means that the bootloader is defective, but that the problem might be solved using a TFTP recovery. The idea is that when the router first boots up, there&amp;rsquo;s a brief moment where it will accept an upload. By pushing through firmware, you are able to temporarily boot the router.&lt;/p&gt;
&lt;p&gt;On older Linksys routers, this only works with the official Linksys firmware, so I downloaded the latest version from &lt;a href="http://www.linksys.com/servlet/Satellite?c=L_CASupport_C2&amp;childpagename=US%2FLayout&amp;cid=1166859841350&amp;packedargs=sku%3DWRT54GL&amp;pagename=Linksys%2FCommon%2FVisitorWrapper&amp;lid=4135041350B01&amp;displaypage=download"&gt;Linksys&amp;rsquo; support page for the WRT54GL&lt;/a&gt;. Because the router will only accept the firmware at the very start of the boot process, I first unplugged the router, turning it off. To monitor the router during the process, I started a ping from my machine.&lt;/p&gt;
&lt;pre&gt;
$ ping 192.168.1.1
&lt;/pre&gt;

&lt;p&gt;Then, using the TFTP client that ships with OS X, I executed the upload&lt;/p&gt;
&lt;pre&gt;
$ echo "put FW_WRT54GL_4.30.12.3_US_EN_code.bin" | tftp -e 192.168.1.1
&lt;/pre&gt;
&lt;p&gt;and immediately plugged the router back in. In 10 seconds, TFTP reported that the file had been sent.&lt;/p&gt;
&lt;p&gt;At this point, the router stopped responding to my pings for about 30 seconds. When it began replying again, I was able to access the default Linksys web GUI. The first thing I did in the GUI was to hit the &amp;ldquo;reset to factory defaults&amp;rdquo; button, which clears the NVRAM of my bad DD-WRT image and installs the fresh Linksys image. After that, I installed a new DD-WRT &amp;ldquo;mini&amp;rdquo; image (the WRT54GL requires you flash with &amp;ldquo;mini&amp;rdquo; before upgrading to &amp;ldquo;standard&amp;rdquo; when moving from the default firmware), by uploading &lt;code&gt;dd-wrt.v24_mini_generic.bin&lt;/code&gt; via the upgrade page. This worked without a hitch.&lt;/p&gt;
&lt;p&gt;In the DD-WRT web interface, I tried to flash the router with the standard firmware, but was greeted by a vague error message that told me only that the upgrade had failed. I went &lt;a href="http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#File_Versions"&gt;back to the wiki to see what the differences were between mini and standard&lt;/a&gt; and decided that it would be find to leave the router with mini. All I needed was for the router to act as a wireless repeater with a virtual interfaces. The mini firmware supports this, so I was able to &lt;a href="http://pig-monkey.com/2007/12/02/escapades-in-the-art-of-wireless-piracy/"&gt;setup the router just as before&lt;/a&gt;.&lt;/p&gt;</content><category term="general"></category><category term="linksys"></category><category term="firmware"></category><category term="dd-wrt"></category><category term="wireless"></category><category term="os x"></category><category term="router"></category><category term="tftp"></category></entry></feed>