From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6652197203295076352 X-Received: by 2002:a50:ac53:: with SMTP id w19mr1530279edc.3.1548865950270; Wed, 30 Jan 2019 08:32:30 -0800 (PST) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a17:906:4acd:: with SMTP id u13-v6ls589771ejt.6.gmail; Wed, 30 Jan 2019 08:32:29 -0800 (PST) X-Google-Smtp-Source: ALg8bN520rzLLIPjPyXBVpG6dIVyog4118nXjNd1LbLSyTBwL2gWKh5PLVX8YexgJjl8GSq44wTG X-Received: by 2002:a17:906:8296:: with SMTP id h22mr1447660ejx.3.1548865949624; Wed, 30 Jan 2019 08:32:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548865949; cv=none; d=google.com; s=arc-20160816; b=uf5xmeVbF5zYLcBl4VErs1Yd9V1pC503o9vihJC96mW8O/JXQ5mtsskOYresy7etPj ZQNaaEaazrrTmmE6cK+ouw5rhr5KDsZPVrXHLKw5f/sCcHgMviI7hEiRZ6Je+0FAE2/t cCSpTw00XWN8MKH7fbAOmIj3p2rv1JQ0BlGEMN1zvuzzpo49QIdVy4QEkweYwEH46Vcr poQNRQ6Ibs2CBtX7Bk8AXIPwFPdj+CxBkvC5TZEXfg36lEDvIbrlMj+T2PPNGB8HMAlA ZocAm9HvbVN8oIeVkHGdROtCcnYa78VjghZhCs5PXSnOIhbkDyMDco249qoqY9UkMPEL CqUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:subject:cc:to:from:date; bh=c2H7NX3q7qDsAJHeIAird/QlCMb8hHLaSX8A9CbT4xw=; b=ocYYC2syIYHsmV9xAIzPGIXRbH4dE78w1zjmLtHd43bNYuvaRWWTmh2/VTshqqUzu1 bRQ41JzE1bEQnhkA/92iSQxFlLL+/w/gU1ynK+9efAPcPH/DQd2owObWsQILIzLX3q5g 87zmsdYapV3gpYbeJqXKnGkCxMRa6rdHx+NvOIdUQuIzo44zyrrb3QkclZVrwCV8eFCy DDHWA8F/vQt0qd3qxa1ycmzZdaYUL4wHBpJRTILv0IcU9Vo5OcC25U8TvZyngbRmCQqf dqoJ6sYt0D+Mu/3XQrsi8XJ0x5VujSq5xkDuvAbcDDYGs4vn/1F3FvQ90Dpe6VRSK1dj UfMQ== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Return-Path: Received: from goliath.siemens.de (goliath.siemens.de. [192.35.17.28]) by gmr-mx.google.com with ESMTPS id a3si89117eda.0.2019.01.30.08.32.29 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Jan 2019 08:32:29 -0800 (PST) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) client-ip=192.35.17.28; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.28 as permitted sender) smtp.mailfrom=henning.schild@siemens.com Received: from mail2.sbs.de (mail2.sbs.de [192.129.41.66]) by goliath.siemens.de (8.15.2/8.15.2) with ESMTPS id x0UGWSBl020308 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jan 2019 17:32:28 +0100 Received: from md1za8fc.ad001.siemens.net ([139.25.68.203]) by mail2.sbs.de (8.15.2/8.15.2) with ESMTP id x0UGWSXd030302; Wed, 30 Jan 2019 17:32:28 +0100 Date: Wed, 30 Jan 2019 17:32:28 +0100 From: Henning Schild To: "[ext] claudius.heine.ext@siemens.com" Cc: , Claudius Heine Subject: Re: [PATCH v2 4/4] meta-isar: added nand-ubi-demo example to demonstrate UBI use Message-ID: <20190130173228.73488cec@md1za8fc.ad001.siemens.net> In-Reply-To: <20190130080229.604-5-claudius.heine.ext@siemens.com> References: <20190130080229.604-1-claudius.heine.ext@siemens.com> <20190130080229.604-5-claudius.heine.ext@siemens.com> X-Mailer: Claws Mail 3.15.0-dirty (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-TUID: /yDjlm/o6pUR On Wed, 30 Jan 2019 09:02:29 +0100 "[ext] claudius.heine.ext@siemens.com" wrote: > From: Claudius Heine > > Signed-off-by: Claudius Heine > --- > meta-isar/classes/ubi-ubifs-img.bbclass | 11 ++++ > meta-isar/conf/local.conf.sample | 1 + > meta-isar/conf/machine/nand-ubi-demo.conf | 13 +++++ > .../multiconfig/nand-ubi-demo-buster.conf | 13 +++++ > .../images/files/ubinize.cfg.tmpl | 35 +++++++++++++ > .../recipes-core/images/isar-image-ubi.bb | 51 > +++++++++++++++++++ scripts/ci_build.sh | > 1 + 7 files changed, 125 insertions(+) > create mode 100644 meta-isar/classes/ubi-ubifs-img.bbclass > create mode 100644 meta-isar/conf/machine/nand-ubi-demo.conf > create mode 100644 > meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf create mode > 100644 meta-isar/recipes-core/images/files/ubinize.cfg.tmpl create > mode 100644 meta-isar/recipes-core/images/isar-image-ubi.bb > > diff --git a/meta-isar/classes/ubi-ubifs-img.bbclass > b/meta-isar/classes/ubi-ubifs-img.bbclass new file mode 100644 > index 0000000..c02c98f > --- /dev/null > +++ b/meta-isar/classes/ubi-ubifs-img.bbclass > @@ -0,0 +1,11 @@ > +# UBI with UBIFS image recipe > +# > +# This software is a part of ISAR. > +# Copyright (C) Siemens AG, 2019 > +# > +# SPDX-License-Identifier: MIT > + > +inherit ubi-img ubifs-img > +addtask do_ubi_image after do_ubifs_image > + > +UBINIZE_CFG_TMPL_VARS[UBIFS_IMG] = "${PP_DEPLOY}/${UBIFS_IMAGE_FILE}" > diff --git a/meta-isar/conf/local.conf.sample > b/meta-isar/conf/local.conf.sample index a671b20..519a15d 100644 > --- a/meta-isar/conf/local.conf.sample > +++ b/meta-isar/conf/local.conf.sample > @@ -53,6 +53,7 @@ BBMULTICONFIG = " \ > hikey-stretch \ > qemuamd64-buster \ > qemuamd64-buster-tgz \ > + nand-ubi-demo-buster \ > rpi-jessie \ > " > > diff --git a/meta-isar/conf/machine/nand-ubi-demo.conf > b/meta-isar/conf/machine/nand-ubi-demo.conf new file mode 100644 > index 0000000..e207d40 > --- /dev/null > +++ b/meta-isar/conf/machine/nand-ubi-demo.conf > @@ -0,0 +1,13 @@ > +# This software is a part of ISAR. > +# Copyright (C) Siemens AG, 2019 > +# > +# SPDX-License-Identifier: MIT > + > +MACHINE_SERIAL ?= "ttymxc0" > +BAUDRATE_TTY ?= "115200" > + > +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" > diff --git a/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf > b/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf new file mode > 100644 index 0000000..1c88f00 > --- /dev/null > +++ b/meta-isar/conf/multiconfig/nand-ubi-demo-buster.conf > @@ -0,0 +1,13 @@ > +# This software is a part of ISAR. > +# Copyright (C) Siemens AG, 2019 > +# > +# SPDX-License-Identifier: MIT > + > +MACHINE ?= "nand-ubi-demo" > + > +DISTRO ?= "debian-buster" > +DISTRO_ARCH ?= "armhf" > + > +KERNEL_NAME ?= "armmp" > + > +IMAGE_INSTALL += "sshd-regen-keys" > diff --git a/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl > b/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl new file mode > 100644 index 0000000..f386915 > --- /dev/null > +++ b/meta-isar/recipes-core/images/files/ubinize.cfg.tmpl > @@ -0,0 +1,35 @@ > +[kernel] > +mode=ubi > +image=${KERNEL_IMG} > +vol_id=1 > +vol_type=static > +vol_name=kernel > +vol_size=16MiB > +vol_alignment=1 > + > +[initrd] > +mode=ubi > +image=${INITRD_IMG} > +vol_id=2 > +vol_type=static > +vol_name=initrd > +vol_size=32MiB > +vol_alignment=1 > + > +[dtb] > +mode=ubi > +image=${DTB_IMG} > +vol_id=3 > +vol_type=static > +vol_name=dtb > +vol_size=2MiB > +vol_alignment=1 > + > +[rootfs] > +mode=ubi > +image=${UBIFS_IMG} > +vol_id=4 > +vol_type=dynamic > +vol_name=rootfs > +vol_size=300MiB > +vol_alignment=1 > diff --git a/meta-isar/recipes-core/images/isar-image-ubi.bb > b/meta-isar/recipes-core/images/isar-image-ubi.bb new file mode 100644 > index 0000000..fbf0903 > --- /dev/null > +++ b/meta-isar/recipes-core/images/isar-image-ubi.bb > @@ -0,0 +1,51 @@ > +# UBI image recipe > +# > +# This software is a part of ISAR. > +# Copyright (C) Siemens AG, 2019 > +# > +# SPDX-License-Identifier: MIT > + > +DESCRIPTION = "UBI Isar image" > + > +LICENSE = "gpl-2.0" > +LIC_FILES_CHKSUM = > "file://${LAYERDIR_core}/licenses/COPYING.GPLv2;md5=751419260aa954499f7abaabaa882bbe" > + +PV = "1.0" > + > +inherit isar-image > + > +SRC_URI += "file://ubinize.cfg.tmpl" > + > +def find_linux_image(d, root_var): > + """ > + Find path to the linux-image directory > + > + Takes the first it can find -> could lead to problems if > more than one > + linux-image package is installed. > + > + root_var: Name of variable that contains the path to the > rootfs > + returns: found path without leading path to the rootfs or "" > + """ > + import glob > + > + root = d.getVar(root_var, True) > + if not root: > + bb.fatal("Variable \"{}\" does not exist or is > empty!".format(root_var)) + > + found = glob.glob(os.path.join(root, 'usr/lib/linux-image-*')) > + if not found: > + return "" > + > + return found[0][len(root):] > + > +UBINIZE_CFG_TMPL_VARS ??= "KERNEL_IMG INITRD_IMG DTB_IMG UBIFS_IMG" > +UBINIZE_CFG_TMPL_VARS[KERNEL_IMG] = "${PP_DEPLOY}/${KERNEL_IMAGE}" > +UBINIZE_CFG_TMPL_VARS[INITRD_IMG] = "${PP_DEPLOY}/${INITRD_IMAGE}" Interesting. But maybe even as a more general templating feature. To be honest i would skip that and use a few "sed"s like we do at other places. I think the templating is orthogonal to the ubi/ubifs support. > +UBINIZE_CFG_TMPL_VARS[DTB_IMG] = > "${PP_ROOTFS}/${@find_linux_image(d, 'IMAGE_ROOTFS')}/${DTB_FILE}" + > +do_copy_boot_files_append() { > + DTB="${@find_linux_image(d, 'IMAGE_ROOTFS')}/${DTB_FILE}" > + if [ -n "${DTB}" ]; then > + cp -f ${IMAGE_ROOTFS}/${DTB} ${DEPLOY_DIR_IMAGE}/${DTB_FILE} > + fi > +} I do not like that and the find_linux_image it needs. The way to find the file should be the same used for kernel and initrd. So i guess extend this with DTB support or replace KERNEL and INITRD finding with your function. Henning > diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh > index f3523e8..abb638e 100755 > --- a/scripts/ci_build.sh > +++ b/scripts/ci_build.sh > @@ -115,6 +115,7 @@ else > multiconfig:qemuamd64-stretch:isar-image-base \ > multiconfig:qemuamd64-buster:isar-image-base \ > multiconfig:qemuamd64-buster-tgz:isar-image-base \ > + multiconfig:nand-ubi-demo-buster:isar-image-ubi \ > multiconfig:rpi-jessie:isar-image-base > # qemu-user-static of <= buster too old to build that > #multiconfig:qemuarm64-buster:isar-image-base