From: Saul Wold <sgw@linux.intel.com>
To: Yang Shi <yang.shi@windriver.com>,
bruce.ashfield@windriver.com,
openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/1] oe-core/kernel: Deploy KERNEL_ALT_IMAGETYPE and check it for uImage
Date: Thu, 28 Aug 2014 17:34:35 -0700 [thread overview]
Message-ID: <53FFCA9B.3060500@linux.intel.com> (raw)
In-Reply-To: <1405536132-31250-2-git-send-email-yang.shi@windriver.com>
On 07/16/2014 11:42 AM, Yang Shi wrote:
> Install, deploy and package KERNEL_ALT_IMAGETYPE and create kernel-alt-image
> package.
>
> Check if KERNEL_ALT_IMAGETYPE is empty or not. If KERNEL_ALT_IMAGETYPE is empty,
> just skip alt image install and deploy, otherwise it is failed to install/deploy
> because KERNEL_ALT_OUTPUT doesn't point to a real kernel image file.
>
> Check if KERNEL_ALT_IMAGETYPE is uImage in do_uboot_mkimage and adding
> u-boot-mkimage-native depend if it is uImage.
>
> Signed-off-by: Yang Shi <yang.shi@windriver.com>
> ---
> meta/classes/kernel.bbclass | 38 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 35 insertions(+), 3 deletions(-)
>
Seems this patch will need to be rebased to master, can you please
re-submit.
Thanks
Sau!
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index 6ed1cb7..1520079 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -13,7 +13,8 @@ INITRAMFS_IMAGE_BUNDLE ?= ""
>
> python __anonymous () {
> kerneltype = d.getVar('KERNEL_IMAGETYPE', True) or ''
> - if kerneltype == 'uImage':
> + kernelalttype = d.getVar('KERNEL_ALT_IMAGETYPE', True) or ''
> + if kerneltype == 'uImage' or kernelalttype == 'uImage':
> depends = d.getVar("DEPENDS", True)
> depends = "%s u-boot-mkimage-native" % depends
> d.setVar("DEPENDS", depends)
> @@ -74,6 +75,7 @@ KERNEL_EXTRA_ARGS ?= ""
> EXTRA_OEMAKE = ""
>
> KERNEL_ALT_IMAGETYPE ??= ""
> +KERNEL_ALT_OUTPUT ?= "arch/${ARCH}/boot/${KERNEL_ALT_IMAGETYPE}"
>
> # Define where the kernel headers are installed on the target as well as where
> # they are staged.
> @@ -200,6 +202,9 @@ kernel_do_install() {
> install -d ${D}/${KERNEL_IMAGEDEST}
> install -d ${D}/boot
> install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}
> + if [ "${KERNEL_ALT_IMAGETYPE}" != "" ]; then
> + install -m 0644 ${KERNEL_ALT_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_ALT_IMAGETYPE}-${KERNEL_VERSION}
> + fi
> install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
> install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}
> install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION}
> @@ -225,6 +230,7 @@ kernel_do_install() {
> #
>
> echo "${KERNEL_IMAGE_BASE_NAME}" >$kerneldir/kernel-image-name
> + echo "${KERNEL_ALT_IMAGE_BASE_NAME}" >$kerneldir/kernel-alt-image-name
>
> #
> # Copy the entire source tree. In case an external build directory is
> @@ -245,6 +251,9 @@ kernel_do_install() {
> # the same file. If hardlinking is used, they will be the same, and there's
> # no need to install.
> ! [ ${KERNEL_OUTPUT} -ef $kerneldir/${KERNEL_IMAGETYPE} ] && install -m 0644 ${KERNEL_OUTPUT} $kerneldir/${KERNEL_IMAGETYPE}
> + if [ "${KERNEL_ALT_IMAGETYPE}" != "" ]; then
> + ! [ ${KERNEL_ALT_OUTPUT} -ef $kerneldir/${KERNEL_ALT_IMAGETYPE} ] && install -m 0644 ${KERNEL_ALT_OUTPUT} $kerneldir/${KERNEL_ALT_IMAGETYPE}
> + fi
> install -m 0644 System.map $kerneldir/System.map-${KERNEL_VERSION}
>
> # Dummy Makefile so the clean below works
> @@ -342,10 +351,11 @@ EXPORT_FUNCTIONS do_compile do_install do_configure
>
> # kernel-base becomes kernel-${KERNEL_VERSION}
> # kernel-image becomes kernel-image-${KERNEL_VERISON}
> -PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-dev kernel-modules"
> +PACKAGES = "kernel kernel-base kernel-vmlinux kernel-image kernel-alt-image kernel-dev kernel-modules"
> FILES_${PN} = ""
> FILES_kernel-base = "/lib/modules/${KERNEL_VERSION}/modules.order /lib/modules/${KERNEL_VERSION}/modules.builtin"
> FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
> +FILES_kernel-alt-image = "/boot/${KERNEL_ALT_IMAGETYPE}*"
> FILES_kernel-dev = "/boot/System.map* /boot/Module.symvers* /boot/config* ${KERNEL_SRC_PATH}"
> FILES_kernel-vmlinux = "/boot/vmlinux*"
> FILES_kernel-modules = ""
> @@ -354,11 +364,13 @@ RDEPENDS_kernel = "kernel-base"
> # not wanted in images as standard
> RDEPENDS_kernel-base ?= "kernel-image"
> PKG_kernel-image = "kernel-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
> +PKG_kernel-alt-image = "kernel-alt-image-${@legitimize_package_name('${KERNEL_VERSION}')}"
> PKG_kernel-base = "kernel-${@legitimize_package_name('${KERNEL_VERSION}')}"
> RPROVIDES_kernel-base += "kernel-${KERNEL_VERSION}"
> ALLOW_EMPTY_kernel = "1"
> ALLOW_EMPTY_kernel-base = "1"
> ALLOW_EMPTY_kernel-image = "1"
> +ALLOW_EMPTY_kernel-alt-image = "1"
> ALLOW_EMPTY_kernel-modules = "1"
> DESCRIPTION_kernel-modules = "Kernel modules meta package"
>
> @@ -381,6 +393,14 @@ pkg_postrm_kernel-image () {
> update-alternatives --remove ${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
> }
>
> +pkg_postinst_kernel-alt-image () {
> + update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_ALT_IMAGETYPE} ${KERNEL_ALT_IMAGETYPE} /${KERNEL_IMAGEDEST}/${KERNEL_ALT_IMAGETYPE}-${KERNEL_VERSION} ${KERNEL_PRIORITY} || true
> +}
> +
> +pkg_postrm_kernel-alt-image () {
> + update-alternatives --remove ${KERNEL_ALT_IMAGETYPE} ${KERNEL_ALT_IMAGETYPE}-${KERNEL_VERSION} || true
> +}
> +
> PACKAGESPLITFUNCS_prepend = "split_kernel_packages "
>
> python split_kernel_packages () {
> @@ -437,6 +457,10 @@ KERNEL_IMAGE_BASE_NAME ?= "${KERNEL_IMAGETYPE}-${PKGE}-${PKGV}-${PKGR}-${MACHINE
> # Don't include the DATETIME variable in the sstate package signatures
> KERNEL_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
> KERNEL_IMAGE_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${MACHINE}"
> +KERNEL_ALT_IMAGE_BASE_NAME ?= "${KERNEL_ALT_IMAGETYPE}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
> +# Don't include the DATETIME variable in the sstate package signatures
> +KERNEL_ALT_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
> +KERNEL_ALT_IMAGE_SYMLINK_NAME ?= "${KERNEL_ALT_IMAGETYPE}-${MACHINE}"
> MODULE_IMAGE_BASE_NAME ?= "modules-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
> MODULE_IMAGE_BASE_NAME[vardepsexclude] = "DATETIME"
> MODULE_TARBALL_BASE_NAME ?= "${MODULE_IMAGE_BASE_NAME}.tgz"
> @@ -445,7 +469,7 @@ MODULE_TARBALL_SYMLINK_NAME ?= "modules-${MACHINE}.tgz"
> MODULE_TARBALL_DEPLOY ?= "1"
>
> do_uboot_mkimage() {
> - if test "x${KERNEL_IMAGETYPE}" = "xuImage" ; then
> + if test "x${KERNEL_IMAGETYPE}" = "xuImage" or "x${KERNEL_ALT_IMAGETYPE}" = "xuImage"; then
> if test "x${KEEPUIMAGE}" != "xyes" ; then
> ENTRYPOINT=${UBOOT_ENTRYPOINT}
> if test -n "${UBOOT_ENTRYSYMBOL}"; then
> @@ -471,6 +495,9 @@ addtask uboot_mkimage before do_install after do_compile
>
> kernel_do_deploy() {
> install -m 0644 ${KERNEL_OUTPUT} ${DEPLOYDIR}/${KERNEL_IMAGE_BASE_NAME}.bin
> + if [ "${KERNEL_ALT_IMAGETYPE}" != "" ]; then
> + install -m 0644 ${KERNEL_ALT_OUTPUT} ${DEPLOYDIR}/${KERNEL_ALT_IMAGE_BASE_NAME}.bin
> + fi
> if [ ${MODULE_TARBALL_DEPLOY} = "1" ] && (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
> mkdir -p ${D}/lib
> tar -cvzf ${DEPLOYDIR}/${MODULE_TARBALL_BASE_NAME} -C ${D} lib
> @@ -480,6 +507,11 @@ kernel_do_deploy() {
> ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_IMAGE_SYMLINK_NAME}.bin
> ln -sf ${KERNEL_IMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_IMAGETYPE}
>
> + if [ "${KERNEL_ALT_IMAGETYPE}" != "" ]; then
> + ln -sf ${KERNEL_ALT_IMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_ALT_IMAGE_SYMLINK_NAME}.bin
> + ln -sf ${KERNEL_ALT_IMAGE_BASE_NAME}.bin ${DEPLOYDIR}/${KERNEL_ALT_IMAGETYPE}
> + fi
> +
> cp ${COREBASE}/meta/files/deploydir_readme.txt ${DEPLOYDIR}/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
>
> cd ${B}
>
next prev parent reply other threads:[~2014-08-29 0:34 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-16 18:42 [PATCH 0/1 V2] Fix KERNEL_ALT_IMAGETYPE deploy Yang Shi
2014-07-16 18:42 ` [PATCH 1/1] oe-core/kernel: Deploy KERNEL_ALT_IMAGETYPE and check it for uImage Yang Shi
2014-08-29 0:34 ` Saul Wold [this message]
2014-08-20 21:25 ` [PATCH 0/1 V2] Fix KERNEL_ALT_IMAGETYPE deploy Yang Shi
2014-08-21 4:21 ` Bruce Ashfield
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53FFCA9B.3060500@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=bruce.ashfield@windriver.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=yang.shi@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox