Start the transition from styhead to walnascar by adding the
new core layer name as compatible. Once the transition is done,
styhead will be removed.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
containerd doesn't do native networking confguration, it relies
on CNI.
So ensure that CNI is specified in the containerd profile.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
These definitions are selected by setting: CONTAINER_PROFILE
Once selected the VIRTUAL_RUNTIME and other considerations for
the profile are configured and used by the images in meta-virt.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This .inc file is no longer the active one by default, so we
will use it a reference for the possible values. To make that
more obvious, we comment out the current values.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
These are used to set configuration for container and virtualization
stacks. We set a default to ensure that sane values are always
present.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Podman requires /etc/sub[g]uid for rootless mode but the file is being deleted
if shadow is in ROOTFS_RO_UNNEEDED (even if different package like the
podman itself provides it) and rpm backend is used.
Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The xen preferred version fails to match when we add -stable
dot releases. We move the wildcard back in the preferred
version to pick them up.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
We no longer need the split between container-docker and
containerd-opencontainers and dependent layers have been
given over a year to adapt.
We do keep the provides and rprovides around for a bit
longer, but those will also be removed in the future.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
- mickledore was incorrectly spelled
- we aren't actively going to test both branches with master, so
go to only nanbield
If there's demaand, and test results to support it, we can
reconsider later.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
OE Core has bumped to the next version, we update to match.
For now, we keep both mickledore and nanbield as compatible while
progressing towards release.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
docker-ce has been deprecated, so switch to docker-moby as
the preferred provider.
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
From the configuration file itself:
These variables represent groupings of functionality in the CNCF
landscape. In particular, they are areas where there is a choice
between more than one implementation or an area where abstraction
is beneficial.
The contents of the variables are are runtime components that
recipes may use for RDEPENDS.
Build dependencies are not typically flexible, so do not currently
have DEPENDS equivalents for the components (i.e. DEPENDS on runc
versus crun).
Distro features such as kubernetes or other container stacks
can be used to set different defaults for these variables.
Note: these are "global" values, since they represent choices.
If more than of a grouping is required on target, then the variable
can be appended or set to multiple values. That being said, Recipes
should generally agree on the values, hence the global namespace.
Recipe specific choices can still be done, but they risk
conflicting on target or causing runtime issues / errors.
## CNCF "components"
# engines: docker-ce/docker-moby, virtual-containerd, cri-o, podman
VIRTUAL-RUNTIME_container_engine ??= "podman"
# runtime: runc, crun, runv, runx
VIRTUAL-RUNTIME_container_runtime ??= "virtual-runc"
# networking: cni, netavark
VIRTUAL-RUNTIME_container_networking ??= "cni"
# dns: cni, aardvark-dns
VIRTUAL-RUNTIME_container_dns ??= "cni"
# orchestration: k8s, k3s
VIRTUAL-RUNTIME_container_orchestration ??= "k3s"
## Kubernetes terminology "components"
VIRTUAL-RUNTIME_cri ??= "containerd"
VIRTUAL-RUNTIME_cni ??= "cni"
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This is the start of a container multiconfig reference. See the
container-host image type for an example use of the configuration.
As usual, ensure that: BBMULTICONFIG = "container"
is in your configuration to fully enable its use.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Reviewed-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Michal Orzel <michal.orzel@amd.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The Xen hypervisor built for Arm 32-bit targets can be launched with
runqemu by providing a u-boot script and configuration for Qemu, which
enables interactive testing of Xen images.
Add qemuboot-xen-u-boot.bbclass to add a new bitbake task for generating
the u-boot script. Since this increases the number of qemuboot-specific
classes that are inherited by the xen-image-minimal recipe, change the
inherit of all of these to only apply to qemu machines with the qemuall
override.
Update qemuboot-xen-defaults.bbclass to supply working default
parameters for the qemuarm machine needed to boot successfully in
testing. Also change all the arch-specific variable overrides into
narrower qemu platform overrides instead to avoid unnecessary
interactions with other Arm platform machines.
Signed-off-by: Christopher Clark <christopher.clark@starlab.io>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Add recipes for Xen 4.16 release as, according to the documentation
we shall have recipes for the latest stable major version of Xen
before the next Yocto release. Bump PREFERED_VERSION to 4.16 as well.
Take the opportunity to update SRCREV of xen recipes for master
and bump XEN_REL version to 4.17 as this is the current development
version.
Signed-off-by: Michal Orzel <michal.orzel@arm.com>
Reviewed-by: Christopher Clark <christopher.w.clark@gmail.com>
Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The variable renames in OE core are parse errors, not warnings, so
maintaining compatibility for both honister and kirkstone in the
same branch isn't feasible. So we drop honister in preparation for
release.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Overriding hostname in a .conf file, via base-files:
HOST_NAME="k3s-host"
hostname_pn-base-files = "${HOST_NAME}"
Is always a valid option, but if it is not configured, we can easily
have two hosts with the same name on the network, confusing adddress
assignement, etc.
This commit introduces a way to generate a unique hostname based
on the uuid of the build host, and the machine being built.
If virt-unique-hostname is added to IMAGE_FEATURES, like the following:
IMAGE_FEATURES += "virt-unique-hostname"
IMAGE_FEATURES[validitems] += "virt-unique-hostname"
Then a rootfs postprocessing hook will override hostnae to something
unique.
Note: this means your image will be reproducible on a single builder,
but not between them.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
OEcore/bitbake are moving to use the clearer ":" as an overrides
separator.
This is pass one of updating the meta-virt recipes to use that
syntax.
This has only been minimally build/runtime tested, more changes
will be required for missed overrides, or incorrect conversions
Note: A recent bitbake is required:
commit 75fad23fc06c008a03414a1fc288a8614c6af9ca
Author: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sun Jul 18 12:59:15 2021 +0100
bitbake: data_smart/parse: Allow ':' characters in variable/function names
It is becomming increasingly clear we need to find a way to show what
is/is not an override in our syntax. We need to do this in a way which
is clear to users, readable and in a way we can transition to.
The most effective way I've found to this is to use the ":" charater
to directly replace "_" where an override is being specified. This
includes "append", "prepend" and "remove" which are effectively special
override directives.
This patch simply adds the character to the parser so bitbake accepts
the value but maps it back to "_" internally so there is no behaviour
change.
This change is simple enough it could potentially be backported to older
version of bitbake meaning layers using the new syntax/markup could
work with older releases. Even if other no other changes are accepted
at this time and we don't backport, it does set us on a path where at
some point in future we could
require a more explict syntax.
I've tested this patch by converting oe-core/meta-yocto to the new
syntax for overrides (9000+ changes) and then seeing that builds
continue to work with this patch.
(Bitbake rev: 0dbbb4547cb2570d2ce607e9a53459df3c0ac284)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The Xen hypervisor built for Arm 64-bit targets can be launched with
runqemu by providing a Device Tree binary and configuration for Qemu,
which enables interactive testing of Xen images.
Add qemuboot-xen-dtb.bbclass to add a new bitbake task for generating
the dtb file by using lopper on a device tree produced by Qemu.
Add qemuboot-xen-defaults.bbclass to supply working default parameters
for the qemuarm64 machine and general support for qemuboot for Xen,
and adjust the defaults as needed to boot successfully in testing.
Development aided by this script by Stewart Hildebrand of DornerWorks:
https://gist.github.com/stewdk/110f43e0cc1d905fc6ed4c7e10d8d35e
Signed-off-by: Christopher Clark <christopher.clark@starlab.io>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
There have been reports of warnings being generated by the
layer index when the compatibility of a layer exceeds 25 characters.
gatesgarth is supported in its own branch, and isn't being tested
against master, so we drop it from the compat.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
BBFILES_DYNAMIC has existed for several years, we don't need the
precursor BBFILES for dynamic layers.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Improve meta-virt-xen.inc by moving all the Raspberry Pi 4 config
settings to a new xen-raspberrypi4-64.inc file in the raspberrypi
dynamic layer.
The new .inc file is included only for the raspberrypi4-64 MACHINE,
so the config settings no longer need to be applied using overrides.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The 5.10 version of the Linux Yocto kernel supports running Xen on the
Raspberry Pi 4, so the previous preference for linux-yocto-dev can be
replaced.
Use the ?= operator to set the kernel preference now since
meta-raspberrypi commit e0b4b8c5d introduced use of the weak default
for kernel preference in that layer to allow this here.
KERNEL_DEVICETREE needs to be set to match the build outputs of the
selected kernel, in this case: "broadcom/bcm2711-rpi-4-b.dtb"
Tested with kernel version:
SRCREV_machine = "cf5b0320cf4544d3db9ce3ddd6ddb7553a610651"
SRCREV_meta="031f6c76e488a3563f35258c72ff1de3e25a512e"
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This upgrade spans 9 small release. The detailed realese logs could
refer to: https://gitlab.com/libvirt/libvirt/-/blob/master/NEWS.rst
Libvirt's buildsystem has changed to meson, So this upgrade drop some
obsolete patches applied to makefile.
I ran libvirt testcase and ovs testcase for this upgrade, the summary
as follow:
libvirt_test (keyword: ) test results:
*1 Run libvirt_test testing(do_test1) PASS
*2 Check result (virsh_local_capabilities) PASS
*3 Check result (virsh_local_domcapabilities) PASS
*4 Check result (virsh_local_freecell) PASS
*5 Check result (virsh_local_help) PASS
*6 Check result (virsh_local_hostname) PASS
*7 Check result (virsh_local_iface-begin) PASS
*8 Check result (virsh_local_iface-commit) PASS
*9 Check result (virsh_local_iface-list) PASS
*10 Check result (virsh_local_list) PASS
*11 Check result (virsh_local_maxvcpus) PASS
*12 Check result (virsh_local_net-list) PASS
*13 Check result (virsh_local_nodecpumap) PASS
*14 Check result (virsh_local_nodecpustats) PASS
*15 Check result (virsh_local_nodedev-list) PASS
*16 Check result (virsh_local_nodeinfo) PASS
*17 Check result (virsh_local_node-memory-tune) PASS
*18 Check result (virsh_local_nodememstats) PASS
*19 Check result (virsh_local_nwfilter-binding-list) PASS
*20 Check result (virsh_local_nwfilter-list) PASS
*21 Check result (virsh_local_pool-capabilities) PASS
*22 Check result (virsh_local_pool-list) PASS
*23 Check result (virsh_local_pwd) PASS
*24 Check result (virsh_local_secret-list) PASS
*25 Check result (virsh_local_sysinfo) PASS
*26 Check result (virsh_local_uri) PASS
*27 Check result (virsh_local_version) PASS
openvswitch_vm2vm (keyword: qemux86) test results:
*1 openvswitch_vm2vm testing(do_test1) PASS
*2 Check result (ovs_vm2vm_boot_guest1) PASS
*3 Check result (ovs_vm2vm_boot_guest2) PASS
*4 Check result (ovs_vm2vm_netperf_test) PASS
*5 Check result (ovs_vm2vm_destroy_guest1) PASS
*6 Check result (ovs_vm2vm_destroy_guest2) PASS
*7 check testcase call trace(do_check_call_trace) PASS
Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The recipes are introduced as the non-default version by adding an
expressed PREFERRED_VERSION for 4.14 in:
conf/distro/include/meta-virt-default-versions.inc
to keep the Xen 4.14 recipes as default for the Hardknott release.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The docker split/requirement on their forked version of runc is
not relevant any more. While we keep the docker-runc around, we
should prefer the opencontainers variant, since that is where
development happens.
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Enable linux-yocto-dev as the Linux kernel for Xen on the
Raspberry Pi 4, with the bcm-2xxx-rpi4 KMACHINE and KBRANCH.
Set a Raspberry Pi SD card variable to increase the size of the boot
partition to accommodate both the kernel and the Xen hypervisor.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Retiring use of the downstream vendor kernel for use with Xen.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The GIC that is needed by Xen can be enabled via the rpi-config recipe
variable. Fixes the build after the upstream recipe changed recently.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
The sdcard class in the meta-raspberrypi layer is now extensible with
support for adding files such as hypervisor binaries to the boot
partition, so this layer can switch to use that and drop the custom
sdcard bbclass.
Uses the new RPI_SDIMG_EXTRA_DEPENDS and DEPLOYPAYLOAD variables,
and: IMAGE_CLASS: sdcard_image-rpi-xen => sdcard_image-rpi
IMAGE_FSTYPE: rpi-xen-sdimg => rpi-sdimg
Please note that the filename suffix of the image is changed by this.
Also apply _raspberrypi4-64 scoping to the Raspberry Pi settings.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
These settings are not needed here. Serial configuration is done
in the bsp layer. Tested and working on the Raspberry Pi 4.
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>