Giter VIP home page Giter VIP logo

meta-updater's Introduction

meta-updater

Meta-updater is a Yocto layer that enables over-the-air updates (OTA) with OSTree and Aktualizr — the default client for HERE OTA Connect.

OSTree is a tool for atomic full file system upgrades with rollback capability. OSTree has several advantages over traditional dual-bank systems, but the most important one is that it minimizes network bandwidth and data storage footprint by sharing files with the same contents across file system deployments.

Aktualizr implements Uptane, supports device authentication and provisioning, and is integrated with OSTree. You can connect aktualizr to your own server solution or sign up for a free account at HERE OTA Connect to get started.

Quickstart

If you don’t already have a Yocto project that you want to add OTA to, you can use the HERE OTA Connect Quickstart project to rapidly get up and running on a Raspberry Pi or with QEMU. It takes a standard poky distribution, and adds OTA and OSTree capabilities.

Dependencies

In addition to the standard Yocto dependencies, meta-updater generally requires a few additional dependencies, depending on your use case and target platform. To install these additional packages on Debian/Ubuntu, run this:

sudo apt install cpu-checker default-jre parted

To build for Minnowboard with GRUB, you will also need to install TianoCore’s ovmf package on your host system. On Debian/Ubuntu, you can do so with this command:

sudo apt install ovmf

Table of Contents

The following documentation focuses on tasks that involve the meta-updater layer. If you want to get an idea of the overall developer workflow in OTA Connect, see the OTA Connect Developer Guide.

License

This code is licensed under the MIT license, a copy of which can be found in this repository. All code is copyright HERE Europe B.V., 2016-2020.

We require that contributors accept the terms of Linux Foundation’s Developer Certificate of Origin. Please see the contribution instructions of aktualizr for more information.

meta-updater's People

Contributors

agodard-witekio avatar alistair23 avatar aodukha avatar benkard avatar cajun-rat avatar chbae avatar dl9pf avatar epicnuts avatar eu-siemann avatar jmennius avatar jochenschneider avatar kbushgit avatar lbonn avatar leon-anavi avatar liuming50 avatar maximeborges avatar merltron avatar mike-sul avatar mingliuyan avatar oavramenk avatar oytis avatar pattivacek avatar ricardosalveti avatar rsalveti avatar shr-project avatar stevana avatar tkfu avatar xaviergully avatar ystefinko avatar zee314159 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

meta-updater's Issues

Error building meta-updater in Yocto for raspberrypi

I'm trying to add ostree to a Yocto THUD raspberry pi build. I've added the layers to the bblayers.conf file:
${BSPDIR}/sources/meta-openembedded/meta-filesystems
${BSPDIR}/sources/meta-updater \
${BSPDIR}/sources/meta-updater-raspberrypi \

And enabled 'sota' and some configuration in the local.conf file:

make sure to inherit OTA functionality from the meta-updater* layers

INHERIT += " sota"
DISTRO_FEATURES += " usrmerge"

When I try to build I get the following error:

ERROR: ostree-v2018.9-r0 do_unpack: gitsm: submodule unpack failed: UnpackError Unpack failure for URL: 'gitsm://gitlab.gnome.org/GNOME/libglnx.git;protocol=https;name=libglnx;subpath=libglnx;bareclone=1;nobranch=1'. No up to date source found: clone directory not available or not up to date: /home/gwilson/Qt/Qt-5.13.1/Yocto-build-RPi3/build-raspberrypi3/../downloads/git2/gitlab.gnome.org.GNOME.libglnx.git; shallow clone not enabled
ERROR: ostree-v2018.9-r0 do_unpack: Unpack failure for URL: 'gitsm://gitlab.gnome.org/GNOME/libglnx.git;protocol=https;name=libglnx;subpath=libglnx;bareclone=1;nobranch=1'. No up to date source found: clone directory not available or not up to date: /home/gwilson/Qt/Qt-5.13.1/Yocto-build-RPi3/build-raspberrypi3/../downloads/git2/gitlab.gnome.org.GNOME.libglnx.git; shallow clone not enabled

Am I missing some configuration?

Raspberry pi3 not booting with meta-updater layer

Hello. I have a raspberry pi3 Model B and I have created a minimal image using the yocto project (Hardknott)

I initially created a image using the following layers:

 BBLAYERS ?= " \
    /drv2/ostree/poky/meta \
    /drv2/ostree/poky/meta-poky \
    /drv2/ostree/poky/meta-yocto-bsp \
    /drv2/ostree/poky/meta-raspberrypi \
    /drv2/ostree/poky/meta-updater \
"

bitbake core-image-minimal

This generated a *.rpi-sdimg file which I then dd'd onto a SD card and was able to successfully run.

I then updated my bblayers.conf file and added the following:

BBLAYERS ?= " \
      /drv2/ostree/poky/meta \
      /drv2/ostree/poky/meta-poky \
      /drv2/ostree/poky/meta-yocto-bsp \
      /drv2/ostree/poky/meta-raspberrypi \
     /drv2/ostree/poky/meta-updater \
     /drv2/ostree/poky/meta-openembedded/meta-filesystems \
     /drv2/ostree/poky/meta-openembedded/meta-oe \
     /drv2/ostree/poky/meta-openembedded/meta-python \
"

I also updated my local.conf by adding the following:

require conf/distro/sota.conf.inc
INHERIT += " sota"

I reran bitbake and this time flashed raspberrypi.wic file into the sd card via the dd tool.

This time however when I try to boot I see the following error:
Warning: no boot file name; using COA884C70.img

This error basically shows up multiple times until a time out occurs.

What am I missing ?

Locking repo exclusive failed: Resource temporarily unavailable

We try to store two (similar) images into the same OSTree repository. The thought is that we could switch between the two using OSTree (which works surprisingly well). On our CI infrastructure however it seems that this can cause race conditions when two independent bitbake instances use the same OSTREE_REPO. Maybe the do_image_ostree needs some higher level locking mechanism which makes sure the task gets exclusive access to the OSTree repo?

ERROR: torizon-core-docker-0.2.26-r0 do_image_ostree: Function failed: do_image_ostree (log file is located at /workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/temp/log.do_image_ostree.1720)
ERROR: Logfile of failure stored in: /workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/temp/log.do_image_ostree.1720
Log data follows:
| DEBUG: Executing python function set_image_size
| DEBUG: 844146.000000 = 367020 * 2.300000
| DEBUG: 844146.000000 = max(844146.000000, 65536)[844146.000000] + 2
| DEBUG: 844146.000000 = int(844146.000000)
| DEBUG: 844146 = aligned(844146)
| DEBUG: returning 844146
| DEBUG: Python function set_image_size finished
| DEBUG: Executing python function extend_recipe_sysroot
| NOTE: Direct dependencies are ['/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-core/glibc/ldconfig-native_2.12.1.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/meta-toradex-torizon/recipes-kernel/linux/linux-stable_git.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/quilt/quilt-native_0.65.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/meta-updater/recipes-sota/ostree/ostree_git.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-core/glibc/cross-localedef-native_2.28.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-support/lzop/lzop_1.03.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-connectivity/openssl/openssl_1.1.1.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-kernel/kmod/kmod-native_git.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-extended/xz/xz_5.2.4.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/binutils/binutils-cross_2.31.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-extended/pigz/pigz_2.4.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-extended/unzip/unzip_6.0.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/gcc/gcc-cross_8.2.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-kernel/dtc/dtc_1.4.7.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-core/coreutils/coreutils_8.30.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/makedevs/makedevs_1.0.1.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-core/util-linux/util-linux_2.32.1.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/bison/bison_3.0.4.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-core/update-rc.d/update-rc.d_0.8.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-extended/bc/bc_1.07.1.bb:do_populate_sysroot', '/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-kernel/kmod/depmodwrapper-cross_1.0.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb:do_populate_sysroot', 'virtual:native:/workdir/oe/build/conf/../../layers/openembedded-core/meta/recipes-devtools/opkg/opkg_0.3.6.bb:do_populate_sysroot']
| NOTE: Installed into sysroot: ['linux-stable', 'ostree-native', 'lzop-native', 'kern-tools-native', 'binutils-cross-arm', 'unzip-native', 'gcc-cross-arm', 'coreutils-native', 'bison-native', 'bc-native', 'gobject-introspection-native', 'fuse-native', 'gpgme-native', 'libcap-native', 'dosfstools-native', 'mtools-native', 'u-boot-script-toradex', 'parted-native', 'mpfr-native', 'libmpc-native', 'gmp-native', 'linux-libc-headers', 'glibc', 'libassuan-native', 'libgpg-error-native', 'swig-native', 'gperf-native', 'gcc-runtime', 'libgcc']
| NOTE: Skipping as already exists in sysroot: ['ldconfig-native', 'quilt-native', 'cross-localedef-native', 'openssl-native', 'kmod-native', 'xz-native', 'pseudo-native', 'pigz-native', 'qemuwrapper-cross', 'dtc-native', 'makedevs-native', 'util-linux-native', 'update-rc.d-native', 'depmodwrapper-cross', 'opkg-utils-native', 'opkg-native', 'systemd-systemctl-native', 'gnu-config-native', 'libarchive-native', 'curl-native', 'glib-2.0-native', 'pkgconfig-native', 'python3-native', 'automake-native', 'autoconf-native', 'libtool-native', 'attr-native', 'e2fsprogs-native', 'shadow-native', 'lzo-native', 'zlib-native', 'gtk-doc-native', 'gettext-minimal-native', 'flex-native', 'texinfo-dummy-native', 'qemu-native', 'nss-native', 'debianutils-native', 'ncurses-native', 'readline-native', 'libsolv-native', 'libffi-native', 'bzip2-native', 'gettext-native', 'libpcre-native', 'sqlite3-native', 'gdbm-native', 'm4-native', 'alsa-lib-native', 'pixman-native', 'libusb1-native', 'nspr-native', 'ninja-native', 'cmake-native', 'rpm-native', 'expat-native', 'libpng-native', 'util-macros-native', 're2c-native', 'db-native', 'dbus-native', 'elfutils-native', 'file-native', 'popt-native']
| DEBUG: sed -e 's:^[^/]*/:/workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/recipe-sysroot-native/:g' /workdir/oe/tmp/sysroots-components/x86_64/gcc-cross-arm/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/bison-native/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/gobject-introspection-native/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/gpgme-native/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/gmp-native/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/libassuan-native/fixmepath /workdir/oe/tmp/sysroots-components/x86_64/libgpg-error-native/fixmepath | xargs sed -i -e 's:FIXMESTAGINGDIRTARGET:/workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/recipe-sysroot:g; s:FIXMESTAGINGDIRHOST:/workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/recipe-sysroot-native:g' -e 's:FIXME_COMPONENTS_DIR:/workdir/oe/tmp/sysroots-components:g' -e 's:FIXME_HOSTTOOLS_DIR:/workdir/oe/tmp/hosttools:g' -e 's:FIXME_PKGDATA_DIR:/workdir/oe/tmp/pkgdata/colibri-imx7:g' -e 's:FIXME_PSEUDO_LOCALSTATEDIR:/workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/pseudo/:g' -e 's:FIXME_LOGFIFO:/workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/temp/fifo.1720:g'
| DEBUG: Python function extend_recipe_sysroot finished
| DEBUG: Executing shell function do_image_ostree
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| 469198ac3736b9a00eb64c8b0f300b892244a705941a695c84b8a7f089408d86
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| unknown fcntl argument 37, assuming long argument.
| error: Locking repo exclusive failed: Resource temporarily unavailable
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_image_ostree (log file is located at /workdir/oe/tmp/work/colibri_imx7-torizon-linux-gnueabi/torizon-core-docker/0.2.26-r0/temp/log.do_image_ostree.1720)
NOTE: recipe torizon-core-docker-0.2.26-r0: task do_image_ostree: Failed
ERROR: Task (/workdir/oe/build/conf/../../layers/meta-toradex-torizon/recipes-images/images/torizon-core-docker.bb:do_image_ostree) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5476 tasks of which 4306 didn't need to be rerun and 1 failed.
NOTE: Writing buildhistory

Summary: 1 task failed:
  /workdir/oe/build/conf/../../layers/meta-toradex-torizon/recipes-images/images/torizon-core-docker.bb:do_image_ostree
Summary: There were 38 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Support for Yocto 3.5 Kirkstone

The Kirkstone development just started few weeks ago and now there is first incompatible change affecting meta-updater.

reproducible_build_simple.bbclass was removed in:
https://git.openembedded.org/openembedded-core/commit/?id=f38a8de19550ae216575b5b39163666f74b07e2d

and sota.conf.inc inherits it in:
https://github.com/shr-project/meta-updater/blob/31a770d3c0cb22c9f4ece068208d2e6b2c28f1ee/conf/distro/sota.conf.inc#L15

So now either meta-updater needs to create a separate branch for hardknott (and gatesgarth) and keep master for the next LTS Kirkstone. Or just remove this inherit and let it on DISTRO maintainers to add it manually.

I'll also ask Richard if he is OK with restoring the bbclass, but now just showing a warning that it's deprecated and enabled by default.

Missing warrior branch

Is there a branch for warrior planned? We currently use 550ef5c1c32be58cca91f80afbedc23d5e9b79b6 for warrior, but I am not sure up to which point I can safely fast-forward...

Gatesgarth branch

I'm currently using meta-updater master (not latest due #791) just fine with latest OE gatesgarth, but it would be good to have a branch dedicated for it, as OE master moves forward with the next release.

After we land 791 (and possibly additional fixes related to it), we should be good to create a gatesgarth branch that would be initially in sync with master.

System unbootable after upgrading ostree

I tried to update the OSTree recipe to newer version (current master, 2017.12+) and it made the OTA image unbootable.

When booting such image, the init.sh script fails with the error "mkdir: can't create directory 'run/initramfs': Invalid argument", followed by a kernel panic.

When I mounted the image on my desktop and tried writing to /ostree/deploy/poky/deploy/*/, I got a similar error.

Inspecting the image with the 'debugfs' utility (version 1.42.12), it looks like the directory has extended attribute with an empty name:

# debugfs /dev/mmcblk0p2
debugfs:  cd ostree/deploy/poky/deploy
debugfs:  stat b75cf8e31aed705fe7cf5ea40d43f6325416345ea80def0acb84dad67d3301c7.0
Inode: 16   Type: directory    Mode:  0755   Flags: 0x80000
Generation: 0    Version: 0x00000000:00000000
User:     0   Group:     0   Size: 4096
File ACL: 0    Directory ACL: 0
Links: 13   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x59db3191:00000000 -- Mon Oct  9 11:21:37 2017
 atime: 0x59db31b8:00000000 -- Mon Oct  9 11:22:16 2017
 mtime: 0x59db3191:00000000 -- Mon Oct  9 11:21:37 2017
crtime: 0x59db31b9:00000000 -- Mon Oct  9 11:22:17 2017
Size of extra inode fields: 32
Extended attributes stored in inode body: 
   = "02 00 00 00 " (4)
EXTENTS:
(0):2398

The content of the generated ostree repo contains the "system.posix_acl_default" extended attribute:

$ ostree --repo=$src ls -X b75cf8e31aed705fe7cf5ea40d43f6325416345ea80def0acb84dad67d3301c7 / | head -n 1
d00755 0 0      0 { [(b'system.posix_acl_default', [byte 0x02, 0x00, 0x00, 0x00])] } /

The ostree repo generated before the version change didn't had such attribute.

As a workaround, I added --no-xattrs to the ostree commit command on image_types_ostree.bbclass.

(cc: @cgwalters )

sstate signature issues

There are quite a few issues reported by oe-core/scripts/sstate-diff-machines.sh script in meta-updater recipes, mostly allarch recipes depending on TUNE_PKGARCH without setting SIGGEN_EXCLUDERECIPES_ABISAFE/SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS

ERROR: 32 issues were found in these recipes: aktualizr-device-prov aktualizr-device-prov-creds aktualizr-device-prov-hsm aktualizr-uboot-env-rollback networkd-dhcp-conf primary-network-config secondary-network-config

Can you please run the script and fix the issues it reports?

Support OSTree archive as tarball

To decouple the build system from OSTree repository handling a tarball containing the OSTree repository in archive mode with just the single commit would be useful. This tarball can then be copied/moved/uploaded to a server where it then gets moved into a (potentially public) repository (e.g. using pull-local).

This is how the Fedora CoreOS builder currently works, where one of the build output artifacts is a tarball with the OSTree with just the single commit of this particular build.

Support tarballs OTA images

To integrate meta-updater with a custom installation systems we need a tarball of the updateable ostree tree. Currently image_types_ota creates ext4 images only. The class should be extended to support tar. Maybe the generation and naming of the image formats should be hierarchical, e.g. otaimg.ext4/otaimg.tar...

Unable to run init

I am trying to use OSTree with OE with RISC-V. I have ported meta-updater to a new board (freedom-u540). I have U-Boot starting where I then run these commands:

setenv bootargs earlycon=sbi earlycon=sbi console=ttySIF0 console=tty0 root=/dev/ram0 rw rootfstype=ext4 rootwait rootdelay=2 ramdisk_size=16384 ostree_root=/dev/mmcblk0p3
setenv devtype mmc
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} uImage;
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} initramfs-ostree-image-freedom-u540.cpio.gz.u-boot
bootm ${kernel_addr_r} ${ramdisk_addr_r} $fdt_addr_r

Where /dev/mmcblk0p3 contains my normal working rootFS, while initramfs-ostree-image-freedom-u540.cpio.gz.u-boot is the initrd produced by OE.

I see this failure during the kernel boot:

[ 8.067928] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: (null)
[ 8.078098] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[ 8.085028] CPU: 0 PID: 1 Comm: init Not tainted 5.2.1 #1
[ 8.090405] Call Trace:
[ 8.092853] [] walk_stackframe+0x0/0xa6
[ 8.098223] [] show_stack+0x2a/0x34
[ 8.103267] [] dump_stack+0x66/0x82
[ 8.108296] [] panic+0xdc/0x246
[ 8.112983] [] do_exit+0x740/0x7a6
[ 8.117931] [] do_group_exit+0x2a/0xba
[ 8.123228] [] __wake_up_parent+0x0/0x22
[ 8.128699] [] ret_from_syscall+0x0/0xe
[ 8.134079] SMP: stopping secondary CPUs
[ 8.137994] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 ]---

This is in my local.conf:

INHERIT_append_freedom-u540 = " sota"
DISTRO_FEATURES_append_freedom-u540 = " usrmerge"
DISTRO_FEATURES_NATIVE_append_freedom-u540 = " sota"

Any ideas why the init is dying? I'm using systemd as the init.

Python execution very slow

Python scripts/programs appear to be very slow. Already running the Python interpreter is slower than usual. Using python3 -v shows that Python detects the bytecode files (pyc) as stale:

$ python3 -v
import _frozen_importlib # frozen
import _imp # builtin
import sys # builtin
import '_warnings' # <class '_frozen_importlib.BuiltinImporter'>
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
import '_frozen_importlib_external' # <class '_frozen_importlib.FrozenImporter'>
import '_io' # <class '_frozen_importlib.BuiltinImporter'>
import 'marshal' # <class '_frozen_importlib.BuiltinImporter'>
import 'posix' # <class '_frozen_importlib.BuiltinImporter'>
import _thread # previously loaded ('_thread')
import '_thread' # <class '_frozen_importlib.BuiltinImporter'>
import _weakref # previously loaded ('_weakref')
import '_weakref' # <class '_frozen_importlib.BuiltinImporter'>
# installing zipimport hook
import 'zipimport' # <class '_frozen_importlib.BuiltinImporter'>
# installed zipimport hook
# bytecode is stale for 'encodings'
# code object from /usr/lib/python3.5/encodings/__init__.py
# could not create '/usr/lib/python3.5/encodings/__pycache__/__init__.cpython-35.pyc': OSError(30, 'Read-only file system')
# wrote '/usr/lib/python3.5/encodings/__pycache__/__init__.cpython-35.pyc'
# bytecode is stale for 'codecs'
# code object from /usr/lib/python3.5/codecs.py
# could not create '/usr/lib/python3.5/__pycache__/codecs.cpython-35.pyc': OSError(30, 'Read-only file system')
# wrote '/usr/lib/python3.5/__pycache__/codecs.cpython-35.pyc'
import '_codecs' # <class '_frozen_importlib.BuiltinImporter'>
import 'codecs' # <_frozen_importlib_external.SourceFileLoader object at 0xb6b5c130>
# bytecode is stale for 'encodings.aliases'
# code object from /usr/lib/python3.5/encodings/aliases.py
# could not create '/usr/lib/python3.5/encodings/__pycache__/aliases.cpython-35.pyc': OSError(30, 'Read-only file system')
# wrote '/usr/lib/python3.5/encodings/__pycache__/aliases.cpython-35.pyc'
import 'encodings.aliases' # <_frozen_importlib_external.SourceFileLoader object at 0xb6b669d0>
...

Recent commit breaking compatibility with thud and warrior

Hi there,
I just discovered a small issue that appeared recently:

12dbe31 is breaking the compatibility with warrior and thud because openssl_1.1.1c.bb does not exist. The openssl version in thud and warrior is 1.1.1b. 1.1.1c is only present in master

Thanks for your work

Best regards

Yocto Kirkstone support

Dear meta-updater team,

I am just asking when do you plan to add kirkstone support?

Thanks for the answer, Frenk

Outdated OSTree branch reference in SRC_URI of ostree_git.bb files

Affected branches (non-exhaustive): rocko, warrior

Current SCR_URI value in recipes-sota\ostree\ostree_git.bb file:

SRC_URI = "gitsm://github.com/ostreedev/ostree.git;branch=master"

Actual branches in https://github.com/ostreedev/ostree:

image

Change to fix the issue:

SRC_URI = "gitsm://github.com/ostreedev/ostree.git;branch=main"

dependency loop after thud update

When trying to update the meta-updater layer to thud bitbake immediately throws a dependency loop error.

Identifying dependency loops (this may take a short while)...

ERROR: 
Dependency loop #1 found:
  Task [projectdir]../external/meta-updater/recipes-core/images/initramfs-ostree-image.bb:do_image_complete (dependent Tasks ['dosfstools_4.1.bb:do_populate_sysroot', 'initramfs-ostree-image.bb:do_image', 'mtools_4.0.18.bb:do_populate_sysroot', 'u-boot-xlnx_2018.3.bb:do_populate_sysroot', 'parted_3.2.bb:do_populate_sysroot', 'initramfs-ostree-image.bb:do_image_cpio', 'zynq-bootfiles.bb:do_populate_sysroot'])
  Task [projectdir]../<board-layer>/recipes-kernel/linux/linux-yocto-stable_4.14.bb:do_bundle_initramfs (dependent Tasks ['initramfs-ostree-image.bb:do_image_complete', 'linux-yocto-stable_4.14.bb:do_install'])
  Task [projectdir]../<board-layer>/recipes-kernel/linux/linux-yocto-stable_4.14.bb:do_deploy (dependent Tasks ['depmodwrapper-cross_1.0.bb:do_populate_sysroot', 'linux-yocto-stable_4.14.bb:do_populate_sysroot', 'linux-yocto-stable_4.14.bb:do_bundle_initramfs', 'linux-yocto-stable_4.14.bb:do_packagedata'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_fetch (dependent Tasks ['linux-yocto-stable_4.14.bb:do_deploy'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_prepare_recipe_sysroot (dependent Tasks ['linux-yocto-stable_4.14.bb:do_populate_sysroot', 'gcc-cross_8.2.bb:do_populate_sysroot', 'gcc-runtime_8.2.bb:do_populate_sysroot', 'glibc_2.28.bb:do_populate_sysroot', 'zynq-bootfiles.bb:do_fetch'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_configure (dependent Tasks ['zynq-bootfiles.bb:do_prepare_recipe_sysroot', 'zynq-bootfiles.bb:do_patch'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_compile (dependent Tasks ['zynq-bootfiles.bb:do_configure'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_install (dependent Tasks ['pseudo_git.bb:do_populate_sysroot', 'zynq-bootfiles.bb:do_compile'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_populate_sysroot (dependent Tasks ['binutils-cross_2.31.bb:do_populate_sysroot', 'zynq-bootfiles.bb:do_install'])

Dependency loop #2 found:
  Task [projectdir]../external/meta-updater/recipes-core/images/initramfs-ostree-image.bb:do_image_complete (dependent Tasks ['dosfstools_4.1.bb:do_populate_sysroot', 'initramfs-ostree-image.bb:do_image', 'mtools_4.0.18.bb:do_populate_sysroot', 'u-boot-xlnx_2018.3.bb:do_populate_sysroot', 'parted_3.2.bb:do_populate_sysroot', 'initramfs-ostree-image.bb:do_image_cpio', 'zynq-bootfiles.bb:do_populate_sysroot'])
  Task [projectdir]../<board-layer>/recipes-kernel/linux/linux-yocto-stable_4.14.bb:do_bundle_initramfs (dependent Tasks ['initramfs-ostree-image.bb:do_image_complete', 'linux-yocto-stable_4.14.bb:do_install'])
  Task [projectdir]../<board-layer>/recipes-kernel/linux/linux-yocto-stable_4.14.bb:do_deploy (dependent Tasks ['depmodwrapper-cross_1.0.bb:do_populate_sysroot', 'linux-yocto-stable_4.14.bb:do_populate_sysroot', 'linux-yocto-stable_4.14.bb:do_bundle_initramfs', 'linux-yocto-stable_4.14.bb:do_packagedata'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_fetch (dependent Tasks ['linux-yocto-stable_4.14.bb:do_deploy'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_unpack (dependent Tasks ['zynq-bootfiles.bb:do_fetch'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_patch (dependent Tasks ['zynq-bootfiles.bb:do_unpack', 'quilt-native_0.65.bb:do_populate_sysroot'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_configure (dependent Tasks ['zynq-bootfiles.bb:do_prepare_recipe_sysroot', 'zynq-bootfiles.bb:do_patch'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_compile (dependent Tasks ['zynq-bootfiles.bb:do_configure'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_install (dependent Tasks ['pseudo_git.bb:do_populate_sysroot', 'zynq-bootfiles.bb:do_compile'])
  Task [projectdir]../<board-layer>/recipes-bsp/zynq-bootfiles/zynq-bootfiles.bb:do_populate_sysroot (dependent Tasks ['binutils-cross_2.31.bb:do_populate_sysroot', 'zynq-bootfiles.bb:do_install'])

I'm not totally sure where the loop comes from but we have a task, zynq-bootfiles which needs the compiled dtb as an input, so it depends on virtual/kernel:do_deploy. And then we have EXTRA_IMAGEDEPENDS_append_sota = " zynq-bootfiles"

This has worked fine before the upgrade to thud.

boot into previous version automatically if the current one fails to boot

Hello,

I am trying to build OSTree on a raspberry pi using yocto (rocko branch) and your layers and I was wondering if there is any way to make my system boot into the previous version automatically if the latest update broke the OS and does not allow it to boot. I would prefer if this could be done automatically, in case my device is deployed somewhere where I do not have physical access to it.

Thank you for your help.

Use native dependencies instead of HOSTTOOLS where possible

As commented in:
d89f02d

Adding python to HOSTTOOLS is a bit toxic, because every recipe will now see python in PATH.

It would be better to use pythonnative only where really needed (and incrementally update to use python3 with python3native). Adding it to HOSTTOOLS just hides issues like this.

It also breaks gpsd from meta-oe, which wasn't detecting native python since python was removed from HOSTTOOLS in
http://git.openembedded.org/openembedded-core/commit/?id=5f8f16b17f66966ae91aeabc23e97de5ecd17447
and now it does detect it only in builds which include meta-updater with this commit:
3a2fecf meta: move HOSTTOOLS definitions to sota.conf.inc

resulting in:

--- 3.19-r0-fail/temp/log.do_compile    2020-02-15 09:08:14.234156815 -0800
+++ 3.19-r0-ok/temp/log.do_compile      2020-02-15 08:43:25.899427562 -0800
@@ -60,21 +60,17 @@
 Checking if compiler accepts -Wreturn-type... yes
 Checking if compiler accepts -Wstrict-prototypes... yes
 Checking if compiler accepts -Wvla... yes
-Checking whether python program exists.../jenkins/mjansa/build-webos-github-master/BUILD/hosttools/python
-Obtaining Python exe path... yes
-Obtaining Python lib dir... yes
-Obtaining Python config vars... ok
+Checking whether python program exists...no
+Target Python doesn't exist - disabling Python.
 Altered configuration variables:
 qt = False (default True): build QT bindings
 manbuild = False (default True): build help in man and HTML formats
 nostrip = True (default False): don't symbol-strip binaries at link time
+python = False (default True): build Python support and modules.
 prefix = /usr (default /usr/local): installation directory prefix
 sysroot = /jenkins/mjansa/build-webos-github-master/BUILD/work/raspberrypi4-webos-linux-gnueabi/gpsd/3.19-r0/recipe-sysroot (default ): cross-development system root
 libdir = /usr/lib (default lib): system libraries
-WARNING: Python module pycairo not found.
-    xgps and xgpsspeed will not be installed
-WARNING: Python module pygobject not found.
-    xgps and xgpsspeed will not be installed
+GPS regression tests suppressed because socket_export or python is off.
....

btrfs rootfs

Hello,

Is there any easy way to get the rootfs (otaimg) as btrfs instead of ext4?

I've been trying to make some changes in meta-updater/classes/image_types_ota.bbclass, it looks like this now:

MIN_BTRFS_SIZE="16384"
if ${OTA_ROOTFS_SIZE} -lt ${MIN_BTRFS_SIZE} ] ; then
OTA_ROOTFS_SIZE=${MIN_BTRFS_SIZE}
bbwarn "Rootfs size is too small for BTRFS. Filesystem will be extended to ${size}K"
fi
# create image
rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg
sync
dd if=/dev/zero of=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg seek=$OTA_ROOTFS_SIZE count=$COUNT bs=1024
mkfs.btrfs ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.otaimg -L otaroot -d ${PHYS_SYSROOT}
rm -rf ${PHYS_SYSROOT}

But I am getting an error when trying to build my image:

ERROR: unknown profile /storage/mika/overlays/poky/build/tmp-glibc/work/raspberrypi3-oe-linux-gnueabi/remote-management-minimal/1.0-r0/ota-sysroot-MpZDO

I am trying to build the [rocko] branch on an [Ubuntu] machine

Thank you!

ExpansionError during parsing; (Also name error)

docker.log

Not able to build with poky container, error log added.
bblayer.conf file script is as follows:

POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf

changes incompatibly

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= "
/workdir/poky/meta
/workdir/poky/meta-openembedded/meta-filesystems
/workdir/poky/meta-openembedded/meta-oe
/workdir/poky/meta-poky
/workdir/poky/meta-updater
/workdir/poky/meta-updater-raspberrypi
/workdir/poky/meta-yocto-bsp
"

I even tried "bitbake core-image-minimal" for complete build but same issue persists

Support for updating fpga bitstream

For our board (based on xilinx zynq) we need to load an fpga bitstream from u-boot before starting Linux.

Ideally this should just be handled alongside kernel and initrmfs which can be updated via ostree. But I couldn't find an obvious way to expand this to other files.

(Together with the bitstream the devivetree needs to be updated)

How should we go about solving this?

Gatesgarth branch.

I'm currently using meta-updater master (not latest due #791) just fine with latest OE gatesgarth, but it would be good to have a branch dedicated for it, as OE master moves forward with the next release.

After we land 791 (and possibly additional fixes related to it), we should be good to create a gatesgarth branch that would be initially in sync with master.

Usage of custom variables for initramfs and bootloader selection

This is regarding the existence of OSTREE_INITRAMFS_IMAGE/TYPES, OSTREE_BOOTLOADER and OSTREE_KERNEL. Some are just inconvenient and some prevent you from using features.

For example, OSTREE_INITRAMFS_IMAGE effectively builds initramfs image w/o OE actually knowing about it, which makes it impossible to include the initramfs in FIT. And the inclusion of initramfs in FIT is crucial if you want to have trusted/secure boot (e.g. verify a signature of initramfs).

I am willing to improve/fix this and I would like to understand if there is any backstory behind these variables and if you would accept such a change (considering users of meta-updater will need to go through a fairly simple migration process).

Barebox AS Bootloader

Hi,

You have u-boot examples for Raspberry Pi etc..
Do you have any example or some documentation for barebox?
Thanks.

updating uboot from uboot

Some background:

In Xilinx's world the inital bootloader and uboot are provided by an image called boot.bin which is then loaded from a qspi flash. Given a boot.bin file, it's easy to update the qspi flash from uboot.

How would we update this file (and a metadata version file) via aktualizr/ostree? The problem we are struggling with is that uboot doen't have access to the deployed ostree repo and only things inside of this can be updated via OTA.

Simultaneous bitbaking generates a wrong commit for the ref of the basename-image branch

Related to: 202a8c7 (#489):

image_types_ostree: Add a unique ref to fix simultaneous bitbaking.
    
    To enable simultaneous bitbaking of two images with the same branch name, create
    a new ref in the OSTree repo using the basename of the image.

PROBLEM

The resulting ref for the ${OSTREE_BRANCHNAME}-${IMAGE_BASENAME} is malformed because refs points to a commit not related to the branch.

HOW TO REPRODUCE

Clone the OSTREE repro create by bitbake:

ostree --repo=${LOCAL_CLONE}/ostree_repo init --mode=archive
ostree --repo=${LOCAL_CLONE}/ostree_repo prod remote add sota  file:///${DEPLOY_DIR_IMAGE}/ostree_repo --no-gpg-verify

Check pull with the ${OSTREE_BRANCHNAME} ref is OK:

ostree   pull  sota:${OSTREE_BRANCHNAME}
80 metadata, 910 content objects imported                                                                                                                                                   
 # OK

Check pull with the ${OSTREE_BRANCHNAME}-${IMAGE_BASENAME} ref is KO:

ostree   pull  sota:${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}
error: Commit 2f1205f045a0d37906897bf02947b8df42404306d01742da858b251f422c97d0: Commit has no requested ref ?${OSTREE_BRANCHNAME}-${IMAGE_BASENAME}? in ref binding metadata (?${OSTREE_BRANCHNAME}?)

Test issue

This is just a test issue to see how it integrate with Github webex bot

Plans to add a master branch for bleeding edge development?

Is there any plan to have a master branch where potentially merging patches for the upcoming pyro release of Yocto? I'm planning to add support for meta-updater in one of my project which is experimental and currently building every layer from master branches. I did no test yet with the morty branch for meta-updater on that setup, but I expect some glitches with recent changes in oe-core master and friends...

Checksum not calculated for initramfs and devicetree

Hi,

We ware reading ostree documentation and came across this statement

If an initramfs or devicetree exist, the checksum must include all of the kernel, initramfs and devicetree contents
On this website https://ostree.readthedocs.io/en/latest/manual/deployment/

I see that image ostree only calculates kernel checksum and not device tree and initramfs.
Is there a reason for that? This ostree change and meta-updater was not updated or is it simply a bug?
If its simply a bug I will create a pull request but I wanted to know if there is some reason behind it.

Thanks

GPIO Pin Modes

Hey guys, basically my problem is that whenever I include this layer, whether it be because I'm changing my boot to use u-boot or something else, my GPIO pins are getting seriously screwed up. The pins alternate between modes ALT1 and ALT5 as well as alternating values high and low. I'm using gpio allreadall to view this. The default for the pins is IN, and that is what all the pins read as before I add in the meta-updater/meta-updater-raspberrypi and switch to u-boot.

Overall I'm trying to set up a custom-dts for my raspberry pi. I was able to get i2c working by creating a patch that writes to a custom dtb and adding that to my KERNEL_DEVICETREE_raspberrypi3_sota.

Now I am trying to get UART working, which usually requires dtoverlay=pi3-disable-bt. I added the changes for this to my custom-dts as well.

However, using gpio allreadall, I see that the pins are all alternating in states ALT1 Value High and ALT5 Value Low. This is appearing whether I include or take out my dtb, and I'm wondering if there is anything you guys know that could be causing this?

I am compiling on Ubuntu 16 for Raspberry Pi 3B+ and including the meta-updater as well as meta-updater-raspberrypi.

My local.conf:
`LICENSE_FLAGS_WHITELIST = "commercial"
DISTRO_FEATURES = "ext2 usbhost ${DISTRO_FEATURES_LIBC} systemd"
DISTRO_FEATURES_BACKFILL_CONSIDERED += "pulseaudio"
PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"

PREFERRED_PROVIDER_jpeg-native = "libjpeg-turbo-native"
PREFERRED_PROVIDER_udev = "eudev"
VIRTUAL-RUNTIME_init_manager = "systemd"
MACHINE_FEATURES_remove = "apm"

PACKAGE_CLASSES = "package_ipk"
DISTRO = "poky-sota"
MACHINE = "raspberrypi3"
RPI_USE_U_BOOT = "1"
KERNEL_IMAGETYPE = "uImage"
KERNEL_MODULE_AUTOLOAD += "
i2c-dev
i2c-2708
rtc-pcf8523
"
KERNEL_DEVICETREE_raspberrypi3_sota = "
bcm2710-rpi-3-b-plus-wispr.dtb
"

DISABLE_OVERSCAN = "1"
ENABLE_UART = "1"
ENABLE_RPI3_SERIAL_CONSOLE = "1"
ENABLE_I2C = "1"
SERIAL_CONSOLE = "57600 ttyAMA0"
VIDEO_CAMERA = "1"

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -P wisprsystems root; "
USER_CLASSES = "image-mklibs image-prelink"
PATCHRESOLVE = "noop"
INHERIT += "rm_work"
CONF_VERSION = "1"`

I understand that this is likely caused by something with U-boot, but seeing as I just added this layer and set RPI_USE_U_BOOT = "1" iin my local.conf, I was hoping this would be able to work without too much complication.

Thanks,
Karl Eaves

Yocto Jetson support

Dear meta-updater team,

I am just asking when do you plan to add jetson meta-tegra support?

Thanks for the answer, Jackychen

kernel command line parameters are not being updated

I am using intel-corei7-64 with grub as bootloader. If I change my kernel command line parameters the changes do not get updated when an update is performed.

Steps:

  1. make image within Yocto project.
  2. run image on board
  3. view kernel parameters cat /proc/cmdline
  4. change kernel command line parameters (OSTREE_KERNEL_ARGS)
  5. make new image within Yocto project.
  6. update board
  7. view kernel parameters cat /proc/cmdline

Expected result: command line parameters are the new parameters from new OSTREE_KERNEL_ARGS

Actual result: command line parameters are stuck at initial values

[RFC] support upgrading devicetree

Hi,

I recently had a small patch merged upstream to the ostree repo [1]. This is intended to be the foundation for supporting the upgrade of a system's devicetree alongside the kernel and the ramdisk as for now.

My primary goal is to support at least the simplest scenario where a single devicetree is delivered as part of an ostree deployment and to make the u-boot based boot process aware of the devicetree location to use it at boot.

We already have some patchsets, still mostly proofs of concept. We successfully used them to test the full flow of delivering a devicetree change through the usual ostree upgrade chain.

Before moving on to refining and hopefully submitting such patches, it would be nice to have some feedback from you. I couldn't find any evidence of previous efforts geared at a similar goal. Did I miss any? What's your opinion on adding devicetree(s) to ostree-upgradable artifacts at all?

In my initial analysis I noticed what's probably a gray area in the Yocto/OE ecosystem w.r.t. to selecting which devicetree should be used in a system at boot. This is probably related to the lack of a common approach for generating u-boot environments to deliver onto the target. We do have KERNEL_DEVICETREE which in my understanding is intended to host all the supported/available devicetree for a given machine, but I'm not aware of a convenient way for selecting which one should be used when the bootable image we build/deliver. This is my two cents. What're the community thoughts on this?

[1] ostreedev/ostree#1590

u-boot error with qemux86-64 in rocko branch

FYI @leon-anavi

I'm trying to upgrade AGL to rocko but I got the below error in qemux86-64.

| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/common/built-in.o spl/common/common_fit.o spl/common/miiphyutil.o spl/common/fdt_support.o spl/common/console.o spl/common/dlmalloc.o spl/common/malloc_simple.o spl/common/image.o spl/common/image-fdt.o spl/common/image-fit.o spl/common/memsize.o spl/common/stdio.o spl/common/cli.o spl/common/command.o spl/common/s_record.o spl/common/xyzModem.o
| rm -f spl/drivers/sysreset/built-in.o; x86_64-agl-linux-ar rcs spl/drivers/sysreset/built-in.o
| make -f /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/scripts/Makefile.build obj=spl/drivers/timer
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/rtc/built-in.o spl/drivers/rtc/rtc-uclass.o spl/drivers/rtc/date.o spl/drivers/rtc/mc146818.o
| x86_64-agl-linux-gcc --sysroot=/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot -Wp,-MD,spl/drivers/pci/.pci_x86.o.d -nostdinc -isystem /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot-native/usr/bin/x86_64-agl-linux/../../lib/x86_64-agl-linux/gcc/x86_64-agl-linux/7.2.0/include -Iinclude -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/include -include /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include/linux/kconfig.h -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/spl/drivers/pci -Ispl/drivers/pci -D__KERNEL__ -D__UBOOT__ -DCONFIG_SPL_BUILD -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -ffunction-sections -fdata-sections -fno-strict-aliasing -fomit-frame-pointer -fno-toplevel-reorder -fno-dwarf2-cfi-asm -march=i386 -m32 -mregparm=3 -D__I386__ -ffunction-sections -fvisibility=hidden -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pci_x86)" -D"KBUILD_MODNAME=KBUILD_STR(pci_x86)" -c -o spl/drivers/pci/pci_x86.o /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/drivers/pci/pci_x86.c
| x86_64-agl-linux-gcc --sysroot=/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot -Wp,-MD,spl/drivers/pci/.pci_auto_common.o.d -nostdinc -isystem /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot-native/usr/bin/x86_64-agl-linux/../../lib/x86_64-agl-linux/gcc/x86_64-agl-linux/7.2.0/include -Iinclude -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/include -include /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include/linux/kconfig.h -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/spl/drivers/pci -Ispl/drivers/pci -D__KERNEL__ -D__UBOOT__ -DCONFIG_SPL_BUILD -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -ffunction-sections -fdata-sections -fno-strict-aliasing -fomit-frame-pointer -fno-toplevel-reorder -fno-dwarf2-cfi-asm -march=i386 -m32 -mregparm=3 -D__I386__ -ffunction-sections -fvisibility=hidden -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pci_auto_common)" -D"KBUILD_MODNAME=KBUILD_STR(pci_auto_common)" -c -o spl/drivers/pci/pci_auto_common.o /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/drivers/pci/pci_auto_common.c
| x86_64-agl-linux-gcc --sysroot=/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot -Wp,-MD,spl/drivers/timer/.timer-uclass.o.d -nostdinc -isystem /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot-native/usr/bin/x86_64-agl-linux/../../lib/x86_64-agl-linux/gcc/x86_64-agl-linux/7.2.0/include -Iinclude -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/include -include /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include/linux/kconfig.h -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/spl/drivers/timer -Ispl/drivers/timer -D__KERNEL__ -D__UBOOT__ -DCONFIG_SPL_BUILD -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -ffunction-sections -fdata-sections -fno-strict-aliasing -fomit-frame-pointer -fno-toplevel-reorder -fno-dwarf2-cfi-asm -march=i386 -m32 -mregparm=3 -D__I386__ -ffunction-sections -fvisibility=hidden -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(timer_uclass)" -D"KBUILD_MODNAME=KBUILD_STR(timer_uclass)" -c -o spl/drivers/timer/timer-uclass.o /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/drivers/timer/timer-uclass.c
| x86_64-agl-linux-gcc --sysroot=/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot -Wp,-MD,spl/drivers/timer/.tsc_timer.o.d -nostdinc -isystem /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot-native/usr/bin/x86_64-agl-linux/../../lib/x86_64-agl-linux/gcc/x86_64-agl-linux/7.2.0/include -Iinclude -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/include -include /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include/linux/kconfig.h -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/spl/drivers/timer -Ispl/drivers/timer -D__KERNEL__ -D__UBOOT__ -DCONFIG_SPL_BUILD -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -ffunction-sections -fdata-sections -fno-strict-aliasing -fomit-frame-pointer -fno-toplevel-reorder -fno-dwarf2-cfi-asm -march=i386 -m32 -mregparm=3 -D__I386__ -ffunction-sections -fvisibility=hidden -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(tsc_timer)" -D"KBUILD_MODNAME=KBUILD_STR(tsc_timer)" -c -o spl/drivers/timer/tsc_timer.o /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/drivers/timer/tsc_timer.c
| x86_64-agl-linux-gcc --sysroot=/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot -Wp,-MD,spl/drivers/pci/.pci_common.o.d -nostdinc -isystem /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/recipe-sysroot-native/usr/bin/x86_64-agl-linux/../../lib/x86_64-agl-linux/gcc/x86_64-agl-linux/7.2.0/include -Iinclude -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/include -include /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/include/linux/kconfig.h -I/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/spl/drivers/pci -Ispl/drivers/pci -D__KERNEL__ -D__UBOOT__ -DCONFIG_SPL_BUILD -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -fno-delete-null-pointer-checks -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -ffunction-sections -fdata-sections -fno-strict-aliasing -fomit-frame-pointer -fno-toplevel-reorder -fno-dwarf2-cfi-asm -march=i386 -m32 -mregparm=3 -D__I386__ -ffunction-sections -fvisibility=hidden -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(pci_common)" -D"KBUILD_MODNAME=KBUILD_STR(pci_common)" -c -o spl/drivers/pci/pci_common.o /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/drivers/pci/pci_common.c
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/spi/built-in.o spl/drivers/spi/spi-uclass.o
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/serial/built-in.o spl/drivers/serial/serial-uclass.o spl/drivers/serial/ns16550.o
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/timer/built-in.o spl/drivers/timer/timer-uclass.o spl/drivers/timer/tsc_timer.o
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/lib/built-in.o spl/lib/sha1.o spl/lib/sha256.o spl/lib/libfdt/built-in.o spl/lib/fdtdec_common.o spl/lib/fdtdec.o spl/lib/net_utils.o spl/lib/hashtable.o spl/lib/errno.o spl/lib/display_options.o spl/lib/crc32.o spl/lib/ctype.o spl/lib/div64.o spl/lib/hang.o spl/lib/linux_compat.o spl/lib/linux_string.o spl/lib/membuff.o spl/lib/slre.o spl/lib/string.o spl/lib/tables_csum.o spl/lib/time.o spl/lib/vsprintf.o spl/lib/panic.o spl/lib/strto.o spl/lib/strmhz.o
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/pci/built-in.o spl/drivers/pci/pci_rom.o spl/drivers/pci/pci-uclass.o spl/drivers/pci/pci_auto.o spl/drivers/pci/pci_x86.o spl/drivers/pci/pci_auto_common.o spl/drivers/pci/pci_common.o
| x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -r -o spl/drivers/built-in.o spl/drivers/core/built-in.o spl/drivers/misc/built-in.o spl/drivers/sysreset/built-in.o spl/drivers/firmware/built-in.o spl/drivers/serial/built-in.o spl/drivers/spi/built-in.o spl/drivers/timer/built-in.o spl/drivers/cpu/built-in.o spl/drivers/pci/built-in.o spl/drivers/pch/built-in.o spl/drivers/rtc/built-in.o
| (cd spl && x86_64-agl-linux-ld.bfd -Bsymbolic -Bsymbolic-functions -m elf_i386 --emit-relocs -T u-boot-spl.lds --wrap=__divdi3 --wrap=__udivdi3 --wrap=__moddi3 --wrap=__umoddi3 --gc-sections -Bstatic --gc-sections --no-dynamic-linker -Ttext 0xfffd0000 arch/x86/cpu/start.o arch/x86/cpu/start16.o arch/x86/cpu/resetvec.o --start-group arch/x86/cpu/built-in.o arch/x86/lib/built-in.o board/emulation/qemu-x86/built-in.o common/spl/built-in.o common/init/built-in.o common/built-in.o cmd/built-in.o env/built-in.o lib/built-in.o drivers/built-in.o dts/built-in.o fs/built-in.o net/built-in.o --end-group arch/x86/lib/lib.a -Map u-boot-spl.map -o u-boot-spl)
| arch/x86/lib/built-in.o: In function __wrap___udivdi3': | /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/arch/x86/lib/gcc.c:25: undefined reference to __normal___udivdi3'
| /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/scripts/Makefile.spl:346: recipe for target 'spl/u-boot-spl' failed
| make[2]: *** [spl/u-boot-spl] Error 1
| /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git/Makefile:1406: recipe for target 'spl/u-boot-spl' failed
| make[1]: *** [spl/u-boot-spl] Error 2
| make[1]: Leaving directory '/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/build'
| Makefile:150: recipe for target 'sub-make' failed
| make: *** [sub-make] Error 2
| make: Leaving directory '/home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/git'
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/ubuntu/work/agl/agl/build/tmp/work/qemux86_64-agl-linux/u-boot/1_2017.09-r0/temp/log.do_compile.11855)
ERROR: Task (/home/ubuntu/work/agl/agl/poky/meta/recipes-bsp/u-boot/u-boot_2017.09.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 471 tasks of which 464 didn't need to be rerun and 1 failed.

image built for RPI3 does not boot - freezes at "Starting the kernel..."

Hello,

I am trying to build meta-updater for RPI3, rocko version, but the image does not boot.
My build configuration:

BB_VERSION           = "1.36.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "arm-poky-linux-gnueabi"
MACHINE              = "raspberrypi3"
DISTRO               = "poky-sota"
DISTRO_VERSION       = "1.0"
TUNE_FEATURES        = "arm armv7ve vfp thumb neon vfpv4 callconvention-hard cortexa7"
TARGET_FPU           = "hard"
meta                 
meta-poky            = "rocko:1648bcafa3d0e46acee61a34d0a07fabb85b1f8d"
meta-virtualization  = "rocko:bd77388f31929f38e7d4cc9c711f0f83f563007e"
meta-oe              = "rocko:dacfa2b1920e285531bec55cd2f08743390aaf57"
meta-remote-management = "rocko:1648bcafa3d0e46acee61a34d0a07fabb85b1f8d"
meta-networking      
meta-python          
meta-filesystems     = "rocko:dacfa2b1920e285531bec55cd2f08743390aaf57"
meta-raspberrypi     = "rocko:b58ccfc696e4fa6b680ae5ca79960312676d7af9"
meta-updater         = "rocko:156074d9533acf88f102a07701591a4532d007db"
meta-updater-raspberrypi = "rocko:4acd3fac3e13616564c4ea19e09265b30a63dfd6"
meta-rust            = "rocko:a4797129e2ab7f11671f817653b11ed876c2b43c"
oe-meta-go           = "master:514b2a80a2a4235687e92fb28328bb3e7c2d6c74"
meta-java            = "rocko:fbe0b0eb30d93f5fa2101fb015f20c1dc118b4a6"

my local.conf file settings:

MACHINE ??= "raspberrypi3"

DISTRO_FEATURES_append = " virtualization systemd pam wifi"
INHERIT += " sota"
# Prelinking increases the size of downloads and causes build errors
USER_CLASSES_remove = "image-prelink"
VIRTUAL-RUNTIME_init_manager = "systemd"
VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
DISTRO ?= "poky-sota-systemd"
PACKAGE_CLASSES ?= "package_ipk"
IMAGE_FEATURES+= "package-management"

BB_DISKMON_DIRS = "\
STOPTASKS,${TMPDIR},1G,100K \
STOPTASKS,${DL_DIR},1G,100K \
STOPTASKS,${SSTATE_DIR},1G,100K \
STOPTASKS,/tmp,100M,100K \
ABORT,${TMPDIR},100M,1K \
ABORT,${DL_DIR},100M,1K \
ABORT,${SSTATE_DIR},100M,1K \
ABORT,/tmp,10M,1K"

> PACKAGECONFIG_append_pn-qemu-native = " sdl"
> PACKAGECONFIG_append_pn-nativesdk-qemu`= " sdl"
> IMAGE_FSTYPE_append="sdimg"

# Install packages with
#IMAGE_INSTALL_append = " "
SERIAL_CONSOLE=""
ENABLE_SPI_BUS="1"
ENABLE_I2C="1"
ENABLE_SPI="1"
#SKIP_META_VIRT_SANITY_CHECK=1
PACKAGECONFIG_append_pn-connman = " openvpn vpnc l2tp pptp"
RPI_USE_U_BOOT = "1"

my bblayers.conf

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2" 
BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /rocko_poky/poky/meta \
 /rocko_poky/poky/meta-poky \
 /rocko_poky/poky/meta-virtualization \
 /rocko_poky/poky/meta-openembedded/meta-oe \
 /rocko_poky/poky/meta-updater \
 /rocko_poky/poky/meta-updater-raspberrypi \
 /rocko_poky/poky/meta-remote-management \
 /rocko_poky/poky/meta-openembedded/meta-networking \
 /rocko_poky/poky/meta-openembedded/meta-python \
 /rocko_poky/poky/meta-openembedded/meta-filesystems \
 /rocko_poky/poky/meta-raspberrypi \
 /rocko_poky/poky/meta-rust \
 /rocko_poky/poky/oe-meta-go \
 /rocko_poky/poky/meta-java \
  "

The sdimg file that was created in morty disappeared, and it was replaced with a wic file that does not boot after I dd it on my sd card. If I remove the meta-updater from my bblayers and re-build the problem seems to disappear.

I also tried to do it from scratch following the tutorial at

https://docs.atsgarage.com/quickstarts/raspberry-pi.html#2-create-your-yocto-build-environment

but I am hitting the exact same problem.

I am wondering if anyone hit the same problem and if you have an idea about what the problem could be.

Thank you,
Mihaela

do_image_garagesign fails with java 10

I get the following error:

Log data follows:
| DEBUG: Executing python function set_image_size
| DEBUG: Python function set_image_size finished
| DEBUG: Executing shell function do_image_garagesign
| 
| The java installation you have is not up to date
| requires at least version 1.6+, you have
| version 10.0.1
| 
| Please go to http://www.java.com/getjava/ and download
| a valid Java Runtime and install before running .
| 
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_image_garagesign 

Edit: This is on Ubuntu 18.04. I also have java 8 installed, but I'm not sure how to convince yocto to use that instead.

image_types_uboot.bbclass is gone in pyro

But there are still classes and images that uses it on the pyro branch, causing errors like:

ERROR: ParseError at yocto-pyro/sources/poky/meta/classes/image.bbclass:185: Could not inherit file classes/image_types_uboot.bbclass

Missing DISTRO_FEATURES

Hello,

I'm building SOTA in a custom distro. I found out that the following line was needed in my configuration:

DISTRO_FEATURES_append = " systemd"

Maybe it should come in conf/distro/sota.conf.inc?

Regards,
Fernando Endo

lshw: Bus error (core dumped)

Hello,
when starting aktualizr i'm getting the following error:

Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: Aktualizr version 1.0+gitAUTOINC+a94a15e31f starting
Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: Reading config: "/usr/lib/sota/conf.d/20-sota_autoprov.toml"
Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: Use existing SQL storage: "/var/sota/sql.db"
Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: got SendDeviceData command
Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: Bus error (core dumped)
Aug 30 09:28:58 imx6ul-opos6uldev aktualizr[424]: Could not execute lshw (is it installed?).

Starting lshw manually, I'm getting:

root@imx6ul-opos6uldev:/sysroot/home/root# lshw
[ 1136.600686] Unhandled fault: external abort on non-linefetch (0x008) at 0xb6f93000
[ 1136.608536] pgd = 01f78776
[ 1136.611367] [b6f93000] *pgd=8d059835, *pte=000e0783, *ppte=000e0e33
Bus error (core dumped)

When starting lshw -disable dmi it's working fine.

It looks like there is a problem on the B.02.16: https://bugs.launchpad.net/ubuntu/+source/lshw/+bug/653082

I updated the lshw version in the recipe to B.02.17 and it's I don't get any error anymore.

Distro: sumo

The meta-updater layer breaks the cronie daemon

The 'cronie' recipe creates the directory /var/spool/cron/ (by this command).
This directory is removed somewhere during the OSTree image creation.
As a result, during boot the crond daemon fails to start with the error:

Starting crond: /var/spool/cron: No such file or directory
/var/spool/cron: mkdir: No such file or directory
FAIL

Why does it happen?
How can we make the cron daemon work with the meta-updater layer?

Thanks.

Error building core-image-base

I'm on zeus branch

When building "core-image base", this error occurs:

ERROR: core-image-base-1.0-r0 do_rootfs: Could not invoke dnf. Command '/home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/recipe-sysroot-native/usr/bin/dnf -v --rpmverbosity=info -y -c /home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/rootfs/etc/dnf/dnf.conf --setopt=reposdir=/home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/rootfs/etc/yum.repos.d --installroot=/home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/rootfs --setopt=logdir=/home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/temp --repofrompath=oe-repo,/home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo --nogpgcheck install aktualizr aktualizr-shared-prov fit-conf openssh os-release ostree packagegroup-base-extended packagegroup-core-boot psplash-raspberrypi run-postinsts systemd-journald-persistent virtual/network-configuration wifi-systemd-service locale-base-en-us locale-base-en-gb' returned 1:
DNF version: 4.2.2
cachedir: /home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/oe-rootfs-repo
repo: using cache for: oe-repo
not found other for: 
not found modules for: 
not found deltainfo for: 
not found updateinfo for: 
oe-repo: using metadata from Thu 19 Mar 2020 01:07:10 PM UTC.
Last metadata expiration check: 0:00:01 ago on Thu 19 Mar 2020 01:07:10 PM UTC.
No module defaults found
--> Starting dependency resolution
--> Finished dependency resolution
Error: 
 Problem: package packagegroup-base-extended-1.0-r83.raspberrypi3 requires packagegroup-base, but none of the providers can be installed
  - package packagegroup-base-1.0-r83.raspberrypi3 requires packagegroup-base-wifi, but none of the providers can be installed
  - conflicting requests
  - nothing provides wireless-regdb-static needed by packagegroup-base-wifi-1.0-r83.raspberrypi3
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

ERROR: Logfile of failure stored in: /home/tce/yocto_dist/build/tmp/work/raspberrypi3-poky-linux-gnueabi/core-image-base/1.0-r0/temp/log.do_rootfs.22978
ERROR: Task (/home/tce/yocto_dist/poky/meta/recipes-core/images/core-image-base.bb:do_rootfs) failed with exit code '1'

Building the same image with "poky" instead of "poky-sota-systemd" works with no errors.
Also, I can build core-minimal-image without any problems with "poky-sota-systemd"

Support building Rocko on Debian Jessie (oldstable)

Tested a build using:

repo init -u https://github.com/advancedtelematic/updater-repo.git -m rocko.xml

But it fails on building aktualizr-native in the do_compile step with errors like:

aktualizr-native/1.0+gitAUTOINC+3b89858cf8-7/git/src/sota_tools/ostree_http_repo.cc:39:104: error: use of deleted function ‘OSTreeRef::OSTreeRef(OSTreeRef&&)’
 OSTreeRef OSTreeHttpRepo::GetRef(const std::string &refname) const { return OSTreeRef(*server_, refname); }

and

aktualizr-native/1.0+gitAUTOINC+3b89858cf8-7/git/src/sota_tools/ostree_ref.h:16:3: error: use of deleted function ‘std::basic_stringstream<char>::basic_stringstream(const std::basic_stringstream<char>&)’

There is a lot of them. Can provide full log if necessary.

My environment:

Build Configuration:
BB_VERSION           = "1.36.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal-4.9"
TARGET_SYS           = "x86_64-poky-linux"
MACHINE              = "qemux86-64"
DISTRO               = "poky-sota"
DISTRO_VERSION       = "1.0"
TUNE_FEATURES        = "m64 core2"
TARGET_FPU           = ""
meta                 
meta-poky            
meta-yocto-bsp       = "HEAD:7e7ee662f5dea4d090293045f7498093322802cc"
meta-updater         = "HEAD:4bcd0509c780a2e244aab4713926a548c176fb5f"
meta-filesystems     
meta-oe              = "HEAD:dacfa2b1920e285531bec55cd2f08743390aaf57"
meta-updater-qemux86-64 = "HEAD:697632ddd98ed7ae3dbd0bd84abb04079767bc56"

Debian 8 which is part of the "supported" distro versions for rocko

$ cat /etc/issue
Debian GNU/Linux 8 \n \l

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.