File README of Package yocto-microos-image

MicroOS container for Yocto
---------------------------

This container provides all the dependencies to build MicroOS packages
using Yocto.  The current implementation is somehow inspired in the
CROPS project from Yocto, but with simplifications done when used as a
rootless podman container.

It is build using an openSUSE Tumbleweed distribution as a base, with
all the dependencies required for Yocto (native compiler, git and
other libraries).  In addition the "cross-sdk", a cross compiler to
aarch64 using the MicroOS sources, is installed as a package.


Installation and use
--------------------

The container can be installed from the openSUSE registry with:

  podman pull \
    registry.opensuse.org/home/aplanas/yocto/containerfile/opensuse/yocto-microos:latest

Internally it is running as a non-privilege user "yoctouser", as by
default Yocto will complain when "root" is used.

We need to create a working directory in the host, to simplify the
development.  We will have access to this directory from inside the
container (to compile packages) and from outside (to edit the recipes)
at the same time, making the development cycle fast and direct.

  mkdir workdir

Now we can launch the container and access the shared directory.

  podman run --rm -it -v workdir:/workdir --workdir=/workdir opensuse/yocto-microos

If you have problems with the user mapped inside the container with
the one owning "workdir", you can try to use the "--userns=keep-id"
parameter.

Inside the container shell, we need to clone the "meta-microos" and
Yocto "poky" repositories.

  git clone https://github.com/aplanas/meta-microos.git
  git clone git://git.yoctoproject.org/poky

As today the last stable branch for Poky is "mickledore", and for this
release we need to backport a commit from the "master" branch.

  cd poky
  git switch mickledore
  git cherry-pick cc2c3b1b62070db2b84d967ce20a1651fd50b7fb

It is possible that this present a conflict very easy to resolve.

To create a build directory ready for MicroOS check the documentation
from:

  https://en.opensuse.org/Portal:MicroOS/Yocto

The only difference is that in the configuration file
"conf/local.conf" we need to point to the cross-sdk installed in the
system, changing it with:

  EXTERNAL_TOOLCHAIN = "/"
openSUSE Build Service is sponsored by