Yes, you run it on a proper Linux box, not the E3. The script isn't going to magically fix anything, but it'll turn the dumps that include OOB information into dumps without OOB information that might help you do some sleuthing about their contents.
On Thu, Apr 18, 2019 at 12:52:37PM +0000, Nick Griffin wrote:
Where do I put attached Python script, in my Linux not in the E3..?
So I do each file with it..?
Spanner..
From: Jonathan McDowellmailto:noodles@earth.li Sent: Thursday, 18 April 2019 11:58 To: Discussion of the Amstrad E3 emailer hardware/softwaremailto:e3-hacking@earth.li
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.