public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Claudius Heine <claudius.heine.ext@siemens.com>
To: Henning Schild <henning.schild@siemens.com>
Cc: isar-users@googlegroups.com, Claudius Heine <ch@denx.de>
Subject: Re: [PATCH v2 4/4] meta-isar: added nand-ubi-demo example to demonstrate UBI use
Date: Thu, 31 Jan 2019 11:11:03 +0100	[thread overview]
Message-ID: <b9c5d0f7-dbe0-c766-ef2c-6d1198cd367f@siemens.com> (raw)
In-Reply-To: <20190130173228.73488cec@md1za8fc.ad001.siemens.net>

Hi Henning,

On 30/01/2019 17.32, Henning Schild wrote:
> On Wed, 30 Jan 2019 09:02:29 +0100
> "[ext] claudius.heine.ext@siemens.com" <claudius.heine.ext@siemens.com>
> wrote:
> 
>> From: Claudius Heine <ch@denx.de>
>>
>> Signed-off-by: Claudius Heine <ch@denx.de>
>> ---
>>   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.

Yes, see my other patchset, that should simplify and generalize the 
templating mechanism.

> 
>> +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.

You are right, that could be done a bit simpler. I will try.

Claudius

> 
> 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
> 

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de

  reply	other threads:[~2019-01-31 10:11 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-30  8:02 [PATCH v2 0/4] UBI support claudius.heine.ext
2019-01-30  8:02 ` [PATCH v2 1/4] doc/user: added targz-img to image type list claudius.heine.ext
2019-01-30 16:19   ` Henning Schild
2019-01-30  8:02 ` [PATCH v2 2/4] meta/classes: added ubifs-img class claudius.heine.ext
2019-01-30  8:02 ` [PATCH v2 3/4] meta/classes: added ubi-img class claudius.heine.ext
2019-01-30  8:02 ` [PATCH v2 4/4] meta-isar: added nand-ubi-demo example to demonstrate UBI use claudius.heine.ext
2019-01-30 16:32   ` Henning Schild
2019-01-31 10:11     ` Claudius Heine [this message]
2019-01-30 12:57 ` [PATCH v2 0/4] UBI support Claudius Heine

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b9c5d0f7-dbe0-c766-ef2c-6d1198cd367f@siemens.com \
    --to=claudius.heine.ext@siemens.com \
    --cc=ch@denx.de \
    --cc=henning.schild@siemens.com \
    --cc=isar-users@googlegroups.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox