I have a Dynalink DL-WRX36 running a snapshot from early April last year, SNAPSHOT r23797-ff2379662c, that I would now like to upgrade to 24.10.0, while maintaining its configuration (because the router and I are separated by several hours driving).
It's on the correct platform, qualcommax/ipq807x, so I had hoped I would be able to simply use ASU. However, when I had a trial run, I was only offered another snapshot. Which means I would need to use auc and force the target branch / release. Dry-running that shows lots of package changes and several missing packages in the new target, which leaves me suspicious of my chances of success.
So at this point I think my best approach is to build a new 24.10.0 firmware with the Firmware Selector, but including the additional packages that I had installed in the snapshot (to support a USB LTE stick, Wireguard, ASU etc) and remotely install that, while somehow preserving my configuration.
I was able to successfully build that image with all the modules I think I need.
What I don't know, and haven't been able to find in the docs, is a simple explanation / example of how to remotely flash that image, while retaining all my router configuration. I did find this description of the sysupgrade command in the technical documentation, but frankly I'm still confused.
Can anyone give me a step-by-step set of instructions please?
Yes, I understand that. That's what I'm asking if anyone has any step-by-step instructions for. The problem is that once I trigger the update, I will lose connectivity to the router, so I will need the update process to ensure that configuration is maintained, so that on restart (with the updated firmware) the configuration is used to re-establish the routers connectivity.
No, I agree it's not an ideal situation. But I can either try remotely, or drive to it and try it locally. Kind of feel like its a free throw of the die to see if I can do it remotely first, and save myself the travel.
The issue for me is understanding how to preserve the configuration of the networks and the wireguard site-to-site VPN across the reflash. In the past ASU has managed all that for me, but now I need to do it manually (see 1st post), and if I cant work out how then I'll end up with a reflashed router, but no way for it to connect to either the internet, or me via its VPN.
A regular sysupgrade keeps all the configuration files but it will not automatically install any necessary packages. That is the difference with asu-- it makes a custom build including copying the set of installed packages* which in your case are necessary for Wireguard and LTE. Since you're doing that manually it should get the packages in. The main problem with moving between major versions is that some configuration syntax may have changed and simply keeping the config files will break it.
To be clear, despite the previous sentence, asu does not parse the config files to analyze which packages may be necessary to run the configured setup. It uses opkg list-installed to find what is installed on the system before upgrade, whether or not those are necessary.
To me it sounds like you are going from "April 2024 snapshot" to 24.10.0, which is pretty much "October 2024 snapshot" plus further tweakings.
24.10.0 kept opkg, while main/master snpshots have moved to apk package manager
I do not remember that there would have been any critical config change for DL-WRX36 in that time, so likely you are ok if you just get the right packages included in the image.
Like mk24 says, the default sysupgrade keep settings, so it is mostly about including the necessary packages for the connectivity. (Other packages you could then install with opkg to the live router.)
I also went off and read the sysupgrade code, which resolved some of the questions I'd had, and corroborated exactly what you wrote above.
So I took a full backup via LUCI (just in case!) and verified its contents to make sure that if anything goes wrong, I can still recover the configuration manually later. The wireguard keys were my primary concern.
I then scp'd the firmware I built using the Firmware selector over to the router, checked the sha256, and ran sysupgrade:
root@router.dev.lan:/tmp# sha256sum /tmp/openwrt-24.10.0-399f5243f19b-qualcommax-ipq807x-dynalink_dl-wrx36-squashfs-sysupgrade.bin
ca8aa71476a140b7794b2a9fe036ebb0a06acad05bececced4777c7af1802cb3 /tmp/openwrt-24.10.0-399f5243f19b-qualcommax-ipq807x-dynalink_dl-wrx36-squashfs-sysupgrade.bin
root@router.dev.lan:/tmp# /sbin/sysupgrade /tmp/openwrt-24.10.0-399f5243f19b-qualcommax-ipq807x-dynalink_dl-wrx36-squashfs-sysupgrade.bin
Sun Feb 9 16:42:40 GMT 2025 upgrade: Saving config files...
Sun Feb 9 16:42:40 GMT 2025 upgrade: Commencing upgrade. Closing all shell sessions.
Command failed: Connection failed
root@router.dev.lan:/tmp# Connection to router.dev.lan closed by remote host.
Connection to router.dev.lan closed.
But sadly that was the last I've heard from it, so I fear I didn't get all the necessary packages added to the image. It's been an hour now, and the wireguard tunnel is still down, so I guess I get to go for a drive tomorrow!
Thanks again to everyone for your help and advice. At least I now know how sysupdate is supposed to work
This is probably too late now but I normally upgrade by building a firmware using the image builder to include all my installed packages. I execute this command to see what is currently installed:
Thanks @konus - I did look at doing that too, but I was a long way back on the snapshot, and there were quite a few packages in the existing firmware for which there was no matching package in 24.10. My bet is that the configuration is all fine, but the LTE modem hasn't come up because I'm missing some minor package somewhere. Hopefully it will be easy enough to debug once I can plug my laptop in and see the logs.
So, a later report than expected, because stuff happens, and I couldn't get over to look at the DL-WRX36 until today.
The good news - the router had updated perfectly with the 24.10.0 code, into which I had baked the extra packages I thought needed. Local network and WiFi was up and running - but no internet connection.
The reason for that is that the router is connected to the internet by a 4G cellular connection using an RNDIS compliant modem (an Alcatel IK40V), and sometime between the April 2024 snapshot I had been running and the 24.10.0 version I updated to, the name of the device that the kmod-usb-net-rndis code produces appears to have changed. For me it used to be "usb0" but is now "eth0".
Naturally this broke the network config that I'd preserved across the reflash (because the interface no longer had a valid device name) and so that was game over for Internet connectivity. But on the upside, it was trivial to find the problem, and less than a minute to fix it. Just a shame about the 4 hour round trip to do that!
Anyway, I don't know whether this is expected behaviour or something I should report as a bug, either against kmod-usb-net-rndis or 24.10.0 ... can anyone guide me on that please?