First, a quick recap. Some routers (in particular, those made by Linksys) have dual firmware layout (two boot partitions, each holding a copy of firmware). In the specific context of Linksys devices, these partitions are referred to as "current" (the one from which the device has booted) and "alternative" (the other one). They are also numbered 01
and 02
, but any of them can be current at any given time. OpenWrt can take advantage of that with a package called luci-app-advanced-reboot
, which allows the user to select a partition to reboot from.
Generally, when you update firmware on a dual-firmware router, new firmware is written onto the alternative partition; then, the device attempts to boot from that partition. If successful, that partition becomes current, and the other one, alternative.
Now, I just upgraded a Linksys device using auc
. First, I was pleasantly surprised that I was able to upgrade across releases (yay auc
!!!). The device was running a 22.something release, but gracefully upgraded to the current release in response to
auc -b 23.05 -B 23.05.4
auc
notified me that some packages would be replaced by others (if memory serves, it was all about replacing wolfssl
with wpad
). I said okay, so upgrade commenced and completed uneventfully.
And then, something interesting happened. It looks like the upgrade was carried out in-place, on the current partition. So my question is, was my impression correct? does auc
actually upgrade the current partition on a dual-firmware device, unlike sysupgrade
, which would write new firmware onto the alternative partition? Inquiring minds want to know...