= meta-updater :toc: macro :toc-title: :aktualizr-docsroot: https://github.com/advancedtelematic/aktualizr/tree/master/docs/ota-client-guide/modules/ROOT/pages/ Meta-updater is a link:https://www.yoctoproject.org/software-overview/layers/[Yocto layer] that enables over-the-air updates (OTA) with https://github.com/ostreedev/ostree[OSTree] and https://github.com/advancedtelematic/aktualizr[Aktualizr] -- the default client for link:https://www.here.com/products/automotive/ota-technology[HERE OTA Connect]. https://github.com/ostreedev/ostree[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. https://github.com/advancedtelematic/aktualizr[Aktualizr] (and https://github.com/advancedtelematic/rvi_sota_client[RVI SOTA client]) add authentication and provisioning capabilities to OTA and are integrated with OSTree. You can connect with these open-source applications or sign up for a free account at https://connect.ota.here.com/[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 xref:dev@getstarted::raspberry-pi.adoc[HERE OTA Connect Quickstart] project to rapidly get up and running on a Raspberry Pi. It takes a standard https://www.yoctoproject.org/tools-resources/projects/poky[poky] distribution, and adds OTA and OSTree capabilities. == Dependencies In addition to the link:https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#required-packages-for-the-build-host[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 https://github.com/advancedtelematic/meta-updater-minnowboard[Minnowboard] with GRUB, you will also need to install https://github.com/tianocore/tianocore.github.io/wiki/OVMF[TianoCore's ovmf] package on your host system. On Debian/Ubuntu, you can do so with this command: .... sudo apt install ovmf .... [discrete] == 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 link:https://docs.ota.here.com/ota-client/dev/index.html[OTA Connect Developer Guide]. [NOTE] ==== The following links point to files in the aktualizr repository where the source of the developer guide is stored. ==== * xref:{aktualizr-docsroot}meta-updater-build.adoc[Build] + Learn how to use this layer to build a basic disk image and add it to your own Yocto project. + * xref:{aktualizr-docsroot}supported-boards.adoc[Supported boards] + Find out if your board is supported and learn about the minimum hardware requirements. + * xref:{aktualizr-docsroot}sota-variables.adoc[SOTA-related variables in local.conf] + Learn how to configure OTA-related functionality when building disk images. + * xref:{aktualizr-docsroot}meta-updater-usage.adoc[Usage] + Learn about the `garage-push` and `garage-sign` utilities, aktualizr configuration and service resource control, and OSTree. + * xref:{aktualizr-docsroot}meta-updater-dev-config.adoc[Development configuration] + Learn how to configure logging, install custom versions of aktualizr, and override the version indicator for sofware updates. + * xref:{aktualizr-docsroot}meta-updater-testing.adoc#_qa_with_oe_selftest[QA with oe-selftest] + Learn how to use the `oe-selftest` framework for quality assurance. + * xref:{aktualizr-docsroot}meta-updater-testing.adoc#_aktualizr_test_suite_with_ptest[Aktualizr test suite with ptest] + Learn how to enable Yocto's package test functionality and run parts of the aktualizr test suite. + * xref:{aktualizr-docsroot}meta-updater-provisioning-methods.adoc[Provisoning methods] + Learn how to enable different methods for provisioning devices. == License This code is licensed under the link:COPYING.MIT[MIT license], a copy of which can be found in this repository. All code is copyright HERE Europe B.V., 2016-2019. We require that contributors accept the terms of Linux Foundation's link:https://developercertificate.org/[Developer Certificate of Origin]. Please see the https://github.com/advancedtelematic/aktualizr/blob/master/CONTRIBUTING.md[contribution instructions of aktualizr] for more information.