Here's an update: the software write protection bits were not the whole problem; after installing some fairly large packages, the filesystem errors started again.
I have now built a new kernel which omits the SECT_4K flag for the sp25l128[05d,35e] entry in
spi-nor/macronix.c, and this seems to improve things; sysupgrade works (at least on a device that was not yet showing filesystem errors) and I was able to install some large packages without developing errors. There was some mikrotik discussion that inspired trying that.
This is using 22.03.2, with everything standard except the tweaks in macronix.c (so kernel 5.10.146)
Have to wait a while to see if that actually fixes things, I guess.
I think the best would be to buy a new device which is compatible to current versions.
But it's really difficult to find a smillar device that is a.) small and b.) has no ugly antennas..
(I just had installed the 21.x version on one device - it was running a long time [a few months], then, ony day, it has destroyed itself... then i was done some research and found that forum thread here...)
OK sure - I agree that might be less of an issue for you to handle/phantom.
Purely a suggestion, of the 5 I have in use, I've replaced one for a Netgear WAX202. The only reason it's replaced is to handle ans upgraded 1Gbps ISP connection. Otherwise,the device was still OK.
Edit: The WAX202 needs flow offloading enabled for 800+ Mbps speed - something that was never made open source for the Atheros switch chips capable of it, additionaly, the device was chosen for [low] power requirements too - as I run it off mains power using a solar/battery system.
It is not immediately clear from the Wiki, or even the discussion here and there and elsewhere just what the simplest way is when it comes to making an >19.07.10 image that will work reliably on the N750.
On the wiki there are links to default images for 22.03, and warnings they will not work.
In this thread the takeaway is to use an image without luci.
In the other thread, "small images" (without luci and other packages) are recommended.
In the bugreport, applying a PR and compiling with ztsd compressor support seems to be the preferred solution.
Also, jlpapple's discovery that an immediate EXTROOT build also works is floating around here and in the bugreport.
So yeah, it's not surprising people are confused.
I recall there once being a warning on the wiki that builds past 21.02-rc2 didn't work. As your results and Bradford's investigations strongly suggest there is some kind of kernel regression resulting in a locking error in the flash storage once a certain limit is reached, perhaps there should be a recommendation that firmware size should be less than SOME SIZE to work with necessary config space and no extra packages. Now both -rc2 and -rc3 are the same filesize at 5374270 bytes, but -rc1 was smaller at 5308734 bytes. Presumably whoever wrote that old wiki warning jumped from -rc1 to -rc3.
Personally, I used the Firmware Selector to make a 22.03.3 image without things like ppp, luci, dnsmasq, odhcpcd etc. (this is for a dumb AP) to get an image of 5243704 bytes. Using 428 1k-blocks in the /overlay, my longest uptime is 49 days, and I have not experienced squashfs errors over ~10 reboots.
However, when I added another ~300kb of text files to the router flash, squash errors popped up on reboot and I had to reflash.