WRT1900v1 - Problems Reverting Back to Original Firmware

Hello,
I'm having a problem reverting from OpenWRT (LEDE 17.01.2) back to the default Linksys firmware for my WRT1900v1. From the wiki, it indicates to the do the following (I have edited with my commands):

cd /tmp
wget http://downloads.linksys.com/downloads/ … 7_prod.img
mtd -r write /tmp/FW_WRT1900AC_1.1.8.161917_prod.img firmware

The error I receive on the 'mtd' command is:

Could not open mtd device: firmware
Can't open device for writing!

Does anyone have any suggestions on how to get my unit back to the factory firmware? I am also confused if I have to do anything with the flash.layout (hopefully not - hopefully it is as simple as downloading the correct image as I have attempted above)

Since my device previously had DDWRT, I do not believe that the original firmware (original Linksys or otherwise) is on the different partitions.

Thanks in advance!

Try using TFTP.

TFTP tutorials…

http://bit.ly/2yNN9ej

My apologies, but what it TFTP going to do in this case? Once I perform the wget, the image is now stored in the /tmp directory. The problem is the write to memory, etc (mtd).

Don't know about writing back over top of dd-wrt, seem to remember it being problematic, but have you tried:

sysupgrade -F -n image

Well there was previously DDWRT and then that was wiped out and replaced by LEDE. Is there any way to check to see what is currently in the partitions before I perform this command? I don't need to have different firmware (LEDE, DDWRT, default) stored in the different partitions - I just want to get back to the default firmware.

hint in the comment, and a reset to the other one

Edit: and of course you can just use the power switch(4 times)

No apologies necessary. Depends on how you are trying to load the firmware.

See this OpenWRT article...

https://wiki.openwrt.org/toh/linksys/wrt_ac_series

Here is the listing of the 'mtd'. I'm still confused if there is a firmware image in each partition?

root@LEDE:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00200000 00020000 "u-boot"
mtd1: 00040000 00020000 "u_env"
mtd2: 00040000 00020000 "s_env"
mtd3: 00100000 00020000 "devinfo"
mtd4: 02800000 00020000 "kernel1"
mtd5: 02200000 00020000 "ubi"
mtd6: 02800000 00020000 "kernel2"
mtd7: 02200000 00020000 "rootfs2"
mtd8: 02600000 00020000 "syscfg"
mtd9: 00680000 00020000 "unused_area"

Well, that is just your partition layout, interestingly my mamba looks different:

root@bsaedgy:/# uptime
09:55:40 up 7 days, 7:55, load average: 0.03, 0.01, 0.00
root@bsaedgy:/# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00040000 00020000 "u_env"
mtd2: 00040000 00020000 "s_env"
mtd3: 00100000 00020000 "devinfo"
mtd4: 02800000 00020000 "kernel1"
mtd5: 02500000 00020000 "rootfs1"
mtd6: 02800000 00020000 "kernel2"
mtd7: 02500000 00020000 "ubi"
mtd8: 02600000 00020000 "syscfg"
mtd9: 00780000 00020000 "unused_area"
mtd10: 00008000 00008000 "spi0.0"
root@bsaedgy:/# /usr/sbin/fw_printenv -n boot_part
2

and they both seem to disagree with the documentation on the wiki.

At any rate, have you tried booting the other partition, either programmatically or with the power switch. If dd-wrt boots on the other partition you could try to load OEM from there; if memory serves there was some special image used to accomplish that, but I have not been there in many years.

Or, if you have a TTL serial cable. I am not sure about tftp with this, I think you actually have to set the IP, but maybe there is a default.

My apologies... this is from my v2 (cobra). I have both the v1 and v2 versions that I am working on converting back to OEM firmware.

Interesting update... after reading some more of the forums, I determined that my WRT1900ACv2 device was currently using partition 1:

root@LEDE:~# /usr/sbin/fw_printenv -n boot_part
1

Then for the heck of it, I wanted to see if there was anything in partition 2, so I did the power switch:
https://forum.openwrt.org/viewtopic.php?id=70202

Low and behold, in partition 2 was the original Linksys EOM firmware (1.0.0.168229).

My question is this, I should be able to easily upgrade from the Linksys OEM firmware to DDWRT, but should I go back to LEDE first and do any type of factory reset, restore, etc so that there are no remnants left over? The DDWRT will probably over-write the LEDE (assuming I perform the upgrade from the Linksys web GUI).

Flash from OEM will overwrite the LEDE image, nothing else should be required

Great... thank you.

Ok, here is the latest update. Thanks to everyone, I was able to revert both of my WRT1900ACv2 back to the OEM firmware (simply by switching partitions). Now I am focusing back to focusing on my WRT1900ACv1 device. When I check the active partition, it is currently:

root@LEDE:~# /usr/sbin/fw_printenv -n boot_part
2

When I try numerous times to switch the partition to '1' by the power switch (which worked on both of my v2 devices), it always stays in partition 2. The leads me to believe that there is only one partition with firmware in it (partition 2) with.

Following the OpenWRT instructions for reverting to factory firmware (https://wiki.openwrt.org/doc/howto/generic.uninstall), the 'mtd' command is failing:

cd /tmp
mtd -r write /tmp/FW_WRT1900AC_1.1.8.161917_prod.img firmware

I still get the following error:

Could not open mtd device: firmware
Can't open device for writing!

If I remove the 'firmware' argument, here is some a snippet of info that comes back:

  • The device is in the format of mtdX (eg: mtd4) or its label.
  • Example: To write linux.trx to mtd4 labeled as linux and reboot afterwards
    mtd -r write linux.trx linux

From looking at the flash layout:(https://wiki.openwrt.org/toh/linksys/wrt_ac_series#tab__wrt1900ac5), I'm not sure if I should be using some variation of 'mtd*' instead of 'firmware'?

NOTE: I did not yet attempt 'sysupgrade -F -n image'.

And why not? That is the default way of flashing an OEM firmware to a WRT1900AC series device in LEDE.

(the image checksum verification has changed so that LEDE sysupgrade does not accept the OEM image without -F. That has been discussed in several threads here)

Your own mtd output shows that in the mvebu WRT1900ACx series routers there is no "firmware" partition, so the generic advice about flashing with "mtd" to "firmware" simply does not work.

That did the trick! There was a scary moment... while pinging the gateway, I received "PING: transmit failed. General failure" error messages to the screen for 10 minutes after performing the upgrade. However, after power cycling the device, it booted in the Linksys OEM firmware.

Thanks for everyone's help.