Hi,
Am Freitag, dem 03.02.2023 um 22:07 +0100 schrieb Alexandre Belloni:
> This breaks oe-selftest:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/4760/steps/15/logs/stdio
thanks for having this thrown on the autobuilder!
> 2023-02-03 17:55:08,025 - oe-selftest - INFO -
> fitimage.FitImageTests.test_sign_cascaded_uboot_fit_image
> (subunit.RemotedTestCase)
> 2023-02-03 17:55:08,026 - oe-selftest - INFO - ... FAIL
> Stderr:
> 2023-02-03 14:32:52,619 - oe-selftest - INFO - Adding: "include selftest.inc"
> in
> /home/pokybuild/yocto-worker/oe-selftest-centos/build/build-st-35279/conf/local.conf
> 2023-02-03 14:32:52,620 - oe-selftest - INFO - Adding: "include bblayers.inc"
> in bblayers.conf
> 2023-02-03 17:55:08,026 - oe-selftest - INFO - 13: 4/22 399/509 (54.05s) (0
> failed)
> (fitimage.FitImageTests.test_sign_cascaded_uboot_fit_image)
> 2023-02-03 17:55:08,026 - oe-selftest - INFO -
> testtools.testresult.real._StringException:
> Traceback (most recent call last):
> File "/home/pokybuild/yocto-worker/oe-selftest-
> centos/build/meta/lib/oeqa/selftest/cases/fitimage.py", line 612, in
> test_sign_cascaded_uboot_fit_image
> bitbake("virtual/bootloader")
> File
> "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/utils/commands.py",
> line 236, in bitbake
> return runCmd(cmd, ignore_status, timeout, output_log=output_log,
> **options)
> File
> "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/utils/commands.py",
> line 214, in runCmd
> raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s"
> % (command,
> result.status, exc_output))
> AssertionError: Command 'bitbake virtual/bootloader' returned non-zero exit
> status 1:
>
> ERROR: barebox-2023.01.0-r0 do_configure: No defconfig given. Either add file
> 'file://defconfig' to SRC_URI or set BAREBOX_CONFIG
This fails since BAREBOX_CONFIG is not set to any default, yet.
This is similar to what the uboot recipes expect to be set from the MACHINE as
UBOOT_MACHINE.
To limit the impact of barebox to oe-core, I would set BAREBOX_CONFIG overrides
for the default
machines contained in oe-core in the barebox recipe. Then they don't have to be
set in the
machine.conf files.
> ERROR: barebox-2023.01.0-r0 do_configure:
> ExecutionError('/home/pokybuild/yocto-worker/oe-
> selftest-centos/build/build-st-35279/tmp/work/qemuarm-poky-linux-gnueabi/barebox/2023.01.0-
> r0/temp/run.do_configure.3098535', 1, None, None)
> ERROR: Logfile of failure stored in:
> /home/pokybuild/yocto-worker/oe-selftest-centos/build/build-
> st-35279/tmp/work/qemuarm-poky-linux-gnueabi/barebox/2023.01.0-r0/temp/log.do_configure.3098535
> NOTE: recipe barebox-2023.01.0-r0: task do_configure: Failed
> ERROR: Task
> (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-
> bsp/barebox/barebox_2023.01.0.bb:do_configure) failed with exit code '1'
>
> And as already reported by Richard:
>
> AssertionError:
> The following recipes do not have a maintainer assigned to them. Please add
> an entry to
> meta/conf/distro/include/maintainers.inc file.
> barebox-tools
> (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-
> bsp/barebox/barebox-tools_2023.01.0.bb)
> barebox (/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/recipes-
> bsp/barebox/barebox_2023.01.0.bb)
Yes. At least for now, that's the easier part and was already fixed in my local
patch set by
assigning me. ;)
Regards, Enrico
> On 03/02/2023 14:50:10+0100, Marco Felsch wrote:
> > This adds the support for the barebox bootloader to oe-core. The recipe
> > is based on the recipe found in meta-ptx [1] with a few minor adaptions.
> >
> > This basic support includes the bootloader and the target tools to
> > interact with the bootloader. The host tools support is not part of
> > this commit. This will be added later on as separate recipe.
> >
> > [1] https://github.com/pengutronix/meta-ptx/tree/master/recipes-bsp/barebox
> >
> > Signed-off-by: Marco Felsch <[email protected]>
> > ---
> > meta/conf/documentation.conf | 7 +
> > meta/recipes-bsp/barebox/barebox.inc | 123 ++++++++++++++++++
> > meta/recipes-bsp/barebox/barebox_2023.01.0.bb | 5 +
> > ...IMAGE_COMPRESSION-per-default-to-lz4.patch | 40 ++++++
> > 4 files changed, 175 insertions(+)
> > create mode 100644 meta/recipes-bsp/barebox/barebox.inc
> > create mode 100644 meta/recipes-bsp/barebox/barebox_2023.01.0.bb
> > create mode 100644
> > meta/recipes-bsp/barebox/files/0001-pbl-set-IMAGE_COMPRESSION-per-default-
> > to-lz4.patch
> >
> > diff --git a/meta/conf/documentation.conf b/meta/conf/documentation.conf
> > index a27d7a53c3..99e8f8e730 100644
> > --- a/meta/conf/documentation.conf
> > +++ b/meta/conf/documentation.conf
> > @@ -77,6 +77,13 @@ AUTOREV[doc] = "When SRCREV is set to the value of this
> > variable, it
> > specifies t
> >
> > B[doc] = "The Build Directory. The OpenEmbedded build system places
> > generated objects into the
> > Build Directory during a recipe's build process."
> > BAD_RECOMMENDATIONS[doc] = "A list of packages not to install despite
> > being recommended by a
> > recipe. Support for this variable exists only when using the IPK or RPM
> > packaging backends."
> > +BAREBOX_BUILDSYSTEM_VERSION[doc] = "Build system version to add to the
> > barebox image. By
> > default this is the git description of the containing layer."
> > +BAREBOX_CONFIG[doc] = "The barebox kconfig defconfig file. Not used if a
> > file called defconfig
> > is added to the SRC_URI."
> > +BAREBOX_ENV_DIR[doc] = "Overlay the barebox built-in environment with the
> > environment provided
> > by the BSP if specified."
> > +BAREBOX_BINARY[doc] = "Specify the barebox binary to install. If not
> > specified all barebox
> > artifacts are installed."
> > +BAREBOX_IMAGE[doc] = "A unique barebox image name. Unused if
> > ${BAREBOX_BINARY} is not set."
> > +BAREBOX_SUFFIX[doc] = "Specify the suffix for ${BAREBOX_IMAGE}."
> > +BAREBOX_FIRMWARE_DIR[doc] = "Overwrite barebox' firmware blobs search
> > directory
> > (CONFIG_EXTRA_FIRMWARE_DIR) with this path, default ${B}/firmware"
> > BB_DANGLINGAPPENDS_WARNONLY[doc] = "Defines how BitBake handles situations
> > where an append file
> > (.bbappend) has no corresponding recipe file (.bb)."
> > BB_DISKMON_DIRS[doc] = "Monitors disk space and available inodes during
> > the build and allows
> > you to control the build based on these parameters."
> > BB_DISKMON_WARNINTERVAL[doc] = "Defines the disk space and free inode
> > warning intervals. To set
> > these intervals, define the variable in the conf/local.conf file in the
> > Build Directory."
> > diff --git a/meta/recipes-bsp/barebox/barebox.inc
> > b/meta/recipes-bsp/barebox/barebox.inc
> > new file mode 100644
> > index 0000000000..896db9739f
> > --- /dev/null
> > +++ b/meta/recipes-bsp/barebox/barebox.inc
> > @@ -0,0 +1,123 @@
> > +SUMMARY = "barebox is a bootloader designed for embedded systems. It runs
> > on a variety of
> > architectures including x86, ARM, MIPS, PowerPC and others."
> > +HOMEPAGE = "https://barebox.org/"
> > +SECTION = "bootloaders"
> > +PROVIDES = "virtual/bootloader"
> > +
> > +LICENSE = "GPL-2.0-only"
> > +LIC_FILES_CHKSUM = "file://COPYING;md5=f5125d13e000b9ca1f0d3364286c4192"
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +
> > +inherit kernel-arch deploy cml1 pkgconfig
> > +
> > +# libusb1 is only required for usb tools like imx-usb-loader. These tools
> > may
> > +# be enabled within the defconfig file so depend on it here to be more user
> > +# friendly (do not abort the build). The actual tools are provided by the
> > +# barebox-tools package.
> > +DEPENDS = "libusb1 bison-native flex-native"
> > +
> > +export KBUILD_BUILD_USER ?= "oe-user"
> > +export KBUILD_BUILD_HOST ?= "oe-host"
> > +
> > +SRC_URI = "https://barebox.org/download/barebox-${PV}.tar.bz2"
> > +
> > +S = "${WORKDIR}/barebox-${PV}"
> > +B = "${WORKDIR}/build"
> > +
> > +def get_layer_rev(path):
> > + try:
> > + rev, _ = bb.process.run("git describe --match='' --always --dirty
> > --broken", cwd=path)
> > + except bb.process.ExecutionError:
> > + rev = ""
> > + return rev.strip()
> > +
> > +BAREBOX_BUILDSYSTEM_VERSION ??=
> > "${@get_layer_rev(os.path.dirname(d.getVar('FILE')))}"
> > +
> > +BAREBOX_FIRMWARE_DIR ??= "${B}/firmware"
> > +
> > +EXTRA_OEMAKE = " \
> > + CROSS_COMPILE=${TARGET_PREFIX} -C ${S} O=${B} \
> > + BUILDSYSTEM_VERSION=${BAREBOX_BUILDSYSTEM_VERSION} \
> > + CONFIG_EXTRA_FIRMWARE_DIR=${BAREBOX_FIRMWARE_DIR} \
> > +"
> > +
> > +BAREBOX_CONFIG ?= ""
> > +
> > +do_configure() {
> > + if [ -e ${WORKDIR}/defconfig ]; then
> > + cp ${WORKDIR}/defconfig ${B}/.config
> > + else
> > + if [ -n "${BAREBOX_CONFIG}" ]; then
> > + oe_runmake ${BAREBOX_CONFIG}
> > + else
> > + bbfatal "No defconfig given. Either add file
> > 'file://defconfig' to
> > SRC_URI or set BAREBOX_CONFIG"
> > + fi
> > + fi
> > +
> > + ${S}/scripts/kconfig/merge_config.sh -m .config ${@"
> > ".join(find_cfgs(d))}
> > + cml1_do_configure
> > +}
> > +
> > +BAREBOX_ENV_DIR ??= "${WORKDIR}/env/"
> > +
> > +do_compile () {
> > + export
> > userccflags="${TARGET_LDFLAGS}${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
> > + unset LDFLAGS
> > + unset CFLAGS
> > + unset CPPFLAGS
> > + unset CXXFLAGS
> > + unset MACHINE
> > +
> > + if [ -d ${BAREBOX_ENV_DIR} ]; then
> > + BAREBOX_DEFAULT_ENV="$(grep
> > ^CONFIG_DEFAULT_ENVIRONMENT_PATH .config | cut -d
> > '=' -f 2 | tr -d '"')"
> > + oe_runmake
> > CONFIG_DEFAULT_ENVIRONMENT_PATH="\"${BAREBOX_DEFAULT_ENV}
> > ${BAREBOX_ENV_DIR}\""
> > + else
> > + oe_runmake
> > + fi
> > +}
> > +
> > +BAREBOX_BINARY ??= ""
> > +BAREBOX_SUFFIX ??= "img"
> > +BAREBOX_SUFFIX:x86 ??= "efi"
> > +BAREBOX_SUFFIX:x86-64 ??= "efi"
> > +BAREBOX_IMAGE ?= "${PN}-${MACHINE}-${PV}-${PR}.${BAREBOX_SUFFIX}"
> > +
> > +do_install () {
> > + if [ -n "${BAREBOX_BINARY}" ]; then
> > +
> > + BAREBOX_BIN=${B}/${BAREBOX_BINARY}
> > + if [ ! -f "${BAREBOX_BIN}" ]; then
> > + BAREBOX_BIN=${B}/images/${BAREBOX_BINARY}
> > + fi
> > + if [ ! -f "${BAREBOX_BIN}" ]; then
> > + bbfatal "Failed to locate ${BAREBOX_BINARY}"
> > + fi
> > +
> > + install -D -m 644 ${BAREBOX_BIN} ${D}/boot/${BAREBOX_IMAGE}
> > + ln -sf ${BAREBOX_IMAGE} ${D}/boot/${BAREBOX_BINARY}
> > + else
> > + install -d ${D}/boot/
> > + for image in $(cat ${B}/barebox-flash-images); do
> > + install -m 644 ${B}/${image} ${D}/boot/
> > + done
> > + fi
> > +}
> > +FILES:${PN} = "/boot"
> > +
> > +do_deploy () {
> > + if [ -n "${BAREBOX_BINARY}" ]; then
> > +
> > + BAREBOX_BIN=${B}/${BAREBOX_BINARY}
> > + if [ ! -f "${BAREBOX_BIN}" ]; then
> > + BAREBOX_BIN=${B}/images/${BAREBOX_BINARY}
> > + fi
> > +
> > + install -D -m 644 ${BAREBOX_BIN}
> > ${DEPLOYDIR}/${BAREBOX_IMAGE}
> > + ln -sf ${BAREBOX_IMAGE} ${DEPLOYDIR}/${BAREBOX_BINARY}
> > + else
> > + for image in $(cat ${B}/barebox-flash-images); do
> > + cp ${B}/${image} ${DEPLOYDIR}
> > + done
> > + fi
> > +}
> > +addtask deploy after do_compile
> > diff --git a/meta/recipes-bsp/barebox/barebox_2023.01.0.bb b/meta/recipes-
> > bsp/barebox/barebox_2023.01.0.bb
> > new file mode 100644
> > index 0000000000..ca0c1566cf
> > --- /dev/null
> > +++ b/meta/recipes-bsp/barebox/barebox_2023.01.0.bb
> > @@ -0,0 +1,5 @@
> > +require barebox.inc
> > +
> > +SRC_URI[sha256sum] =
> > "20532daff1720fbefa0e02dba0294e6817d29c155f49b9b549db9577435fc7b6"
> > +
> > +SRC_URI += "file://0001-pbl-set-IMAGE_COMPRESSION-per-default-to-lz4.patch"
> > diff --git
> > a/meta/recipes-bsp/barebox/files/0001-pbl-set-IMAGE_COMPRESSION-per-default-to-
> > lz4.patch
> > b/meta/recipes-bsp/barebox/files/0001-pbl-set-IMAGE_COMPRESSION-per-default-to-
> > lz4.patch
> > new file mode 100644
> > index 0000000000..f37d608cf6
> > --- /dev/null
> > +++
> > b/meta/recipes-bsp/barebox/files/0001-pbl-set-IMAGE_COMPRESSION-per-default-to-lz4.patch
> > @@ -0,0 +1,40 @@
> > +From d8ea183cc1894b04b12f466a8779e61f0c1ac681 Mon Sep 17 00:00:00 2001
> > +From: Marco Felsch <[email protected]>
> > +Date: Tue, 6 Dec 2022 12:26:14 +0100
> > +Subject: [PATCH] pbl: set IMAGE_COMPRESSION per default to lz4
> > +
> > +The LZO compression hasn't been updated since 2017 and embedded build
> > +tools like Yocto dropping the support for it [1]. So switch to LZ4 as
> > +default since this seems to be the most comparable compression standard
> > +according Ahmads measurements [2] and the kernel suggestion [3].
> > +
> > +[1]
> > https://lore.kernel.org/all/[email protected]/
> > +[2]
> > https://lore.barebox.org/barebox/[email protected]/
> > +[3] https://lkml.org/lkml/2020/7/1/848
> > +
> > +Signed-off-by: Marco Felsch <[email protected]>
> > +Link:
> > https://lore.barebox.org/[email protected]
> > +Signed-off-by: Sascha Hauer <[email protected]>
> > +
> > +Upstream-Status: Backport
> > +[
> > https://git.pengutronix.de/cgit/barebox/commit/?h=next&id=d8ea183cc1894b04b12f466a8779e61f0c1ac681
> > ]
> > +---
> > + pbl/Kconfig | 2 +-
> > + 1 file changed, 1 insertion(+), 1 deletion(-)
> > +
> > +diff --git a/pbl/Kconfig b/pbl/Kconfig
> > +index ba809af2d5..91970c19bc 100644
> > +--- a/pbl/Kconfig
> > ++++ b/pbl/Kconfig
> > +@@ -63,7 +63,7 @@ if IMAGE_COMPRESSION
> > +
> > + choice
> > + prompt "Compression"
> > +- default IMAGE_COMPRESSION_LZO
> > ++ default IMAGE_COMPRESSION_LZ4
> > +
> > + config IMAGE_COMPRESSION_LZ4
> > + bool "lz4"
> > +--
> > +2.30.2
> > +
> > --
> > 2.30.2
> >
>
> >
> >
> >
>
>
--
Pengutronix e.K. | Enrico Jörns |
Embedded Linux Consulting & Support | https://www.pengutronix.de/ |
Steuerwalder Str. 21 | Phone: +49-5121-206917-180 |
31137 Hildesheim, Germany | Fax: +49-5121-206917-9 |
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#177682):
https://lists.openembedded.org/g/openembedded-core/message/177682
Mute This Topic: https://lists.openembedded.org/mt/97205542/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-