Retain configuration when upgrading from OpenWrt Backfire? (sysupgrade -c)

If upgrading from an old version like backfire which does not have the -c option available for the sysupgrade command, is there an alternative way to retain configurations?

I tried adding some entries to /etc/sysupgrade.conf but doesn't seem to be working, the command I am using to upgrade is: syupgrade -v {path}.

The problem is that these devices are scattered in different places and some of them have static IP for the LAN configuration and without this config they won't keep working and we're not able to upgrade these remotely.

There were breaking changes in the configuration between 15.05.x and 17.01 (less afterwards, but there are still some issues to be expected in the more peripheral components of OpenWrt between major stable releases) - and no one remembers the details about versions before that. Retaining the configuration from a seven year old -obsolete- release, and after 4 (almost 5) intermediate major stable releases simply isn't going to work (no, taking intermediate steps won't help you either).

For 2-3 devices at most (assuming you have an identical device at home), it might be conceivable to prepare readily configured firmware images by hand (which could be flashed without keeping settings, but are pre-configured with the individual needs of each device). This isn't going to be fun and would require considerable efforts on your end, but might make it easy enough to be successful (at least to a point where you could get in via VPN and do the remaining bits and pieces by hand). Supporting the most inner circle of family members this way might be an option.

With a larger set of similar devices, resolving to the mailman might be more reasonable. Ship them an updated/ manually pre-configured device they can replace their own device with (in some cases this might be an opportunity for a hardware upgrade as well) - and wait for the old one to show up in your mail, rinse and repeat until you're finished.

6 Likes

The settings breakage varies quite a lot by target/device. For many devices, there would be only minor difficulties, but some would softbrick. Typically it is about Linux evolvement, especially hardware handling (pci bus names etc.)

But the upstream related settings changes are only one side. The subtle, much harder, side is the gradual change in OpenWrt defaults and scripts, e.g. firewall, ipv6, DNS, QoS, etc. Lots of defaults have changed in 10 years. Trying to use the config files for more than just a reference of your personal changes (static IP, vlan, etc.), would be difficult.

The hardware upgrade angle is an important point. The 10-year old devices with 10.03 would likely be resource-constrained for the current OpenWrt. Selecting a new device type, cooking up the tailored firmware with the needed packages, and preconfiguring each router before shipping, might be the easiest process.

Ps.

It is actually "after 6 (almost7)"...

Starting from 10.03 backfire
-->
12.09 attitude adjustment
14.07 barrier breaker
15.05 chaos calmer
17.01
18.06
19.07
(almost 21.02)

4 Likes

Consider replacing the devices. You might be able to build a custom, drastically shrinked down image of a rather new openwrt version, though, as most likely your devices have 4MBflash, 32 MB RAM. Even then they might need special tweaking, because certain packages need some more RAM during start up.
Not worth the hassle.

Replacing the devices or have someone go there physically to reflash them and set the static IP again sounds like the only viable option.
Thanks for your responses.

One last question to all of you before giving up on this.

Do you confirm there's no way to retain any type of configuration when upgrading from an old version?
I just need to retain the static address of the LAN interface.

Not even by passing something to sysupgrade or by writing some specific config somewhere?
For example, in an extreme case, if retaining a script in /etc/uci-defaults would be possible, then the static ip could be rewritten by the uci-defaults script.

From a reasonably old version, such as 18.06.x upwards, yes (with some caveats) - from truly ancient ones such as yours, hell, no.

1 Like

Thank you for confirming what I supposed. If anyone else knows a way please let me know.

Funny you consider 18.06 old, hehe! But yea Backfire is really ancient and clearly obsolete.
It's not "mine" BTW, it's a network I inherited and I'm upgrading together with another person.

18.06 is over 2.5 years old by now, and over 4 months out of security support or any kind of maintenance. Meanwhile the world hasn't slept and found new security issues, which forced another security upgrade for the openwrt-19.07 branch in february - and is left unfixed in the EOLed openwrt-18.06 branch (among other things) - and 21.02.x is on the doorstep.

What would your definition of 'old' be?

  • old enough to go to school?
  • old enough to vote, drink or drive?
  • old enough for retirement?
  • old enough to bite the dust?

This is software, the only real metric would be how it fits into the release schedule.

  • is it still maintained
  • is there security support (admittedly, these first two are often the same)
    • are there known security problems (there are with 18.06.x, no need to talk about 10.03.x - pick and choose)
  • is it the most current stable release (-branch)
  • when's the next major version supposed to come up

There is considerable development going on all the time, in particular since ~2016, and with that change everywhere.

3 Likes

My advice is replace the hardware. One reason I like the RPi4 is you can ship people a $5 microSD with the latest version on it. No need to ship the whole device. Though you do need external APs.