[yocto] [Yocto][OpenEmbedded] [Arago] - "kernel-devicetree" Cannot build Runtime dependency

Roosemberth Palacios roosembert.palacios at epfl.ch
Wed Jul 29 09:01:46 PDT 2015


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello, I'm working on a custom image for ti's am335x chip. Still, I
try to build my image, but at the end I get

[...]
| Collected errors:
|  * satisfy_dependencies_for: Cannot satisfy the following
dependencies for domosafety-userspace-1.0:
|  *    kernel-devicetree *     kernel-devicetree *
|  * opkg_install_cmd: Cannot install package domosafety-userspace-1.0.
[...]

I'm using a custom kernel which was provided by the hardware
manufacturer. I was able to build {MACHINE="CBoxNAND.conf" bitbake
custom-base-image} (from TI's Sitiara Linux Training:
http://processors.wiki.ti.com/index.php/Sitara_Linux_Training:_Getting_Started_with_Openembedded)

Then, we just replaced the kernel source by the hw manufacturer's one
(note the .tar as the kernel source). Device tree is in the good place
in the kernel sources (arch/arm/boot/dts/cbox-NAND.dt{s,b}). But still
I can't manage to build. I had to copy paste the "linux-dtb.inc" at
the end of the recipe as it wasn't getting loaded (why?). And I
changed from do_install_append to do_compile_kernelmodules_append in
order that code to run.

build command:
MACHINE="CBoxNAND" bitbake core-image-domosafety -DDD | tee
/tmp/logCBoxNAND.core-image-domosafety

The complete log file is at: http://www.pasteall.org/59962

I'll leave down here part of important files.


Best Regards!
Roosembert Palacios

- ---------- "conf/machine/CBoxNAND.conf"

#@TYPE: Machine
#@NAME: AM335x EVM
#@DESCRIPTION: Machine configuration for Domosafety's CBox NAND Storage

require conf/machine/include/ti33x.inc

XSERVER = ""
GUI_MACHINE_CLASS = ""
MACHINE_FEATURES = "kernel26 apm usbhost vfat ext2 ethernet"
IMAGE_FEATURES += "package-management"

IMAGE_FSTYPES += "ubi tar.gz"

SERIAL_CONSOLE = "115200 ttyO0"
MKUBIFS_ARGS = "-F -m 2048 -e 131072 -c 3836"
UBINIZE_ARGS = "-m 2048 -p 128KiB -s 512 -O 2048"

PREFERRED_VERSION_linux-libc-headers_CBoxNAND = "3.2"
PREFERRED_PROVIDER_virtual/kernel_CBoxNAND = "linux-domosafety"
PREFERRED_PROVIDER_virtual/bootloader_CBoxNAND = "u-boot-domosafety"
PREFERRED_PROVIDER_virtual/uenv_CBoxNAND = "uenv-domosafety-nand"
PREFERRED_PROVIDER_kernel_CBoxNAND = "linux-domosafety"
PREFERRED_PROVIDER_u-boot_CBoxNAND = "u-boot-domosafety"

PREFERRED_PROVIDER_ltp-ddt_CBoxNAND = "ltp-ddt-legacy"
PREFERRED_PROVIDER_virtual/gettext = "gettext"

RDEPENDS_kernel-base += "kernel-devicetree"
KERNEL_IMAGETYPE = "uImage"
UBOOT_MACHINE="zigBeeBox_secured_config"


- ---------- "recipes-core/images/core-image-domosafety_1.0.bb"
DESCRIPTION = "DomoSafety Image"
export IMAGE_BASENAME = "core-image-domosafety"

# IMAGE_INSTALL += "domosafety-BareImage"
IMAGE_INSTALL = "domosafety-userspace-1.0 packagegroup-core-boot
${ROOTFS_PKGMANAGE_BOOTSTRAP} ${CORE_IMAGE_EXTRA_INSTALL}"
IMAGE_LINGUAS = " "
LICENSE = "MIT"

IMAGE_ROOTFS_SIZE = "524288"
IMAGE_FEATURES += " ssh-server-openssh package-management "

inherit core-image


- ---------- "linux-domosafety_3.13.43.bb" ----------------

LICENSE = "GPLv2"
KERNEL_IMAGETYPE = "uImage"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
COMPATIBLE_MACHINE = "CBoxNAND"
KERNEL_DEVICETREE = "cbox-NAND.dts"

DEFAULT_PREFERENCE = "1"

inherit kernel
# TI's
require recipes-kernel/linux/setup-defconfig.inc

# Pull in the devicetree files into the rootfs
RDEPENDS_kernel-base += "kernel-devicetree"
IMAGE_INSTALL_append = " kernel-image "
INITRAMFS_IMAGE = "initramfs-cbox-normal"

# Add a run-time dependency for the PM firmware to be installed on the
target file system.
RDEPENDS_kernel-base_append_CBoxNAND = " am33x-cm3"

# Default is to package all dtb files for ti33x devices unless
building for the specific beaglebone machine.
KERNEL_DEVICETREE_CBoxNAND = "cbox-NAND.dts "

S = "${WORKDIR}/linux-${PV}-am335x"
B = "${S}"

PR = "devel6"
MACHINE_KERNEL_PR_append = "r+${PR}"

EXTRA_OEMAKE_append += " LOADADDR=${UBOOT_ENTRYPOINT} "

SRC_URI = " \
        file://${PN}_${PV}/am335x-pm-firmware.bin;name=pm-firmware \
        file://${PN}_${PV}/cbox-domosafety.defconfig;name=kconfig \
        file://${PN}_${PV}/linux-${PV}-am335x.tar;name=kernel \
"

SRC_URI[kernel.md5sum] = "3d5b4539183a0f4c7634ff728ec61707"
SRC_URI[pm-firmware.md5sum] = "c571cf09f994d5fd8750338618cafa0b"
SRC_URI[kconfig.md5sum] = "22be214b4fd6ffa8d2da6a4b895d722a"

do_fetch_append() {
os.system("cp ${WORKDIR}/${PN}_${PV}/am335x-pm-firmware.bin ${S}/
2>>${WORKDIR}/Failure ")
os.system("cp ${WORKDIR}/${PN}_${PV}/cbox-domosafety.defconfig
${WORKDIR}/defconfig 2>>${WORKDIR}/Failure ")
os.system("tree $(WORKDIR) -L 3 &>>${WORKDIR}/Failure")
}

do_configure_append() {
    cp "${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.cpio.lzma"
${S}/initramfs.cpio.lzma
}

pkg_postinst_kernel-image() {
if [ "x$D" = "x" ]; then
    /usr/sbin/flash_erase /dev/mtd2 0 0
    /bin/dd if=/boot/uImage of=/dev/mtd2 bs=131072 conv=sync
fi
update-alternatives --install /${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}
${KERNEL_IMAGETYPE} ${KERNEL_IMAGETYPE}-${KERNEL_VERSION}
${KERNEL_PRIORITY} || true
if [ ! -e "$D/lib/modules/${KERNEL_VERSION}" ]; then
        mkdir -p $D/lib/modules/${KERNEL_VERSION}
fi
if [ -n "$D" ]; then
        depmodwrapper -a -b $D ${KERNEL_VERSION}
else
        depmod -a ${KERNEL_VERSION}
fi
}

pkg_postrm_kernel-image () {
        update-alternatives --remove ${KERNEL_IMAGETYPE}
${KERNEL_IMAGETYPE}-${KERNEL_VERSION} || true
}

pkg_postinst_kernel-devicetree() {
cd /${KERNEL_IMAGEDEST}; update-alternatives --install
/${KERNEL_IMAGEDEST}/${MACHINE}.dtb devicetree
devicetree-uImage-cbox-NAND.dtb ${KERNEL_PRIORITY} || true
if [ "x$D" = "x" ]; then
    /usr/sbin/flash_erase /dev/mtd1 0 0
    /bin/dd if=/boot/devicetree-uImage-cbox-NAND.dtb of=/dev/mtd1
bs=131072 conv=sync
fi
}

pkg_postrm_kernel-devicetree() {
cd /${KERNEL_IMAGEDEST}; update-alternatives --remove devicetree
devicetree-${KERNEL_VERSION} || true
}

# Support for device tree generation
FILES_kernel-devicetree = "/boot/devicetree*"
KERNEL_DEVICETREE_FLAGS = "-R 8 -p 0x3000"

PACKAGES += " kernel-devicetree "
DEPENDS_append = " dtc-native "

#python __anonymous () {
#    devicetree = d.getVar("KERNEL_DEVICETREE", True) or ''
#    if devicetree:
#        depends = d.getVar("DEPENDS", True)
#        d.setVar("DEPENDS", "%s dtc-native" % depends)
#        packages = d.getVar("PACKAGES", True)
#}

#pkg_preinst_kernel-image_append() {
do_compile_kernelmodules_append(){
#        echo "linux-dtb[ds-pkg_prinst_kernel-image_append]:
Processing Device Trees..." > /tmp/log
        echo "linux-dtb[ds.do_compile_kernelmodules_append]:
Processing Device Trees..." > /tmp/log
        if test -n "${KERNEL_DEVICETREE}"; then
                for DTS_FILE in ${KERNEL_DEVICETREE}; do
                        echo "Processing ${DTS_FILE}" >> /tmp/log
                        if [ ! -f ${DTS_FILE} ]; then
                                echo "Warning: ${DTS_FILE} is not
available!"
                                continue
                        fi
                        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 ${DTS_BASE_NAME} ${DTS_FILE}
                        install -m 0644 ${DTS_BASE_NAME}
${D}/boot/devicetree-${DTB_SYMLINK_NAME}.dtb
                done
        fi
        echo "linux-dtb[]: end processing Device Trees..."
}

- -------------------------------------------------------------

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQEcBAEBAgAGBQJVuPjqAAoJEMqq7OXCJCu3Du8IAI7I7I7WRnRkywH8mCUjqF8P
YY9qF8gWQWXeXMfQxhxT0yAsO/OUWeUIXLiFcpjrUfTU6OMvf61TP1u6AXI0m1cO
8NmQtsi7izQUbK1vgskn7Msf4DgyXfNYav9zklWW9mLPP4N3/+wRAir8LntURMUM
y/9kJQNKjAjfT5zeZU5Ce8gV/jvu0Fe+4UyQ8jqctR+96wdlpucUNsyrcoNOQt6Q
qZFIwr/fM0wqGEyZgjsomz0rvpvnneFGT9W62hBrRYRTmGW/M+ZyFSpI18lxra35
E0FEOD0B5jFekvU3tmhuuIYxij7jFOA9Fk4QG0zB8/vd7Tg/9fZYQsf6FnVYqgw=
=+TL3
-----END PGP SIGNATURE-----



More information about the yocto mailing list