Difference between revisions of "De Brick or Un Bricking a WRT Series Router"

Jump to navigation Jump to search
m
no edit summary
m
m
(4 intermediate revisions by the same user not shown)
Line 7: Line 7:
*The U-Boot / Das Boot (Marvell Version of them that is) is functional
*The U-Boot / Das Boot (Marvell Version of them that is) is functional
*A TFTP Server is available and functional on the same network as the router
*A TFTP Server is available and functional on the same network as the router
===Quick D (AKA Information)===
The absolute first best thing one can do to avoid bricking a WRT / AC Series router, is to utilize the /overlay functionality and have all the important stuff stored in that manner.  Look up the /overlay thing if you're not familiar with it for more details.  In short, the boot process starts from the internal "disk drive", AKA NAND 'disk', then mounts an external USB Flash Drive or eSATA drive and continues from there based on Operating System files and settings stored on the flash drive.  That way the internal "disk drive" acts only in a similar fashion to GRUB (again, look it up).  The result of this configuration method is that the entire internal "disk drive" is disposable, can be wiped out, re-flashed, with nothing lost (except the need to install the software to recognize a USB Flash Drive and the setting to boot from it).
Below are some quick tips (not a step by step) that are good for bringing a 'dead' Linksys router back from the grave.
*OpenWRT Firmware for AC Series of Routers: https://downloads.openwrt.org/releases/19.07.3/targets/mvebu/cortexa9/
*OpenWRT De-Bricking Information: https://openwrt.org/toh/linksys/wrt3200acm#Debricking.  Below are the key commands (''run'' being the command and what comes after it being a script stored as a variable)
**run nandboot (script for booting the router from the MTD5 Partition)
**run altnandboot (script for booting the router from the MTD7 Partition, AKA the 'alternate')
**GOTCHA!: One really big "gotcha" from using the above commands relates to upgrading firmware.  When booting using the altnandboot script from above, when flashing a new image it will flash it to the current partition.  This is counter to the usual behavior where OpenWRT will flash a new image to the ''other'' parition.
*A Recommendation: Configure the MTD6 Partition as the primary partition that boots the /overlay, and leave the secondary MTD8 partition configured to NOT boot an overlay.  This allows the MTD8 partition to function without a USB flash drive
*
<br />
===Flashing Firmware===
Even though this article is about "de bricking" a router, it is also the fastest way to install firmware on ''both'' partitions of any WRT / AC Series router from the stock Linksys firmware.  But it does require having console access to the router via a Serial / TTL cable.


===Recovery===
===Recovery===
Line 75: Line 92:
*Set the IP Address of the Router: setenv ipaddr 192.168.1.1 (the IP Address is just an example, and is also the default)
*Set the IP Address of the Router: setenv ipaddr 192.168.1.1 (the IP Address is just an example, and is also the default)
*Probably no need to set subnet mask as the default is 255.255.255.0, common to most private IP Address ranges (subnet is the name of the variable to set, if needed)
*Probably no need to set subnet mask as the default is 255.255.255.0, common to most private IP Address ranges (subnet is the name of the variable to set, if needed)
*Set the IP Address of the TFTP Server: setenv serveip 192.168.1.254 (the IP Address is just an example, and is also the default)
*Set the IP Address of the TFTP Server: setenv serverip 192.168.1.254 (the IP Address is just an example, and is also the default)
*Set the name of the firmware image file: setenv firmwareName venom.img (...the CAPITAL N is not a mistake, the name can be any name, including the default one from OpenWRT, but it's easier to rename the original file)
*Set the name of the firmware image file: setenv firmwareName venom.img (...the CAPITAL N is not a mistake, the name can be any name, including the default one from OpenWRT, but it's easier to rename the original file)
*Run the "installation script": run update_both_images (The update_both_images "script" is actually an environmental variable set by LinkSys in the U-Boot partition stored on the router's "disk drive" (AKA NAND memory), with all of the $ items being other variables that are set elsewhere, type: printenv for a full list of the environment variables)
*Run the "installation script": run update_both_images (The update_both_images "script" is actually an environmental variable set by LinkSys in the U-Boot partition stored on the router's "disk drive" (AKA NAND memory), with all of the $ items being other variables that are set elsewhere, type: printenv for a full list of the environment variables)
Line 93: Line 110:
It cannot be an coincidence that the WRT32X, black in color with a code name of "Venom" and a SoC from Marvell, isn't somehow named after the 2018 Marvel movie, Venom.
It cannot be an coincidence that the WRT32X, black in color with a code name of "Venom" and a SoC from Marvell, isn't somehow named after the 2018 Marvel movie, Venom.


=== Other Thoughts ===
===Boot Errors===
Even considering the small amount of time it takes to unscrew the front cover of an AC Series router and hook up a Serial / TTL connector (assuming one doesn't already have one added to the router), this is the fastest way to put a virgin copy of OpenWRT firmware on ''both'' partitions of a router.
<syntaxhighlight lang="text">
NAND read: device 0 offset 0x900000, size 0x600000
6291456 bytes read: OK
Bad Linux ARM zImage magic!
</syntaxhighlight>
 
===Gotcha===
...see above sections.

Navigation menu