- In yocto-2.3.2 to create initramfs image with IMAGE_FSTYPES = "cpio.lz4.u-boot" resulted in ERROR: When reparsing .../images/my_image_recipe.bb.do_image_cpio, the basehash value changed from f58c1df3d5d9c4828fa93897760378a2 to 4b41270a04a07df4476ef4f6767958ac. The metadata is not deterministic and this needs to be fixed. - By resorting to post-yocto-2.3.2 commit: <https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?h=pyro&id=717303e6fbcbbe181ad9645d762eb5a85d934523>, above error was encountered no longer -- however, it still results in non-functional image artifact. More specifically, during target device boot-up process, when it's time for kernel to mount initramfs rootfs, the following line is printed in console: RAMDISK: Couldn't find valid RAM disk image starting at 0. - Looking into the issue, I noticed that in yocto-2.3.2, the "non-legacy" command pair: "CONVERSION_CMD_lz4 ; CONVERSION_CMD_u-boot" was executed between bitbake operations occasionally before the "legacy" command: "CONVERSION_CMD_lz4.u-boot" and occasionally after in do_image_cpio, apparently resulting in non-deterministic metadata error. ("non-legacy" and "legacy" here refer to same set of commands with the exception that in former, lz4's -l switch is omitted, and in latter, -l is included.) After commit 717303e6fbcbbe181ad9645d762eb5a85d934523, the "legacy" command is executed consistently before "non-legacy" command, resulting in image unusable by Linux kernel. Apparently for lz4 compressed initramfs generation, only legacy lz4 format should be used (ie. CONVERSION_CMD_lz4.u-boot, which internally resorts to CONVERSION_CMD_lz4_legacy). The generated initramfs artifact becomes bootable/usable by removing superfluous "non-legacy" initramfs generation from do_image_cpio function by following override: CONVERSION_CMD_lz4 = " " CONVERSION_CMD_u-boot = " "
image_type_uboot.bbclass removed in http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/meta/classes?id=e18cec750b51267d9c130b395c7a53585f4ae7ac so master may not be affected?
Question: I have a built cpio.lz4.u-boot for beaglebone black to check and see if this issue also occurs on master. Are there instructions anywhere for how to set up the beaglebone using the compressed rootfs (aka cpio.lz4.u-boot) ? Other ways to verify welcome as well.
In yocto-2.4 it seems that (at least for me) issues still remain with IMAGE_FSTYPES = "cpio.lz4.u-boot", ie. generated image results in "RAMDISK: Couldn't find valid RAM disk image starting at 0.". Apparently non-legacy CONVERSION_CMD_lz4 is used by default. A working image can be generated by issuing following override: CONVERSION_CMD_lz4 = "${CONVERSION_CMD_lz4_legacy}"
A reminder that bug 12461 is related.
updates SCR_URI
(In reply to comment #5) > updates SCR_URI sorry. wrong bug. this auto next feature is annoying
http://lists.openembedded.org/pipermail/openembedded-core/2018-March/148670.html
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=f6f688842bc79e26ced18a2d654f06ea9c3961cd