Trying not to brick my WRT1900ACS (reverting to old FW)

Hi all, I'm kinda new to this but here is the full (and short) story: I installed LEDE Reboot 17.01.4 r3560-79f57e422d / LuCI lede-17.01 branch (git-17.290.79498-d3f0685) on my WRT1900ACS (V1). It went fine, it was working, but I decided to revert back to the old Linksys FW before trying alternatives. This is when trouble started. I downloaded the original FW from Linksys own website, a IMG file, tried to install it through the webpage, but it kept saying: The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. I searched a little bit online and found that I should do it in SSH with the -F parameter to force the FW to go through. I did that and thought my router was dead after the reboot...

Turns out it's not completely dead, I powered it off and then on 4 times and managed to "switch firmware" (source) and it booted on partition #2 on LEDE. It works. However, I still don't know how to revert back to original FW since it won't work with the GUI or the CLI (I tried multiple versions of the IMG OEM FW, then tried some factory-to-ddwrt.bin files, then tried to convert the binaries to TRX following another guide here and using the webgui with no success, so I'm kinda stuck). And now that I think about it, I'd like to fix partition #1 before doing anything with partition #2 but I haven't found any guide to flash the inactive partition.

Any kind of help would be appreciated before I brick my $150 router, it's been a very frustrated day for me so far. I consider myself lucky to still have a chance to fix all of this...

Did you read that wiki entry?
https://openwrt.org/toh/linksys/wrt_ac_series
There are a lot of information... Probably you have to use a factory image from there...

If you do not overwrite bootloader partition and have a backup of all your partitions, it's very hard to brick it completely...

I specifically linked to that webpage in my post... so yes I read it. Tried the IMG there (which is just a older FW) but it still says it's not a supported format. Why? That is why I'm having so many problems so far, no image are apparently supported, I'm literally stuck with LEDE and can't do anything about it besides buying a new router apparently...

Pretty tough to brick this device. Doing

sysupgrade -F -n image

should work fine. If you can't get an OpenWrt stable image, or OEM image to go that way, maybe try with a current snapsot. Always a way back to your current good partition by utilising the power switch 4 times as you state above.

Will this actually update partition 1 even if I'm on partition 2? I mean I tried the -F option with the OEM .img file from Linksys website and it broke partition 1, I can't even SSH to it. I'm willing to give it another shot with the older version available from OpenWrt wiki above (the one that contains another "not supported format" apparently) but wouldn't want to brick partition 2.

It is a round-robin when using sysupgrade; i.e. it goes to whatever partition is not current.

And it automatically reboots to that other partition? So I was already on partition 2 at the beginning? I'm skeptical, really.

That's what happened the first time before SSH disconnected, if that can help.

root@LEDE:~# sysupgrade -F /tmp/FW_WRT1900AC_1.1.10.187766_prod.img
Image metadata not found
Image check 'fwtool_check_image' failed but --force given - will update anyway!
Saving config files...
killall: watchdog: no process killed
Sending TERM to remaining processes ... logd rpcd netifd odhcpd uhttpd ntpd dnsmasq ubusd askfirst
Sending KILL to remaining processes ... askfirst
Switching to ramdisk...
Performing system upgrade...
Unlocking kernel1 ...

Writing from <stdin> to kernel1 ...
Upgrade completed
Rebooting system...
umount: can't unmount /dev/pts: Resource busy
umount: can't unmount /dev: Resource busy
umount: can't unmount /tmp: Resource busy

If you flash, the flash turns out to be bad, it fails to boot 3 times, it then reverts back to the other partition. This behaviour can be overridden by changing the uboot environment variables, but you have not done that(right).

There is a little command to find on which partition I am (currently it's #2). I changed it once to #1 and did a reboot to test partition 1 again and it didn't boot properly (well it does boot but Internet doesn't work, router isn't accessible from HTTP nor SSH). So I had to do the turn-on turn-off thing a couple of times, it switched back to partition #2 and is working.

root@LEDE:/tmp# fw_printenv boot_part
boot_part=2

If I do another sysupgrade, it needs to go on partition 1. Should I do this before?

fw_setenv boot_part 1

Something I have used for...

#!/bin/sh
#hacked from /lib/upgrade/linksys.sh

cur_boot_part=`/usr/sbin/fw_printenv -n boot_part`
target_firmware=""
if [ "$cur_boot_part" = "1" ]
then
    target_firmware="kernel2"
    fw_setenv boot_part 2
    fw_setenv bootcmd "run altnandboot"
elif [ "$cur_boot_part" = "2" ]
then
    target_firmware="kernel1"
    fw_setenv boot_part 1
    fw_setenv bootcmd "run nandboot"
fi
# re-enable recovery so we get back if the new firmware is broken
fw_setenv auto_recovery yes
echo "$target_firmware"
reboot

I understand what it does but I don't know where to put that, how to make sure it runs at startup on both partition, etc... I guess this is a little bit why I wanna go back, it's just so complicated overall.

I still didn't get any proper answer as to why the supplied OEM IMG from OpenWrt website isn't supported by their own GUI... I'm sure A LOT of people are bricking their router because of that alone, forced to go into SSH and force things when really they shouldn't.

I forced the update once already and thought the router was bricked afterwards... I would really like a simple solution here to revert back to the original FW without any risk.

It is just so wrong that this doesn't work as is. I will end up forcing it and having to buy a new router...

root@LEDE:/tmp# wget http://downloads.linksys.com/downloads/firmware/FW_WRT1900ACS_1.0.3.182461_prod.img
Downloading 'http://downloads.linksys.com/downloads/firmware/FW_WRT1900ACS_1.0.3.182461_prod.img'
Connecting to 52.216.102.2:80
Writing to 'FW_WRT1900ACS_1.0.3.182461_prod.img'
FW_WRT1900ACS_1.0.3. 100% |*******************************| 32000k  0:00:00 ETA
Download completed (32768256 bytes)
root@LEDE:/tmp# sysupgrade -n -v FW_WRT1900ACS_1.0.3.182461_prod.img
Image metadata not found
Use sysupgrade -F to override this check when downgrading or flashing to vendor firmware
Image check 'fwtool_check_image' failed.

I just did a sysupgrade without force with the default LEDE binary for my router and it installed it properly on partition #1. Partition #1 is working again... some good news finally. I guess I'll try to force that older img instead of the new one.

It worked forcing the image available from OpenWrt website (rather than the last one released last week). Not sure exactly why but it works now, I'm back to Linksys FW.

Now, I assume I still have 2 partitions (Linksys on partition 2 which is currently active, OpenWrt on partition 1)? I can't switch in command line from Linksys to OpenWrt I assume?

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.