Netgear D7800 sysupgrade: image is incompatible for sysupgrade

"The device is supported but this image is incompatible for sysupgrade based on the image version (1.0->2.0)"

I already installed 22.03.3 factory image via tftp, now I'm trying to upgrade from graphical interface to an image built with firmware-selector. Checksums are correct.
Sysupgrade via tftp doesn't work and I think that's expected (No firmware change). Factory via tftp doesn't work if I include more than a few packages and I don't know if that's expected.
Is it ok to force upgrade or am I risking to brick this device?
Thanks

Is the image you built a master snapshot?

1 Like

No snapshot, I'm just trying to install 22.03.3 built with firmware selector which includes a bunch of added packages.

Is the custom image bigger than the size of your flash memory on the device?

1 Like

D7800 has 128MB flash, 22.03.3 factory I built is 34,5MB, sysupgrade is 31,4MB.
I don't know exactly how to account for internal partitions but logging in I get:

root@OpenWrt:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00c80000 00020000 "qcadata"
mtd1: 00500000 00020000 "APPSBL"
mtd2: 00080000 00020000 "APPSBLENV"
mtd3: 00140000 00020000 "art"
mtd4: 00140000 00020000 "artbak"
mtd5: 00400000 00020000 "kernel"
mtd6: 06080000 00020000 "ubi"
mtd7: 00700000 00020000 "reserve"

try to flash the stable version and install the rest after

1 Like

I'll try, thanks. Here is screenshot now (factory built with firmware selector and a couple packages - "nano" and "less" if I remembre correctly)

but if radio is on and you are able to install package via opkg you can leave factory running.

1 Like

Anyway I always used stable versions.. 22.03.3

Yes but since I already know what I need I'd like to squish every package prebuilt in firmware.
I already have a Linksys 1900acs and I did that, maybe it's not possible with this device.

build a factory image with that you need and leave that run if you cannot use sysupgrade.

1 Like

Factory image won't install if it contains more than a couple additional packages. I don't know exactly what's the limit but there is definitely one. So maybe even if flash is 128MB there is a hardware limit..
but I don't know about kernel and partitions..

so maybe is the kernel partition, if so flash stable factory or sysupgrade and install all later.

i do not have this device so my are just options

1 Like

try to install factory default image.
Install via opkg all needed packages + luci-app-attendedsysupgrade
and the use it to get a complete image installed including all needed packages.

1 Like

So, I tftp-ed plain 22.03.2 factory image, then installed all needed packages, went for attended sysupgrade and opted to upgrade to 22.03.3. Browser downloaded image but got stuck at installing sysupgrade. So I switched to command line and I found out install always stops at the same point with various errors each time, like
Message too large (90)
Invalid argument (22)
Broken pipe (32)
https://paste.debian.net/1276079/

Edit:
Sorry, I was trying to upgrade behind the "other" router and their dhcp probably clashed. So I removed the other one and now I constantly get "Invalid argument (22)"

Edit2
This is what I found in /var/log/messages:

OpenWrt upgrade: Saving config files...
OpenWrt upgrade: The device is supported, but this image is incompatible for sysupgrade based on the image version (1.0->2.0).
OpenWrt upgrade: Sysupgrade does not work due to rootfs ubi partition size change. Use factory image with the TFTP recovery flash routine.

Here we go again.. should I
auc -f
If something goes wrong, will tftp still work?

screenshot2

No.
Sysupgrade will not work.

You have finally shown the complete error, which also tells to the reason and the cure.

OpenWrt upgrade: The device is supported, but this image is incompatible for sysupgrade based on the image version (1.0->2.0).
OpenWrt upgrade: Sysupgrade does not work due to rootfs ubi partition size change. Use factory image with the TFTP recovery flash routine.

As the partition sizes have needed to be changed, that has been indicated to you by toggling the compatibility flag from 1.0 to 2.0 and you are given advice.

Any sysupgrade image will not work. (compiled by you, auc, whatever..).

You need to do the initial installation with the factory image. Usually Netgear offer the TFTP routine in u-boot. You should use that.

And once you have used the OpenWrt factory image to get into the new partition scheme, you can sysupgrade to the image (with your packages) that you are now trying the create.

EDIT: After more reading, it sounds like you might just be missing the compatibility value in /etc/config/system

2 Likes

If you have already used the factory image to get over the change, then one possible reason is that you have restored an old backup, which has then overridden the compatibility flag in /etc/config/system and set it back to 1.0 (although it has already been 2.0).

1 Like

The culprit change has actually been already in Feb 2022.

Both 22.03.2 and 22.02.3 should contain the new partition size.
And you mtd sizes look ok when comparing to the current DTS.

1 Like

Thanks for your reply.
indeed I already tftp -ed standard 22.03.2 factory image to device and I didn't restore anything or at least nothing I know of. Also, there's no mention of compatibility flag in system

root@OpenWrt:~# cat /etc/config/system

config system
	option hostname 'OpenWrt'
	option timezone 'UTC'
	option ttylogin '0'
	option log_size '64'
	option urandom_seed '0'

config timeserver 'ntp'
	option enabled '1'
	option enable_server '0'
	list server '0.openwrt.pool.ntp.org'
	list server '1.openwrt.pool.ntp.org'
	list server '2.openwrt.pool.ntp.org'
	list server '3.openwrt.pool.ntp.org'

config led 'led_usb1'
	option name 'USB 1'
	option sysfs 'white:usb1'
	option trigger 'usbport'
	list port 'usb1-port1'
	list port 'usb2-port1'

config led 'led_usb2'
	option name 'USB 2'
	option sysfs 'white:usb2'
	option trigger 'usbport'
	list port 'usb3-port1'
	list port 'usb4-port1'

config led 'led_wan'
	option name 'WAN'
	option sysfs 'white:wan'
	option trigger 'switch0'
	option port_mask '0x20'

config led 'led_esata'
	option name 'eSATA'
	option sysfs 'white:esata'
	option trigger 'disk-activity'