github wilbowes/EchoMuse emos-v0.3
emOS emos-v0.3

3 hours ago

emOS 0.3

Keeps routine logging off the flash, and makes the flash's own wear readable.

The network log lived on the eMMC, unbounded

net.log was on /data and appended with no bound — and not only its own lines:
spawn() points every child's stdout and stderr there, so wmt_loader,
wpa_supplicant, dhcpcd, ntpd and the five-second wpa_cli nudge all wrote to
flash through it. A device that cannot join its network wrote to the eMMC every
five seconds for ever, in exactly the failure state where nobody is watching.

It now lives on /run, the tmpfs whose own comment says it exists so routine
logging never touches the eMMC — this was the one log that did not use it.
Capped at 128KB with one rotation. The cost is that it does not survive a
reboot, which is the right trade: it answers "why is the network not up NOW",
read over the console while the device is running, and a crash spanning a
reboot is what the last_kmsg copies are for.

Everything else that writes to /data was swept and is already bounded or writes
only on change, including boot-good.img, which compares the boot header's SHA1
image id rather than the size.

debugfs is mounted, so the eMMC reports its wear

The flash carries PRE_EOL_INFO and two life-time estimates in its Extended CSD.
On this kernel the only route to them is
/sys/kernel/debug/mmc0/mmc0:0001/ext_csd — the generic sysfs attributes are a
Linux 4.9 addition and 3.18 has neither, and Samsung's vendor samsung_smart
answers "version 0, error mode: Invalid".

Without the mount that directory is empty, so the health of the part we write
to was unreadable on the OS doing the writing.

Requires a reflash to take effect: this is in the boot image, not the
controller.

What's Changed

  • Say WHERE the packer could not reproduce a boot image by @wilbowes in #456
  • Do not require a boot image's id to reproduce, and check the escrow's md5 by @wilbowes in #457
  • Reuse the reference's MTK kernel header instead of guessing its padding byte by @wilbowes in #458
  • Ask whether the device connected, and roll a bad network back by @wilbowes in #460
  • Wait for the device to REGISTER, which is not the same as connecting by @wilbowes in #461
  • Keep the network log in RAM, and bound it by @wilbowes in #462

Full Changelog: emos-v0.2...emos-v0.3

Don't miss a new EchoMuse release

NewReleases is sending notifications on new releases.