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 = "/"