[OE-core] [PATCH oe-core v6] linux-dtb: add multi-dtb build support and keep dtb in deploy cache package

Luo Zhenhua-B19537 B19537 at freescale.com
Tue Jun 26 03:36:43 UTC 2012


Saul, 

In this patch, dtb files are installed into ${D} and ${DEPLOYDIR} by kernel_do_deploy, there is a race issue of do_deploy and do_package.

"do_package" runs before dtb are installed into ${D}, so there is no dtb in /boot/devicetree/ and kernel-devicetree binary package is not generated due to empty content.

I will send out a patch to do ${D} install and ${DEPLOYDIR} install in separated steps: do_install and do_deploy. 


Best Regards,

Zhenhua


> -----Original Message-----
> From: Saul Wold [mailto:sgw at linux.intel.com]
> Sent: Tuesday, January 10, 2012 1:43 PM
> To: Patches and discussions about the oe-core layer
> Cc: Luo Zhenhua-B19537
> Subject: Re: [OE-core] [PATCH oe-core v6] linux-dtb: add multi-dtb build support
> and keep dtb in deploy cache package
> 
> On 01/08/2012 07:37 PM, b19537 at freescale.com wrote:
> > From: Zhenhua Luo<b19537 at freescale.com>
> >
> > Signed-off-by: Zhenhua Luo<b19537 at freescale.com>
> > ---
> >   meta/recipes-kernel/linux/linux-dtb.inc |   24 +++++++++++++++---------
> >   1 files changed, 15 insertions(+), 9 deletions(-)
> >
> > diff --git a/meta/recipes-kernel/linux/linux-dtb.inc b/meta/recipes-
> kernel/linux/linux-dtb.inc
> > index 7ec7584..fc29d14 100644
> > --- a/meta/recipes-kernel/linux/linux-dtb.inc
> > +++ b/meta/recipes-kernel/linux/linux-dtb.inc
> > @@ -13,15 +13,21 @@ python __anonymous () {
> >   	d.setVar("PACKAGES", "%s kernel-devicetree" % packages)
> >   }
> >
> I am not sure how this worked, I am seeing a problem with building rootfs.
> |
> 
> kernel-devicetree is needed by
> kernel-modules-
> 3.0.14+git1+6ae3d992cf546184010e87a0349810198f1d167c_1+58ffdb8000e34d2ba7c3ef278
> b26680b0886e8b5-r2.mpc8315e_rdb
> 
> This might be a PR Bump issue?
> 
> Sau!
> 
> > -do_install_append() {
> > +kernel_do_deploy_append() {
> >       if test -n "${KERNEL_DEVICETREE}"; then
> > -	dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree
> ${KERNEL_DEVICETREE}
> > -	install -m 0644 devicetree ${D}/boot/devicetree-${KERNEL_VERSION}
> > -	install -d ${DEPLOY_DIR_IMAGE}
> > -	install -m 0644 devicetree
> ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.dtb
> > -	cd ${DEPLOY_DIR_IMAGE}
> > -	rm -f ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
> > -	ln -sf ${KERNEL_IMAGE_BASE_NAME}.dtb ${KERNEL_IMAGE_SYMLINK_NAME}.dtb
> > +        for DTS_FILE in ${KERNEL_DEVICETREE}; do
> > +            DTS_BASE_NAME=`basename ${DTS_FILE} | awk -F "." '{print $1}'`
> > +            DTB_NAME=`echo ${KERNEL_IMAGE_BASE_NAME} | sed
> "s/${MACHINE}/${DTS_BASE_NAME}/g"`
> > +            DTB_SYMLINK_NAME=`echo ${KERNEL_IMAGE_SYMLINK_NAME} | sed
> "s/${MACHINE}/${DTS_BASE_NAME}/g"`
> > +            dtc -I dts -O dtb ${KERNEL_DEVICETREE_FLAGS} -o devicetree
> ${DTS_FILE}
> > +            install -m 0644 devicetree ${D}/boot/devicetree-${DTS_BASE_NAME}-
> ${KERNEL_VERSION}
> > +
> > +            install -d ${DEPLOYDIR}
> > +            install -m 0644 devicetree ${DEPLOYDIR}/${DTB_NAME}.dtb
> > +            rm -f devicetree
> > +            cd ${DEPLOYDIR}
> > +            ln -sf ${DTB_NAME}.dtb ${DTB_SYMLINK_NAME}.dtb
> > +            cd -
> > +        done
> >       fi
> >   }
> > -






More information about the Openembedded-core mailing list