While upgrading to 24.10.0 on a Zyxel GS1800-8, I did a complete reinstall of OpenWRT due to the firmware partition change as indicated in the release notes. Everything was running fine. Now, while trying to update to 24.10.1, I get the same image check failure as in the previous update. However, in the relase notes, it is stated that the change only affects upgrades from OpenWrt 23.05 or earlier.
My assumption is that the compatibility version of my installation should be 2.0, but it isn't, and therefore the check fails.
How can I check the compatibility version of my installation?
How should I proceed? Force upgrade, or do the initramfs / sysupgrade update?
Should this be filed as a bug?
Zyxel GS1900-8 v2 devices have been produced more recently than v1
devices. As there are v1 boards with RTL8380M rev. C SoCs, it can likely
safely be assumed that all v2 devices will also have a recent SoC
revision, supporting the hardware auxiliary MDIO controller.
Make the GS1900-8 v1 use an emulated auxiliary MDIO bus, for backward
compatibility with devices containing an RTL8380M rev. A.
Since the devicetrees are otherwise identical, GS1900-8 v1 devices with
an RTL8380M rev. B or C will also be able to use the (more efficient) v2
image. This includes any currently functioning device with OpenWrt, so
include the old compatible as a supported device for the GS1900-8 v2.
It seems as if there is a check for compatibility according to the release notes:
"Users of Zyxel GS1900 series switches running OpenWrt 23.05 or earlier have to perform a new factory install with the initramfs image due to a changed partition layout. Sysupgrade will show a warning before doing an incompatible upgrade and is not possible."
But in my case (upgrade from 24.10.0, which should not be affected), something goes wrong.
I am not sure, but I think the reference to the commit regarding different hardware revisions is a red herring.
I think that either (1) installing the version 24.10.0 doesn't change the partition layout as described in the release notes, leading to a compatibility check fail, (2) the partition layout is changed, but some flag is not set correctly so that the check fails, or (3) the partition layout is changed and the flag is set correctly, but conditions in the check are wrong and the check therefore fails. But these are just assumptions. Of course, it could also be that (4) the release notes are not correct.
I come back to my initial questions:
How can I check the compatibility version of my installation?
How should I proceed? Force upgrade, or do the initramfs / sysupgrade update? Which version, v1 or v2?
Short question: Did you by any chance reapply the old configuration from a backup after the upgrade to 24.10.0? That was my first mistake while upgrading to the new version. The backup from the 23.05 release contains information about the compatibility and the upgrader now thinks you are still on v1 and not v2 (the flag is compat_version in /etc/config/system).
Thanks, @lgierth, that sounds very much like the situation I am in. Yes, I reloaded the old configuration file after installing 24.10.0. (How should I have known that this is a "bad idea"?)
I just checked, there is no compat_version variable in my /etc/config/system. Do you know by chance which value I should set the variable to manually, or can you please check your device and tell me the result?