On Wed, Apr 17, 2019 at 01:26:40PM +0000, Nick Griffin wrote:
Do you remember if you were able to mount the Cramfs and look at its filesystem..? What's Q;Q; blocks in flash, another files system…? Can’t find any info on it, were you able to mount that too. So does it have 2 partitions on mtd4 then..?
You need to remember the E3 dates from a time when embedded Linux systems were a lot simpler, and the E3 was designed to be a low cost platform (even allowing for the subsidy). It doesn't have the sort of NAND setup seen on modern systems; it simply didn't have the resources.
So, the MTD partitions do not directly map to a kernel or a Linux filesystem. The "Q;Q;" blocks are an Amstrad specific way of putting data into those partitions, with a type + description associated with each one. For example the kernel lives in a Q;Q; block in mtd3 called "LINUX". mtd3 also has Q;Q; blocks for LDR (the second stage boot loader), and PARMS (the kernel boot parameters).
The CRAMFS filesystem is in mtd4; Q;Q; block name "LNXFSYS". There are 2 of them (I imagine to allow for an active + fallback). There are various other bits of content in mtd4 too - you can see them by doing:
hexdump -C e3-nand-backup.4 | grep -A 1 "Q;Q;"
Finally the nanddump files have 16 bytes of out of band (OOB) data per 512 byte block, so if you want something that might be writable back to the flash you need to strip those out. The attached Python should do the trick:
nand-oob-strip e3-nand-backup.0 e3-nand.0
will dump out e3-nand.0 with the OOB data stripped.
J.