Thursday, June 13, 2013

How to De-brick a Buffalo WZR-600DHP

I use DD-WRT at my house because it offers a lot of advanced features on a cheap device. I purchased the Buffalo WZR-600DHP and originally loaded the Buffalo-branded DD-WRT version on it to keep things simple. One night I decided to move to a community build because Buffalo has not updated their version for over 6 months and I wanted to take advantage of new features. So, rather than flashing the device first and doing things the right way, I was lazy and just tried to upgrade via the GUI using one of builds found here:

ftp://ftp.dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/2013/05-27-2013-r21676/buffalo_wzr-600dhp/

Of course the upgrade failed and bricked my unit. You should always follow the proper upgrade method. There are couple different modes that a Buffalo defaults to when it is bricked. In my case, the red diag light was blinking twice every few seconds. This means that either the flash failed or the image that was uploaded was corrupt.

Now, there are a ton of different posts on how to do this, but the reason that I am posting one myself is because none of them worked for me directly. I had to piece together multiple posts. Here are the steps that I followed (I did all these steps from OSX):

  1. Download the latest Buffalo firmware from the Buffalo website (not the DD-WRT flavor).
  2. In the FTP link above, you will find two different firmware flavors. Download the one that reads "buffalo_to_dd-wrt."
  3. Unplug the Buffalo router.
  4. Change the IP of your wired interface on your computer to 192.168.11.2, with a subnet mask of 255.255.255.0. You can leave the gateway blank. I always typically do this because it allows access to the Internet via the wireless interface while still allowing wired access to the device you need to configure.
    1. NOTE: Regardless of what subnet you had configured for your router previously, 192.168.11.1 is the bootloader TFTP server address. You must set your computer to 192.168.11.2, as that is the required TFTP client IP address.
  5. Get any 10/100 or 10/100/1000 capable switch and turn it on.
  6. Plug you computer into any port on the switch.
  7. Plug the router into any other port on the switch, but don't power it on just yet.
  8. Open your terminal and type sudo arp -s 192.168.11.1 02:AA:BB:CC:DD:20
    1. NOTE: On many other posts it specifies to use the MAC address of the router (its the OUI followed by the characters listed on the SSIDs that are on the sticker on the router). However, I was only able to recover mine by using the bootloader MAC address as shown above. This is the special MAC address used during the booting process.
  9. While still in the terminal, navigate to the directory where the firmware you downloaded in step 1 resides.
  10. Type tftp 192.168.11.1 put wzr600dhp-191 and DO NOT hit enter.
  11. Power on the router, then hit enter to send the command shown above in step 9.
  12. In about 10 seconds, the red diag light will start to blink rapidly which means that the router is receiving the new image. You should also see a response in your terminal specifying whether or not the upgrade was successful.
  13. Let it install the image for about 10 minutes.
  14. Once completed, you will be able to access the GUI via the 192.168.11.1 address.
  15. Perform a 30/30/30 reset (if you need assistance on how to do this, see the DD-WRT wiki on their website).
  16. From the GUI, install the firmware you just downloaded and allowed the device to reboot.
  17. Perform another 30/30/30/ reset and enjoy!

8 comments:

  1. The technical tips are quite useful . I have tried some of them and found most of them really effective .

    Thanks
    Silvester Norman

    Change Mac Address

    ReplyDelete
  2. Hi i was following this guide for OSX but i keep getting the unsupported media error. Any tip would be helpful

    ReplyDelete
  3. after arp -s command could you ping 192.168.11.1 ?
    why the router is needed? cannot you just connect PC/Mac to one of the ports?

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Thanks! work on Old OSX 10.5 Leopard G4 PPC. Had to use commands a bit different:
    Type: tftp 192.168.11.1 and press Return
    Type: binary and press Return
    Type: put wzr600dhp-191 and press Return

    ReplyDelete
    Replies
    1. THANK YOU for adding this comment!!! I was pulling my hair out because it would NOT do anything when I issued the TFTP command. I'm on Linux Mint and including the binary command enabled the firmware to send successfully. thank you thank you thank you

      Delete
  6. Two quick tips for windows users: Instead of : (colons) in the physical (MAC) address, use - (dashes). Instead of the above tftp command, add the -i switch, for instance: tftp -i WhatEverIPAddress put WhatEverFileName

    ReplyDelete