[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openembedded-core
Subject:    [OE-core] [PATCH 2/2] kernel-initramfs: new recipe, creates initramfs bundled kernel packaging
From:       liu.ming50 () gmail ! com (Ming Liu)
Date:       2015-12-30 14:18:36
Message-ID: CALatG=5hCFEwNVJtd5Wv-aREN3VwyzL7rwmVRYM3=vuKikK6Xw () mail ! gmail ! com
[Download RAW message or body]

Hi,

I need do more work on this patch, and will send the V1 soon, please ignore
this for now.

//Ming Liu

2015-12-30 0:05 GMT+01:00 Ming Liu <liu.ming50 at gmail.com>:

> From: Ming Liu <peter.x.liu at external.atlascopco.com>
> 
> So far, there is not a workable way to package the initramfs bundled kernel
> image, the only place is tmp/deploy from where we could get it, but if a
> user want to add it into a certain image, there is no guarantee that he
> will achieve it because a explicit dependency is missing between package
> and bundle_initramfs, and this was designed to avoid introducing circular
> dependencies when using kernel modules in the initramfs image.bb that is
> caused by kernel.bbclass trying to build the initramfs before the kernel
> packaging.
> 
> To fix this problem, the idea is to split the initramfs bundled kernel
> packaging to a new recipe, make the do_install depend on kernel's deploy
> task, then with the following config:
> 
> IMAGE_INSTALL_append = "kernel-initramfs"
> 
> The initramfs bundled kernel could be added to the image without
> introducing any circular dependencies.
> 
> Signed-off-by: Ming Liu <peter.x.liu at external.atlascopco.com>
> ---
> meta/recipes-kernel/linux/kernel-initramfs.bb | 50
> +++++++++++++++++++++++++++
> 1 file changed, 50 insertions(+)
> create mode 100644 meta/recipes-kernel/linux/kernel-initramfs.bb
> 
> diff --git a/meta/recipes-kernel/linux/kernel-initramfs.bb
> b/meta/recipes-kernel/linux/kernel-initramfs.bb
> new file mode 100644
> index 0000000..481b142
> --- /dev/null
> +++ b/meta/recipes-kernel/linux/kernel-initramfs.bb
> @@ -0,0 +1,50 @@
> +SUMMARY = "Initramfs bundled kernel image"
> +DESCRIPTION = "When built, it packages a initramfs bundled kernel image
> of the \
> +preferred virtual/kernel provider."
> +
> +SECTION = "kernel"
> +
> +LICENSE = "GPLv2"
> +LIC_FILES_CHKSUM =
> "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
> +
> +inherit linux-kernel-base
> +
> +# Whilst not a module, this ensures we don't get multilib extended (which
> would make no sense)
> +inherit module-base
> +
> +S = "${STAGING_KERNEL_DIR}"
> +B = "${WORKDIR}/build"
> +
> +KERNEL_VERSION = "${@get_kernelversion_headers('${S}')}"
> +
> +PACKAGES = "kernel-initramfs"
> +FILES_${PN} = "/boot/${KERNEL_IMAGETYPE}*"
> +
> +PACKAGE_ARCH = "${MACHINE_ARCH}"
> +
> +# Skip processing of this recipe if INITRAMFS_IMAGE or
> INITRAMFS_IMAGE_BUNDLE
> +# is not set correctly, to avoid generate a single empty package which
> makes
> +# no sense.
> +python __anonymous () {
> +    if not d.getVar('INITRAMFS_IMAGE', True) or
> d.getVar('INITRAMFS_IMAGE_BUNDLE', True) != '1':
> +        raise bb.parse.SkipPackage("Set INITRAMFS_IMAGE and
> INITRAMFS_IMAGE_BUNDLE to enable it")
> +}
> +
> +# Need the output of deploy.
> +do_install[depends] += "virtual/kernel:do_deploy"
> +
> +# We only need the packaging tasks - disable the rest
> +do_fetch[noexec] = "1"
> +do_unpack[noexec] = "1"
> +do_patch[noexec] = "1"
> +do_configure[noexec] = "1"
> +do_compile[noexec] = "1"
> +do_populate_sysroot[noexec] = "1"
> +
> +do_install() {
> +       if [ ! -z "${INITRAMFS_IMAGE}" -a x"${INITRAMFS_IMAGE_BUNDLE}" =
> x1 ]; then
> +               echo "Copying initramfs bundled kernel image from
> ${DEPLOY_DIR_IMAGE}..."
> +               install -d ${D}/boot
> +               install -m 0644
> ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-initramfs-${MACHINE}.bin ${D}/boot
> +       fi
> +}
> --
> 1.9.1
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20151230/9cd0add4/attachment.html>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic