From: Nicu Liviu Huhulea <nicusor.huhulea@gmail.com>
To: isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH] Fix do_copy_boot_files error
Date: Fri, 9 Feb 2024 04:21:50 -0800 (PST) [thread overview]
Message-ID: <5feb979d-5ec2-4801-8966-7df0c44a0278n@googlegroups.com> (raw)
In-Reply-To: <20240131144459.2386220-1-iskochilov@ilbers.de>
[-- Attachment #1.1: Type: text/plain, Size: 3379 bytes --]
Hello,
It seems that I get the same behavior, but with other steps: having 2
images that uses the same dtbs for booting. First image will complete the
build fine and the dtbs are in the deploydir.
The 2nd image does not complete the build because the dtbs are already in
the deploydir.
This happens because of the introduction of the
do_copy_boot_files_setscene() where this verification takes place. From my
perspective a possible solution would be to copy those files
only if they don't exist.
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index d9fc04eb..070a14dd 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -393,7 +393,10 @@ do_copy_boot_files() {
die "${file} not found"
fi
- cp -f "$dtb" "${DEPLOYDIR}/"
+ dtb_name=$(basename "${file}")
+ if [ ! -f "${DEPLOY_DIR_IMAGE}/${dtb_name}" ]; then
+ cp -f "$dtb" "${DEPLOYDIR}/"
+ fi
done
}
addtask copy_boot_files before do_rootfs_postprocess after
do_rootfs_install
On Wednesday, January 31, 2024 at 4:45:48 PM UTC+2 Ilia Skochilov wrote:
> When building different distros with the same machine
> (e.g., phyboard-mira-bullseye and phyboard-mira-bookworm) the following
> error
> occurs:
> do_copy_boot_files: The recipe isar-image-base is trying to install files
> into a shared area when those files already exists.
> It happens when some files have the same names (e.g., dtb files) for
> different
> distros.
>
> Signed-off-by: Ilia Skochilov <iskoc...@ilbers.de>
> ---
> RECIPE-API-CHANGELOG.md | 8 ++++++++
> meta/conf/bitbake.conf | 2 +-
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md
> index bea1287..c9c1eae 100644
> --- a/RECIPE-API-CHANGELOG.md
> +++ b/RECIPE-API-CHANGELOG.md
> @@ -566,3 +566,11 @@ supported, but a warning is issued when it is used.
> Future versions will drop
> When building a custom kernel module, the `KBuild` file might be located in
> a subdirectory. To support this use-case, set `MODULE_DIR=$(PWD)/subdir` in
> the module build recipe.
> +
> +### Change DEPLOY_DIR_IMAGE
> +Change DEPLOY_DIR_IMAGE from ${DEPLOY_DIR}/images/${MACHINE} to
> +${DEPLOY_DIR}/images/${MACHINE}-${DISTRO}. When building different distros
> +with the same machine the following error occurs:
> +do_copy_boot_files: The recipe isar-image-base is trying to install files
> +into a shared area when those files already exists. It happens when some
> +files have the same names (e.g., dtb files) for different distros.
> diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
> index 80dc01c..006ac14 100644
> --- a/meta/conf/bitbake.conf
> +++ b/meta/conf/bitbake.conf
> @@ -56,7 +56,7 @@ WORKDIR =
> "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}/${PN}/${PV}-${PR}"
> GIT_DL_LINK_DIR = "${TMPDIR}/work/${DISTRO}-${DISTRO_ARCH}"
> DEPLOY_DIR_BOOTSTRAP = "${DEPLOY_DIR}/bootstrap"
> DEPLOY_DIR_SDKCHROOT = "${DEPLOY_DIR}/sdkchroot"
> -DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}"
> +DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MACHINE}-${DISTRO}"
> DL_DIR ?= "${TOPDIR}/downloads"
> SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
> SSTATE_MANIFESTS = "${TMPDIR}/sstate-control/${DISTRO}-${DISTRO_ARCH}"
> --
> 2.39.2
>
>
[-- Attachment #1.2: Type: text/html, Size: 3956 bytes --]
next prev parent reply other threads:[~2024-02-10 14:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 14:44 Ilia Skochilov
2024-02-09 12:21 ` Nicu Liviu Huhulea [this message]
2024-02-12 7:58 ` Anton Mikanovich
2024-02-12 9:20 ` Jan Kiszka
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=5feb979d-5ec2-4801-8966-7df0c44a0278n@googlegroups.com \
--to=nicusor.huhulea@gmail.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