To be safe, I replace fw_*env with the (mender config’d) u-boot version during mender package installation.
It is a bit odd that if you do this, that you do not get a matching default environment when you run fw_printenv
.
Is there a “bad CRC” variable?
Not that I am aware of. Note that “bad CRC” is also equal to “empty” environment.
This is why I suggested to create a such a variable that is not part of the default environment, and is only available when the environment has been saved.
Another approach is to (dd) write the default environment to flash during build. Do you think this is a good idea for mender (in general) default behavior?
This has always been a pain point, the need to synchronize U-boot and the tools. But for now anything goes, we make sure that U-boot and fw_setenv/fw_getenv environment have the same default built-in in Yocto and then it is not a problem and there is no need to “pre flash” it.
There are some solutions that are in the works that should remedy this, e.g this one (still early stage but the idea is to solve this problem)
https://groups.google.com/forum/#!searchin/swupdate/libubootenv|sort:date/swupdate/2wcIyfexOro/iADiuQRtBQAJ
/boot contains boot.scr, dtb, uImage for booting selected partition
You normally put boot.scr
on the boot partition (if it required by your board), that is /uboot or /dev/mmcblk0p1
/uboot has boot partition (/dev/mmcblk0p1) mounted for mender purposes
Mender has no purposes with above and this is only needed if your board requires this.
/data is mender (and general) persistent storage, survives updates. /dev/mmcblk0p4 mount point.
Yes
- I note (kernel command line) that root=/dev/nfs, which does not exist. What should root= for /dev/mmcblk0pX
You want the root=
argument to be,
root=${mender_kernel_root}
This way mender_setup
makes sure that the correct partition is booted.
and, do I need to (somehow) specify /boot?
Unclear what you mean with this.