by Mijzelf » Tue Aug 23, 2022 10:00 am
The stock kernel can't execute most binaries which are compiled for armv5/armv7, due to an incompatible memory scheme. One striking exception is the Debian version which is stock on that WD box. I was able to chroot it on my ZyXEL NAS540, but it's predecessor and successor couldn't. Don't know why that Debian version is an exception.
It is possible to build binaries for that kernel, by applying some linker flags (which I can't remember at the moment).
And yes, that .config is the kernel .config. I believe Mindspeed provided an SDK for that SoC, where the OEM could choose between 64k and 4k page sizes. 64k has as advantage that it's theoretically faster, as less memory management overhead is needed. But the disadvantage is that you are wasting more memory, and the number of available pages is also limited.
I think ZyXEL initially choose for 64kB pages, because of the filesystem size. An ext3 filesystem can handle at max 2^32 blocks. For some performance reason a block has to fit in a page. So with 4kB pagesize the size of an ext3 volume is limited to 16TiB. On an 4 disk NAS that is rather limiting. With 64kB pages the limit is 256TiB. Theoretically ext4 shouldn't have that 2^32 limit, but the implementation for that (more addressable blocks) was around kernel 3.2. I'm afraid this kernel is just too old for that. (Maybe only for Arm).
There must be other disadvantages for 64kB pages, as ZyXEL dropped them after about 2 years. Maybe the only reason was that they had meanwhile introduced another Armv7 NAS based on a Marvell Armada, and they wanted to share the packages.
BTW, I have read about that WD box that some people had problems to mount the data partition on another Linux box, which was caused by a blocksize >4kB. So maybe WD also had boxes with >16TB storage space? Which could be the reason to use 64kB blocks. Anyway, in case you (or another reader) ever has this problem, the remedy is to use a fuse implementation of ext3.