[OE-core] [PATCH 0/3] Introduces kernel-initramfs recipe to resolve a implicit dependency issue

Bruce Ashfield bruce.ashfield at windriver.com
Thu Jan 14 17:06:50 UTC 2016


Just bumping this review to let you know that I haven't forgotten
about it.

I've been looking at the details at least twice now, but haven't
managed to sort everything out.

I'll pick this up again shortly.

Bruce

On 16-01-05 08:12 AM, Ming Liu wrote:
> In current initramfs bundled kernel packaging policy, there are several
> dependency chains co-existing:
>
> | "core-image-minimal.do_build" -> "core-image-minimal.do_bundle_initramfs"
> | "core-image-minimal.do_bundle_initramfs" -> "virtual/kernel.do_bundle_initramfs"
> | "core-image-minimal.do_bundle_initramfs" -> "core-image-minimal.do_rootfs"
> | "core-image-minimal.do_rootfs" -> "virtual/kernel.do_package_write_${IMAGE_PKGTYPE}"
> | "virtual/kernel.do_package_write_${IMAGE_PKGTYPE}" -> "virtual/kernel.do_package"
> | "virtual/kernel.do_package" -> "virtual/kernel.do_install"
> |
> | "virtual/kernel.do_deploy" -> "virtual/kernel.do_bundle_initramfs"
> | "virtual/kernel.do_bundle_initramfs" -> "virtual/kernel.do_install"
>
> We could see, virtual/kernel.do_package is not explicitly depending on
> virtual/kernel.do_bundle_initramfs so far, therefore, there is not a
> workable way to add initramfs bundled kernel image into rootfs, because
> kernel's do_bundle_initramfs could run parallelly with its do_package,
> which means we will get a implicit kernel-image package that sometimes it
> contains the initramfs bundled kernel or sometimes it doesn't.
>
> To fix this problem, the idea is to let the initramfs bundled kernel
> packaging depend on do_bundle_initramfs, meanwhile, to avoid the circular
> dependency issue that commit: 609d5a9ab9e58bb1c2bcc2145399fbc8b701b85a
> [ kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling ]
>
> was trying to address, this dependency has to be splitted from kernel
> recipe(at least, I could not figure out another way to achieve it), so a
> new kernel-initramfs is introduced, in which a dependency chain is created:
>
> | "kernel-initramfs.do_install" -> "virtual/kernel.do_deploy"
> | "virtual/kernel.do_deploy" -> "virtual/kernel.do_bundle_initramfs"
>
> Then the users can add initramfs bundled kernel image into rootfs by:
>
> IMAGE_INSTALL_append = " kernel-initramfs"
>
> without introducing any circular dependencies.
>
> Ming Liu (3):
>    kernel.bbclass: do not install initramfs bundled kernel image
>    image.bbclass: removes bundle_initramfs related code
>    kernel-initramfs: new recipe, creates initramfs bundled kernel
>      packaging
>
>   meta/classes/image.bbclass                    | 11 -----
>   meta/classes/kernel.bbclass                   |  4 --
>   meta/recipes-kernel/linux/kernel-initramfs.bb | 69 +++++++++++++++++++++++++++
>   3 files changed, 69 insertions(+), 15 deletions(-)
>   create mode 100644 meta/recipes-kernel/linux/kernel-initramfs.bb
>




More information about the Openembedded-core mailing list