From 775f6de08a73d67657782f1cdaa1076e4aa876c3 Mon Sep 17 00:00:00 2001 From: Peter Hoyes Date: Fri, 30 Sep 2022 17:34:37 +0100 Subject: [PATCH] zephyr-core/zephyr-kernel: Implement do_install Install the Zephyr binaries to ${D}/firmware prior to copying them to ${DEPLOYDIR}. Implementing do_install has three advantages: * In use-cases when the Zephyr application is not the final artifact (e.g. when signing or using additional firmware), other recipes can pick up the Zephyr binary from the sysroot instead of DEPLOY_DIR_IMAGE. * It may sometimes make sense to install the binaries in a Linux filesystem (e.g. to be run by a hypervisor). * OE-core's QA checks run on the packaged binaries. There are currently two QA checks that fail, so add these to INSANE_SKIP for now. Signed-off-by: Peter Hoyes Signed-off-by: Jon Mason Signed-off-by: Naveen Saini --- .../zephyr-kernel/zephyr-image.inc | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc index fc8c077..d6ee21f 100644 --- a/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc +++ b/meta-zephyr-core/recipes-kernel/zephyr-kernel/zephyr-image.inc @@ -4,19 +4,26 @@ inherit deploy OECMAKE_SOURCEPATH = "${ZEPHYR_SRC_DIR}" -do_install[noexec] = "1" +do_install() { + install -d ${D}/firmware -do_deploy() { - install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${DEPLOYDIR}/${PN}.elf + install -D ${B}/zephyr/${ZEPHYR_MAKE_OUTPUT} ${D}/firmware/${PN}.elf if [ -f ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ] then - install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${DEPLOYDIR}/${PN}.bin + install -D ${B}/zephyr/${ZEPHYR_MAKE_BIN_OUTPUT} ${D}/firmware/${PN}.bin fi if [ -f ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ] then - install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${DEPLOYDIR}/${PN}.efi + install -D ${B}/zephyr/${ZEPHYR_MAKE_EFI_OUTPUT} ${D}/firmware/${PN}.efi fi } -addtask deploy after do_compile +FILES:${PN} = "/firmware" +INSANE_SKIP += "ldflags buildpaths" +SYSROOT_DIRS += "/firmware" + +do_deploy() { + cp ${D}/firmware/${PN}.* ${DEPLOYDIR}/ +} +addtask deploy after do_install