<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="Windows Mail 17.5.9600.22013">
<style type="text/css"><!--html { font-family: "Color Emoji", "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; }--></style><style data-externalstyle="true"><!--
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
}
p.MsoNormal, li.MsoNormal, div.MsoNormal {
margin:0in;
margin-bottom:.0001pt;
}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst, 
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle, 
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
line-height:115%;
}
--></style>
</head>
<body dir="ltr">
<div data-externalstyle="false" dir="ltr" style="font-family: 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif';font-size:12pt;">
<div>Where do I put attached Python script, in my Linux not in the E3..?</div>
<div><br>
</div>
<div>So I do each file with it..?<br>
</div>
<div data-signatureblock="true">
<div><br>
</div>
<div>Spanner..</div>
<div><br>
</div>
</div>
<div style="padding-top: 5px; border-top-color: rgb(229, 229, 229); border-top-width: 1px; border-top-style: solid;">
<div><font face=" 'Calibri', 'Segoe UI', 'Meiryo', 'Microsoft YaHei UI', 'Microsoft JhengHei UI', 'Malgun Gothic', 'sans-serif'" style="line-height: 15pt; letter-spacing: 0.02em; font-family: "Calibri", "Segoe UI", "Meiryo", "Microsoft YaHei UI", "Microsoft JhengHei UI", "Malgun Gothic", "sans-serif"; font-size: 12pt;"><b>From:</b> <a href="mailto:noodles@earth.li" target="_parent">Jonathan
 McDowell</a><br>
<b>Sent:</b> ‎Thursday‎, ‎18‎ ‎April‎ ‎2019 ‎11‎:‎58<br>
<b>To:</b> <a href="mailto:e3-hacking@earth.li" target="_parent">Discussion of the Amstrad E3 emailer hardware/software</a></font></div>
</div>
<div><br>
</div>
<div dir="">
<div id="readingPaneBodyContent">On Wed, Apr 17, 2019 at 01:26:40PM +0000, Nick Griffin wrote:<br>
<br>
> Do you remember if you were able to mount the Cramfs and look at its<br>
> filesystem..?  What's Q;Q; blocks in flash, another files system…?<br>
> Can’t find any info on it, were you able to mount that too. So does it<br>
> have 2 partitions on mtd4 then..?<br>
<br>
You need to remember the E3 dates from a time when embedded Linux<br>
systems were a lot simpler, and the E3 was designed to be a low cost<br>
platform (even allowing for the subsidy). It doesn't have the sort of<br>
NAND setup seen on modern systems; it simply didn't have the resources.<br>
<br>
So, the MTD partitions do not directly map to a kernel or a Linux<br>
filesystem. The "Q;Q;" blocks are an Amstrad specific way of putting<br>
data into those partitions, with a type + description associated with<br>
each one. For example the kernel lives in a Q;Q; block in mtd3 called<br>
"LINUX". mtd3 also has Q;Q; blocks for LDR (the second stage boot<br>
loader), and PARMS (the kernel boot parameters).<br>
<br>
The CRAMFS filesystem is in mtd4; Q;Q; block name "LNXFSYS". There are 2<br>
of them (I imagine to allow for an active + fallback). There are various<br>
other bits of content in mtd4 too - you can see them by doing:<br>
<br>
 hexdump -C e3-nand-backup.4 | grep -A 1 "Q;Q;"<br>
<br>
Finally the nanddump files have 16 bytes of out of band (OOB) data per<br>
512 byte block, so if you want something that might be writable back to<br>
the flash you need to strip those out. The attached Python should do the<br>
trick:<br>
<br>
 nand-oob-strip e3-nand-backup.0 e3-nand.0<br>
<br>
will dump out e3-nand.0 with the OOB data stripped.<br>
<br>
J.<br>
<br>
-- <br>
    One-seventh of your life is    |  .''`.  Debian GNU/Linux Developer<br>
         spent on Monday.          | : :' :  Happy to accept PGP signed<br>
                                   | `. `'   or encrypted mail - RSA<br>
                                   |   `-    key on the keyservers.<br>
</div>
</div>
</div>
</body>
</html>