Would this be the cause of this failure on the autobuilder when doing testimage?
runqemu - ERROR - DTB not found: tmp/deploy/images/qemuarm/zImage-versatile-pb.dtb, tmp/deploy/images/qemuarm/zImage-versatile-pb.dtb* or tmp/deploy/images/qemuarm/*.dtb From https://autobuilder.yocto.io/builders/nightly-arm-lsb/builds/463/steps/Running%20Sanity%20Tests/logs/stdio Ross On 5 September 2017 at 02:57, Otavio Salvador <ota...@ossystems.com.br> wrote: > The Device Tree is commonly used but it is still kept as a .inc file > instead of a proper class. Instead now we move the Device Tree code to > a kernel-devicetree class and automatically enable it when the > KERNEL_DEVICETREE variable is set. > > To avoid breakage, we kept a linux-dtb.inc file which raises a warning > telling the user about the change so in next release this can be > removed. > > Signed-off-by: Otavio Salvador <ota...@ossystems.com.br> > --- > > meta/classes/kernel-devicetree.bbclass | 63 > ++++++++++++++++++++++++++++++++ > meta/classes/kernel.bbclass | 4 +++ > meta/recipes-kernel/linux/linux-dtb.inc | 64 > ++------------------------------- > 3 files changed, 69 insertions(+), 62 deletions(-) > create mode 100644 meta/classes/kernel-devicetree.bbclass > > diff --git a/meta/classes/kernel-devicetree.bbclass b/meta/classes/kernel- > devicetree.bbclass > new file mode 100644 > index 0000000000..6e6f39e640 > --- /dev/null > +++ b/meta/classes/kernel-devicetree.bbclass > @@ -0,0 +1,63 @@ > +# Support for device tree generation > +FILES_kernel-devicetree = "/${KERNEL_IMAGEDEST}/*.dtb > /${KERNEL_IMAGEDEST}/*.dtbo" > + > +python __anonymous () { > + d.appendVar("PACKAGES", " kernel-devicetree") > +} > + > +normalize_dtb () { > + DTB="$1" > + if echo ${DTB} | grep -q '/dts/'; then > + bbwarn "${DTB} contains the full path to the the dts file, > but only the dtb name should be used." > + DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` > + fi > + echo "${DTB}" > +} > + > +get_real_dtb_path_in_kernel () { > + DTB="$1" > + DTB_PATH="${B}/arch/${ARCH}/boot/dts/${DTB}" > + if [ ! -e "${DTB_PATH}" ]; then > + DTB_PATH="${B}/arch/${ARCH}/boot/${DTB}" > + fi > + echo "${DTB_PATH}" > +} > + > +do_compile_append() { > + for DTB in ${KERNEL_DEVICETREE}; do > + DTB=`normalize_dtb "${DTB}"` > + oe_runmake ${DTB} > + done > +} > + > +do_install_append() { > + for DTB in ${KERNEL_DEVICETREE}; do > + DTB=`normalize_dtb "${DTB}"` > + DTB_EXT=${DTB##*.} > + DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"` > + DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` > + install -m 0644 ${DTB_PATH} ${D}/${KERNEL_IMAGEDEST}/${ > DTB_BASE_NAME}.${DTB_EXT} > + for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do > + symlink_name=${type}"-"${ > KERNEL_IMAGE_SYMLINK_NAME} > + DTB_SYMLINK_NAME=`echo ${symlink_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > + ln -sf ${DTB_BASE_NAME}.${DTB_EXT} > ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} > + done > + done > +} > + > +do_deploy_append() { > + for DTB in ${KERNEL_DEVICETREE}; do > + DTB=`normalize_dtb "${DTB}"` > + DTB_EXT=${DTB##*.} > + DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` > + for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do > + base_name=${type}"-"${KERNEL_IMAGE_BASE_NAME} > + symlink_name=${type}"-"${ > KERNEL_IMAGE_SYMLINK_NAME} > + DTB_NAME=`echo ${base_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > + DTB_SYMLINK_NAME=`echo ${symlink_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > + DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"` > + install -d ${DEPLOYDIR} > + install -m 0644 ${DTB_PATH} > ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT} > + done > + done > +} > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass > index 02a5e961cb..8c01e90709 100644 > --- a/meta/classes/kernel.bbclass > +++ b/meta/classes/kernel.bbclass > @@ -662,3 +662,7 @@ do_deploy[prefuncs] += "package_get_auto_pr" > addtask deploy after do_populate_sysroot do_packagedata > > EXPORT_FUNCTIONS do_deploy > + > +# If we are using Device Tree support, inherit the class to enable it > +KERNEL_DEVICETREE_CLASS = "${@['kernel-devicetree', > ''][d.getVar('KERNEL_DEVICETREE', > False) == None]}" > +inherit ${KERNEL_DEVICETREE_CLASS} > diff --git a/meta/recipes-kernel/linux/linux-dtb.inc > b/meta/recipes-kernel/linux/linux-dtb.inc > index 6e6f39e640..f1912775ca 100644 > --- a/meta/recipes-kernel/linux/linux-dtb.inc > +++ b/meta/recipes-kernel/linux/linux-dtb.inc > @@ -1,63 +1,3 @@ > -# Support for device tree generation > -FILES_kernel-devicetree = "/${KERNEL_IMAGEDEST}/*.dtb > /${KERNEL_IMAGEDEST}/*.dtbo" > - > -python __anonymous () { > - d.appendVar("PACKAGES", " kernel-devicetree") > -} > - > -normalize_dtb () { > - DTB="$1" > - if echo ${DTB} | grep -q '/dts/'; then > - bbwarn "${DTB} contains the full path to the the dts file, > but only the dtb name should be used." > - DTB=`basename ${DTB} | sed 's,\.dts$,.dtb,g'` > - fi > - echo "${DTB}" > -} > - > -get_real_dtb_path_in_kernel () { > - DTB="$1" > - DTB_PATH="${B}/arch/${ARCH}/boot/dts/${DTB}" > - if [ ! -e "${DTB_PATH}" ]; then > - DTB_PATH="${B}/arch/${ARCH}/boot/${DTB}" > - fi > - echo "${DTB_PATH}" > -} > - > -do_compile_append() { > - for DTB in ${KERNEL_DEVICETREE}; do > - DTB=`normalize_dtb "${DTB}"` > - oe_runmake ${DTB} > - done > -} > - > -do_install_append() { > - for DTB in ${KERNEL_DEVICETREE}; do > - DTB=`normalize_dtb "${DTB}"` > - DTB_EXT=${DTB##*.} > - DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"` > - DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` > - install -m 0644 ${DTB_PATH} ${D}/${KERNEL_IMAGEDEST}/${ > DTB_BASE_NAME}.${DTB_EXT} > - for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do > - symlink_name=${type}"-"${ > KERNEL_IMAGE_SYMLINK_NAME} > - DTB_SYMLINK_NAME=`echo ${symlink_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > - ln -sf ${DTB_BASE_NAME}.${DTB_EXT} > ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} > - done > - done > -} > - > -do_deploy_append() { > - for DTB in ${KERNEL_DEVICETREE}; do > - DTB=`normalize_dtb "${DTB}"` > - DTB_EXT=${DTB##*.} > - DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"` > - for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do > - base_name=${type}"-"${KERNEL_IMAGE_BASE_NAME} > - symlink_name=${type}"-"${ > KERNEL_IMAGE_SYMLINK_NAME} > - DTB_NAME=`echo ${base_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > - DTB_SYMLINK_NAME=`echo ${symlink_name} | sed > "s/${MACHINE}/${DTB_BASE_NAME}/g"` > - DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"` > - install -d ${DEPLOYDIR} > - install -m 0644 ${DTB_PATH} > ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT} > - done > - done > +python() { > + bb.warn("You are using the linux-dtb.inc which is deprecated. You can > safely remove it as the Device Tree support is automatically enabled when > KERNEL_DEVICETREE is set.") > } > -- > 2.14.1 > > -- > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
-- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core