| Submitter | Zhenhua Luo |
|---|---|
| Date | Jan. 9, 2012, 3:37 a.m. |
| Message ID | <1326080274-1998-1-git-send-email-b19537@freescale.com> |
| Download | mbox | patch |
| Permalink | /patch/18785/ |
| State | Superseded |
| Headers | show |
Comments
On 01/08/2012 07:37 PM, b19537@freescale.com wrote: > From: Zhenhua Luo<b19537@freescale.com> > > Signed-off-by: Zhenhua Luo<b19537@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+58ffdb8000e34d2ba7c3ef278b26680b0886e8b5-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 > } > -
> -----Original Message----- > From: Saul Wold [mailto:sgw@linux.intel.com] > Sent: Tuesday, January 10, 2012 1:43 PM > > @@ -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? [Luo Zhenhua-B19537] I didn't meet such issue during my build, do we need to add a PR in linux-dtb.inc to solve this issue? Best Regards, Zhenhua
On Tue, Jan 10, 2012 at 12:25 AM, Luo Zhenhua-B19537 <B19537@freescale.com> wrote: >> -----Original Message----- >> From: Saul Wold [mailto:sgw@linux.intel.com] >> Sent: Tuesday, January 10, 2012 1:43 PM >> > @@ -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? > [Luo Zhenhua-B19537] I didn't meet such issue during my build, do we need to add a PR in linux-dtb.inc to solve this issue? Zhenhua, I would suggest testing without our 'meta-fsl-ppc' layer and see what happens. -M
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@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@freescale.com wrote:
> > From: Zhenhua Luo<b19537@freescale.com>
> >
> > Signed-off-by: Zhenhua Luo<b19537@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
> > }
> > -
Patch
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) } -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 } -