Linksys WRT3200ACM & 21.02.0-RC1 popup message

Pardon my ignorance - But i downloaded the new 21.02.0-RC1 today for the WRT3200ACM via the file named openwrt-21.02.0-rc1-mvebu-cortexa9-linksys_wrt3200acm-squashfs-sysupgrade - Went to perform the upgrade from version 19.07.7 and received the following message in a popup after uploading.

"Device linksys,rango not supported by this image Supported devices: linksys,wrt3200acm armada-385-linksys-rango linksys,rango - Image version mismatch: image 1.1, device 1.0. Please wipe config during upgrade (force required) or reinstall. Reason: Config cannot be migrated from swconfig to DSA Image check failed. The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform."

I have no problem resetting the configuration at all - But I'm confused about the message. Since it indicates the WRT3200ACM is not supported by the image in the first sentence - Then indicates in the second sentence it only supports armada....Rango - Which essentially contradicts the first sentence.

Is it safe to proceed and do i have to select the force option at the bottom to upgrade?

Greatly appreciate the feedback and I would rather ask first rather then bricking the router.

If you had waited for the official (rc-) release notes/ changelog, I would have expected them to contain a notice about this issue.

That is the expected result, the new switch configuration necessary for the DSA switch subsystem differs significantly from the one previously used with swconfig (please read up about the details) before. If you don't discard the old configuration over the sysupgrade, you'd end up with a soft-bricked device, needing a factory reset.

While that might be misleading, it's still the only way to teach an old dog new tricks. The sysupgrade is commenced by the sysupgrade tools present on your currently running OpenWrt version, which has no idea about this config manual migration - so an existing feature had to be used to prevent a careless upgrade. As there's no way to time-travel and add this new functionality to past releases retroactively, this will have to do.

The procedure in short (more detailed explanations can be found here or on the wiki):

  • sysupgrade -Fn /tmp/openwrt-YOUR_DEVICE-sysupgrade.bin
    -F | --force: Flash image even if image checks fail, this is dangerous!
    -n: do not save configuration over reflash

or the equivalent in luci (force and discard old config).

WARNING: --force disables (almost) all image checks, so make 100% sure that what you're uploading is indeed the correct firmware for your device (correct device and sysupgrade image, NOT factory, nor initramfs).

5 Likes

Greatly appreciate the insightful information - I canceled out of the upgrade process yesterday until confiding with the forum.

do you know which file is changing because of the DSA? i want to restore the old configuration (aka 19.07 config), but exclude the SDA config that deal with the switches etc... ?

is it the /etc/config/network that is changed, the rest is ok? (if i restore the config)

There are new users/groups added to passwd/shadow/group, so you'll have to skip those files in restoring config and let the defaults from /rom take over. I'd also skip restoring /etc/config/{luci,uhttpd,rcpd,system,ubootenv,ucitrack}. I'd manually check every file in the /etc directory, as you might run into something that will prevent the device from working or even booting without using failsafe mode.

The way I migrated to 21.02 is by doing a sysupgrade without saving config, dumping the new default config to a separate .tar.gz file and then extracting both my old (19.07) and new (21.02) configurations to separate directories.

I then do a diff between the old/new directories and see what can be moved directly (mostly certain files in /etc/config related to services that haven't changed config syntax). I make another copy of the new 21.02 config dump as a separate folder, in which I then move configuration files, merge/fix/modify configuration differences and make sure there aren't any changes in permissions from the default configuration files. If you run into anything you're not sure about, just leave the new 21.02 defaults and reconfigure it by using your old config as a guide.

My folder structure looks like this:

  • etc-19.07 (read-only, copy your existing configuration from this folder)
  • etc-21.02-default (read-only, base for comparison, base for etc-new)
  • etc-new (migrate old configuration here, modify or leave as default depending on what's changed)

After that I make a new .tar.gz from etc-new, and verify that the .tar file is structured similarly as the ones LUCI makes when exporting config. No folders in the .tar archive, permissions set correctly, etc. If you have symbolic links, you'll have to append their filenames manually in the tar command before {}.

sudo chown -Rv root. etc-new/
sudo find etc-new/ -type f -exec tar cvpaf etc-new.tar.gz {} '+'

I'm skipping out the fact that you'll probably have to manually write your new VLAN/Switch configuration per the DSA syntax. There is no support for it in LUCI in 21.02-rc1. It's possible wireless devices might have new device UUIDs that will have to be changds per what you see in the new default config. Unless you have a lot of services or manual changes in your 19.07 install, it might be simpler and less time consuming to just blow everything away and manually configure everything via LUCI/SSH by using your old config dump as a guide.

Other ways to do this that come to mind:

  • Sysupgrading without keeping config, using SSH/SCP to copy files over into /etc/config one by one and overwriting/merging config changes where necessary and rebooting constantly to see if your changes are stable. Failsafe mode/firstboot is your friend if anything goes wrong. Test that you can access failsafe mode before trying any of this.

  • Starting from a first boot/sysupgrade without keeping config state and restoring a .tar.gz archive from which you removed files you know will cause a conflict like /etc/{passwd,shadow,group}, so the good defaults aren't replaced by the conflicted 19.07 version. Again, make sure you know how failsafe/firstboot works.

1 Like

Documenting here the answer that I gave to you on the other thread:

For the mvebu WRTxxxACx routers, you need changes to to /etc/config/system and /etc/config/network.
You shouldn't sysupgrade with those files in place. (and you can't restore them from old backups)

Ps.
The recommendation is to sysupgrade without settings, but a quick-and-dirty approach is to remove /etc/config/network and /etc/config/system before sysupgrade and keep the other settings. Those two will be re-generated at the first boot with the new firmware, so you get the new defaults. (E.g. renaming those to network.old and system.old before sysupgrade is sufficient. That has worked nicely for me with R7800 kernel 5.10 DSA testing)

4 Likes

hnyman yes, deleting the system and network configs, it regenerates the switch configs and etc and it works properly and simply.