From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6806166825265528832 X-Received: by 2002:a17:906:fcb9:: with SMTP id qw25mr7530209ejb.252.1584696835897; Fri, 20 Mar 2020 02:33:55 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:c794:: with SMTP id cw20ls2788967ejb.4.gmail; Fri, 20 Mar 2020 02:33:55 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtXDN59ioXAUKW4yZyaKrf5ODeqIzSGwXnRwbRFJpoIG4FPxZVtKEc6pUH7hVN+ghJio/8X X-Received: by 2002:a17:906:7a46:: with SMTP id i6mr7410586ejo.95.1584696835135; Fri, 20 Mar 2020 02:33:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584696835; cv=none; d=google.com; s=arc-20160816; b=gfzTXJgY6XWKhnlk71flmYQorFLPi5Q175ckY9giVMa4yFMYkHa6EYbro/ScWyo3s7 wYNWj/hqerOyBqhMsJGJ06AhxkDCehS7Ng51YASXRVUNI++dZx6j1EHU3uNjqMJ48Leg E72c2jH09ixbu9eGgoxfNRq5CeSTAnZYVbOBMQfATHkpeAvw2bSkjTuv/Lamf4gfRHEy 4ivA+FD+mOSJEs103xbDlGBxWz7AJNEnIPKlL8V0mEcldbmpENjmDD7LfL/bTpjGWv79 lNAnmYNpq3bAZL014JwsHG3Kwf6SYKvsx80IazZVqJDCiPbjxmmr93dU/v7hDCP2AdP8 5JSg== 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=O9YlWQq18Qrm4jcterR+Cro+2vg2wcBvk7dI8VLlYFU=; b=T24hr0a0sL1OkLisVhCJgF9ac2jF15it+jpAMhyF3DRmDjYvLI51XVk2xtE9H4//Uq KC8boovAN4aYvagJzr7ScWMvgNbMWF9tLzwKqzafKUV/w3B8EvMqKtjIeHvrJ094fSVm jNk1xei6gm8yXDCHeH+xX36XuggMoILwguowHqKrgQiAHh7u0hHEOw/JYAO6jel2fSh2 mO+cRXi12PrrNx/UM14aOdoBwVvewNuc4psoA8RAcjReQsnZpKWha0ca0NLOeXGp331u zSLq2lz21ugGfe512nBWoQKP0D5b8uTjRiORKLoFmMag/F72zMOLVU6Fcrz0sL982c3L C8aQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 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 gecko.sbs.de (gecko.sbs.de. [194.138.37.40]) by gmr-mx.google.com with ESMTPS id x7si286597ejw.0.2020.03.20.02.33.54 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 20 Mar 2020 02:33:55 -0700 (PDT) Received-SPF: pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 as permitted sender) client-ip=194.138.37.40; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jan.kiszka@siemens.com designates 194.138.37.40 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 gecko.sbs.de (8.15.2/8.15.2) with ESMTPS id 02K9XrT1016234 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 20 Mar 2020 10:33:54 +0100 Received: from [139.22.123.181] ([139.22.123.181]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id 02K9Xqwk020618; Fri, 20 Mar 2020 10:33:52 +0100 From: Jan Kiszka Subject: [PATCH v2] image: Add support for deploying multiple DTBs To: isar-users Cc: Chao Zeng , Le Jin Message-ID: <28173540-8c96-1427-a603-fc16864c1f42@siemens.com> Date: Fri, 20 Mar 2020 10:33:52 +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: jSTk2ovUAEXt 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 --- Changes in v2: - fix parsing error of isar-image-ubi.bb 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..ef2cf1c3 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() or [''])[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