From: Henning Schild <henning.schild@siemens.com>
To: "[ext] claudius.heine.ext@siemens.com" <claudius.heine.ext@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: Wed, 30 Jan 2019 17:32:28 +0100 [thread overview]
Message-ID: <20190130173228.73488cec@md1za8fc.ad001.siemens.net> (raw)
In-Reply-To: <20190130080229.604-5-claudius.heine.ext@siemens.com>
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.
> +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
next prev parent reply other threads:[~2019-01-30 16:32 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 [this message]
2019-01-31 10:11 ` Claudius Heine
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=20190130173228.73488cec@md1za8fc.ad001.siemens.net \
--to=henning.schild@siemens.com \
--cc=ch@denx.de \
--cc=claudius.heine.ext@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