From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6806166825265528832 X-Received: by 2002:a05:651c:288:: with SMTP id b8mr4321099ljo.98.1584684202836; Thu, 19 Mar 2020 23:03:22 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a19:8607:: with SMTP id i7ls525478lfd.0.gmail; Thu, 19 Mar 2020 23:03:22 -0700 (PDT) X-Google-Smtp-Source: ADFU+vu0Ifb+A0vPzPAR86iANIQqj/DBi0y9LzQ7d+LTrRksUqLL7WmNB9+gupipriwRwbjqXuw2 X-Received: by 2002:a19:c1d2:: with SMTP id r201mr4189847lff.13.1584684201929; Thu, 19 Mar 2020 23:03:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584684201; cv=none; d=google.com; s=arc-20160816; b=aeMFVx7snDNrOalrswMd+ovoE9r+NYZsjKIIvCOmDZ5t90aAQZcWD+qNUXPhIu0bi+ Ws0UdHNBMX0+KGC9UWe1JVhQkielSYv0zexdPerpqxPaSjZihtZoO+Ma1zEGWRQrIoPD C52UNVbowfAUa68JZ7lVMHULNmMFVuJ0D/VLn7RD2DqewOcm7rDnV96Qd/BvlPW7HcNF b8VyGV4t0bTkk/Yx98eigHkvoiwrfkRMxPjNc6zBPV0KrfuepOLW511FfNyO84pSeKaZ k2qmtHRafC7PXC1zoXDb98s6jcv76uUwPBPuJyT3SiCqIkVqdy2HPDoFcaOgT7G6ivdQ 3TOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:mime-version:user-agent :date:message-id:cc:to:subject:from; bh=LhTxCNaPOC18jC//zNtgbrShe8mMmpzmOtxM58isxsU=; b=MESi5UZOlTd+vfkc31stS9J5IY5sGJCFXY5MkgPWTbvvPlae0q4VYvKUAyyat7msFm 4eMbC7Vr5CIaNA7G2ZCTXlEqVKVdbCnRnqGRlT0elP6Q7ZY19nxKoVpkn+DBWu7i3GeT yryIvfl0R0Y02197VAc7cFbktg2g9nKFxq4I8SNcWofFTw6oqwnlnN1ia7fUui54r7Ab ZOoRWKj2FyQRzy9lqxG9JPdCsu/zcG0BsVoTW9Xw5kXH59gUhr3XtqnxTW3LKDRWpjoj +EytxOb2lXTuwHXV2A4zoW3/Zlw+WXehQqZI3WtzPMXHzkSdcIFe5CGpcLH0OMKENL90 Z9Fg== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from lizzard.sbs.de (lizzard.sbs.de. [194.138.37.39]) by gmr-mx.google.com with ESMTPS id w6si220237lfa.1.2020.03.19.23.03.21 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Mar 2020 23:03:21 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) client-ip=194.138.37.39; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.39 as permitted sender) smtp.mailfrom=jan.kiszka@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by lizzard.sbs.de (8.15.2/8.15.2) with ESMTPS id 02K63LfQ006279 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 Mar 2020 07:03:21 +0100 Received: from [167.87.245.142] ([167.87.245.142]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 02K63K8c019911; Fri, 20 Mar 2020 07:03:20 +0100 From: Jan Kiszka Subject: [PATCH] image: Add support for deploying multiple DTBs To: isar-users Cc: Chao Zeng , Le Jin Message-ID: Date: Fri, 20 Mar 2020 07:03:19 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TUID: QAaKxJOWOg4Q From: Jan Kiszka This allows to support non-distro-boot images which select from multiple DTBs during boot. The isar-image-ubi recipe still only supports one DTB file, but that is an exemplary recipe anyway. Based on original patch by Chao Zeng. Signed-off-by: Jan Kiszka --- RECIPE-API-CHANGELOG.md | 5 +++++ meta-isar/conf/machine/nand-ubi-demo.conf | 2 +- meta-isar/recipes-core/images/isar-image-ubi.bb | 3 ++- meta/classes/image.bbclass | 14 ++++++++------ 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index fb04af99..ae3a159c 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -224,3 +224,8 @@ In order to get a LOCALVERSION appendix into both the kernel config and the version information of the self-built packages, the LINUX_VERSION_EXTENSION is now available. It remains empty by default unless a recipe sets it. The appended version usually starts with a "-". + +### Renamed DTB_FILE to DTB_FILES, adding support for multiple entries + +DTB_FILES now allows to specify multiple DTBs that should be deployed for +consumption by imaging classes. diff --git a/meta-isar/conf/machine/nand-ubi-demo.conf b/meta-isar/conf/machine/nand-ubi-demo.conf index e207d402..25ec72f3 100644 --- a/meta-isar/conf/machine/nand-ubi-demo.conf +++ b/meta-isar/conf/machine/nand-ubi-demo.conf @@ -10,4 +10,4 @@ MKUBIFS_ARGS := "-m 0x1000 -e 0x3e000 -c 1500" UBINIZE_ARGS = "-vv -m 0x1000 -p 0x40000" IMAGE_TYPE ?= "ubi-ubifs-img" -DTB_FILE = "imx6q-sabrelite.dtb" +DTB_FILES = "imx6q-sabrelite.dtb" diff --git a/meta-isar/recipes-core/images/isar-image-ubi.bb b/meta-isar/recipes-core/images/isar-image-ubi.bb index 3b41f236..04482a2b 100644 --- a/meta-isar/recipes-core/images/isar-image-ubi.bb +++ b/meta-isar/recipes-core/images/isar-image-ubi.bb @@ -20,7 +20,8 @@ TEMPLATE_FILES = "ubinize.cfg.tmpl fitimage.its.tmpl" KERNEL_IMG = "${PP_DEPLOY}/${KERNEL_IMAGE}" INITRD_IMG = "${PP_DEPLOY}/${INITRD_IMAGE}" -DTB_IMG = "${PP_DEPLOY}/${DTB_FILE}" +# only one dtb file supported, pick the first +DTB_IMG = "${PP_DEPLOY}/${@d.getVar('DTB_FILES').split()[0]}" UBIFS_IMG = "${PP_DEPLOY}/${UBIFS_IMAGE_FILE}" FIT_IMG = "${PP_DEPLOY}/${FIT_IMAGE_FILE}" diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 6bcc6cd2..703ff078 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -19,6 +19,9 @@ IMAGE_FULLNAME = "${PN}-${DISTRO}-${MACHINE}" KERNEL_IMAGE ?= "${IMAGE_FULLNAME}-${KERNEL_FILE}" INITRD_IMAGE ?= "${IMAGE_FULLNAME}-initrd.img" +# This defines the deployed dtbs for reuse by imagers +DTB_FILES ?= "" + # Useful variables for imager implementations: PP = "/home/builder/${PN}" PP_DEPLOY = "${PP}/deploy" @@ -140,17 +143,16 @@ do_copy_boot_files() { cp -f "$initrd" '${DEPLOY_DIR_IMAGE}/${INITRD_IMAGE}' fi - # Check DTB_FILE via inline python to handle unset case: - if [ -n "${@d.getVar('DTB_FILE', True) or ""}" ]; then + for file in ${DTB_FILES}; do dtb="$(find '${IMAGE_ROOTFS}/usr/lib' -type f \ - -iwholename '*linux-image-*/${DTB_FILE}' | head -1)" + -iwholename '*linux-image-*/'${file} | head -1)" if [ -z "$dtb" -o ! -e "$dtb" ]; then - die "${DTB_FILE} not found" + die "${file} not found" fi - cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/${DTB_FILE}" - fi + cp -f "$dtb" "${DEPLOY_DIR_IMAGE}/" + done } addtask copy_boot_files before do_rootfs_postprocess after do_rootfs_install -- 2.16.4