Created: Thursday, 28 November 2013
Well, it happens, when you try to make WiFI installation at client location batter, one can upgrade routers with dd-wrt firmware. It is basically a good idea except the fact, there are plenty of mistakes/ errors in documentation, which leads us to a lot of troubles. Finally, using latest firmware for wnr2000v3 from dd-wrt is a bad ideas as the flash memory is a bit less than the firmware file. In result, we have the router bricked. Hereby I explain how I unbrick it.
So, the problem statement is as follows:
The last DD-WRT version that works with this router is r18777 released 3-19-12. ALL VERSIONS AFTER THAT DO NOT WORK, because of the following, Netgear makes flash size of their routers a bit smaller, so, actual flash size is about 3.4Mb or less, while the latest firmware size is about 4mb.
Ok, what is to do next?
The recovery process
As I learned from aforementioned links, is the following:
- The system is keep rebooting as the firmware image is broken due to the flash size issue;
- First of all, one needs a “USB – Serial TTL” connector, to se what happens inside the brick;
- We are to figure out how it can be connected to the router motherboard;
- We need drivers!;
- We need to connect to the console of the router via the cable;
- We need tftp client on our computer;
- We need a firmware, which we want to use in order to reflash the brick.
Hereby are step-by-step instructions, which saved my device
1. USB – Serial TTL Cable
In my case, as I test a lot of Android devices, I was lucky to find a “cubieboard USB – Serial TTL” cable. The cable is based on Prolific PL2303 chip.
Well, having the cable doesn’t answer the next question, how one can use it. Thank you the post here, I got the information as follows:
This table gives an idea, how we can connect the cable to the router. Of course, one needs to disassemble it, but it is very simple task and I won’t explain here any details of it.
Connectivity of the cable with the motherboard
The motherboard of the router contains Serial TTL hear as it is shown on the picture below (which you can find in the original post here):
CAUTION: You must NOT connect the red wire of your USB-Serial TTL connector, as it is 5V but in the motherboard it is just 3.3V.
Hereby is my connection of the cable with the motherboard:
Please, don’t use the red wire of the cable!
In my case, I use MS Windows 8.1 x64 computer and this is a bit problem, as after connection the cable, windows found drivers and install them, but the device doesn’t work.
Well, after some googling, I found the following link: http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=225&pcid=41.
Well, those drivers don’t work with MS Windows 8.1 / 8. I found a bit old Windows 7 computer, run the driver installation from the archive, downloaded from aforementioned page, restart the computer, connect the cable – it works!
Getting router console
It is pretty standard operation – we just use putty, which one can easily find by using google.
Before we start the application, one needs to open MS Windows Device Manager in order to check which com port is being used by the cable. In my case it was COM8:
As soon as we know the port number and set all com port parameters as it is shown above, we can run Putty and switch into the Serial options before establishing any connection. In Serial options, change serial port number and all com parameters accordingly:
and then, we can start the serial session:
As soon as we hit “Open” button, we get a console windows as follows (text can differs in it):
Before you do anything inside the router, it is not a bad idea to download preliminary firmware from NetGear website. After my test, I found that it is better to download 22.214.171.124 version. Newer versions make the recovery process a bit more complicated…
The unbrick procedure
- just switch off the router;
- hit the reset button and keep it pressed;
- Switch on the router and keep pressing the reset button;
- When power led start blinking by green light, you can release the reset button;
By now, the router in the recovery mode. You need to configure your computer for manual IP address such as as follows: 192.168.1.2 and connect the LAN port of the router with the lan port of the computer, by a cable. This time we must use a cable.
Try to run ping 192.168.1.1, as soon as you see the response, you can proceed further. If there is no response, check your IP configuration as well as restart the router in the recovery mode with attaching network cable.
In Windows, you nee to install from WIndows distribution internet tools, which bring to you tftp utility. If you won’t like to do, so, try to google tftp2 application.
By now, inn your command prompt, you need to change your working directory on the one, where you place your downloaded NetGear firmware (the must be an img file, if there is no, you probably has an archive – extract it).
Now, we are finally ready to start the recovery procedure as follows:
start the command as follows: tftp –i 192.168.1.1 PUT name_of_NetGear_firmware_file.img
If you have console opened on your computer, you will see that the firmware downloads everything but then it depends as follows:
- For those, who can see immediately after the download process is completed, the reflashing process is started, you fixed your problem and you basically didn’t need the USB-serial cable!
- But for other, like me, one can see that the system makes a check of the image with hardware ID and model ID and fall with a error message as follows:
Board HW ID mismatch, it is forbidden to be written to flash!!
For us, there are more steps ahead as follows:
- One can restart the router by switching off/on and keep hitting enter, until the recovery console is shown;
- As it was stated here, we can change the board id and the model id by the following commands:
it just set empty board_hw_id
- Those two commands finally allow us to upload the NetGear firmware and let the router make the recover.
In case of NetGear firmware newer than 126.96.36.199, the system checks not only model is but hw id as well and fall down with the same error message as it was written above.
We are done, it works by now!