Commit Graph

60 Commits

Author SHA1 Message Date
Bruce Ashfield
491a385ca6 config: introduce hostname generation hooks
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>
2021-12-13 15:59:35 -05:00
Bruce Ashfield
9d848a29e4 conf: set compatibility to honister
With the overrides conversion changes, we mark master compatible
with honistor only.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-02 17:18:38 -04:00
Bruce Ashfield
1b6e39e426 global: overrides conversion pass 2
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-02 17:18:08 -04:00
Bruce Ashfield
d876cfc5bf global: overrides syntax conversion
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>
2021-08-02 17:17:53 -04:00
Christopher Clark
19347a7c4e qemuboot, xen-image-minimal: enable runqemu for qemuarm64 Xen images
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>
2021-07-29 10:55:56 -04:00
Bruce Ashfield
efaa68ded7 conf: drop gatesgarth from compatibility
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>
2021-06-04 08:38:34 -04:00
Richard Neill
339b69f29e xen, rpi4: fix typo in raspberrypi dynamic-layers inclusion
Signed-off-by: Richard Neill <richard.neill@arm.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-05-13 23:07:55 -04:00
Bruce Ashfield
f4a608b4d2 conf: drop old-style BBFILES dynamic
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>
2021-05-04 10:08:17 -04:00
Christopher Clark
686adaf68e xen, rpi4: move rpi4-machine+xen-distro cfg into dynamic layer
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>
2021-04-29 23:05:11 -04:00
Christopher Clark
337ae20576 xen, rpi4: switch Xen-on-Rpi4 kernel preference to linux-yocto
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>
2021-04-29 23:05:11 -04:00
Yanfei Xu
9f359865c4 libvirt: uprev v6.3 -> v7.2
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>
2021-04-22 10:18:06 -04:00
Bruce Ashfield
eb03484168 xen: bump default version to 4.15-stable
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-18 23:05:30 -04:00
Christopher Clark
ade44e12ad xen, xen-tools: add recipes for new stable Xen 4.15 release
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>
2021-04-18 20:19:22 -04:00
Bruce Ashfield
f3e19029b0 conf/layer.conf: add honister to compatibility list
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-15 10:06:38 -04:00
Bruce Ashfield
428e1f1200 config: prefer opencontainers runc
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>
2021-03-15 23:15:42 -04:00
Bruce Ashfield
7daf37f06d conf: add hardknott compatibility
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-03-15 11:10:08 -04:00
Bruce Ashfield
f59d55ec57 conf: add gatesgarth to compat, drop zeus
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-10-15 08:20:03 -04:00
Bruce Ashfield
b40be07bf0 conf: enable xilinx dynamic layer
Signed-off-by: Bruce Ashfield <bruce.ashfield@xilinx.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-09-22 15:51:24 -04:00
Christopher Clark
dc08df210c xen, raspi4, linux-yocto-dev: Enable Xen on Raspberry Pi 4
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>
2020-08-11 15:58:37 -04:00
Christopher Clark
066225be3a xen, linux-raspberrypi4: remove linux-raspberrypi bbappends and patches
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>
2020-08-11 15:58:37 -04:00
Christopher Clark
738bd333a9 xen, rpi4: use RPI_EXTRA_CONFIG and drop the rpi-config_git.bbappend
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>
2020-08-11 15:58:37 -04:00
Christopher Clark
b34307e2f4 xen: retire the Raspberry Pi sdcard class
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>
2020-08-11 15:58:37 -04:00
Christopher Clark
eba860b0d9 xen: drop vars that duplicate hvc console from the r-pi4 config
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>
2020-07-20 14:47:15 -04:00
Christopher Clark
90f663b738 linux-raspberrypi: prefer kernel version 5.4
Aligns with Yocto's current kernel version.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-07-06 16:25:56 -04:00
Christopher Clark
e6e471f3fb xen, raspberry pi: add Xen-specific SD card class
At the moment the regular meta-raspberrypi SD card class does not allow
for optional inclusion of extra files in the SD card boot partition
without requiring those same files be present in the root filesystem.
This affects hypervisor binaries, such as Xen, which do not necessarily
belong within the guest filesystem.

As a workaround, inherit the sdcard_image-rpi.bbclass and clone the
main IMAGE_CMD function, adding the Xen-specific deploy that is needed.
This can be retired when the parent class has extensibility added.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-07-06 16:25:56 -04:00
Christopher Clark
90a01fcbd9 xen, raspberry pi: add dynamic-layer for Xen configuration for Rpi4
A Xen-specific u-boot script is needed for launching Xen, and the GIC
(interrupt controller) needs to be enabled.

Since this is both Xen-specific and Raspberry Pi-specific, use a
dynamic layer to conditionally enable the recipes when both
meta-virtualization and meta-raspberrypi are in use together.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-07-06 16:25:56 -04:00
Christopher Clark
4c0e161157 meta-virt-xen.inc: add Raspberry Pi settings
Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-07-06 16:25:56 -04:00
Christopher Clark
7f6f115d7d xen: apply layer settings when xen DISTRO_FEATURE is enabled
These settings are necessary for Xen and enabling them here, using the
same mechanism that is used by k8s in this layer, simplifies building
images for Xen.

- Ensure that Xen mode is enabled in QEMU.
- On ARM platforms: enable Flattened Device Tree (FDT) support.

Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-07-06 16:25:55 -04:00
Bruce Ashfield
540afb9d9d conf/layer: update compatibility
Add dunfell, drop warrior/thud.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-03-24 15:28:01 -04:00
Bruce Ashfield
3a7d446fa9 conf: defer DISTRO_FEATURE check to bbclass processing
We were using USER_CLASS loading to allow conditional checking
on DISTRO_FEATURES, which triggered distro feature specific version
pinning.

It was found that DISTRO_FEATURES set in local.conf is not
consistently available at layer.conf parse time, hence our checks
were not always working as expected (i.e. the version files are
not included).

If we move the DISTRO_FEATURE check to the bbclasses, and use it
to trigger the include, we should have a consistent set of variable
resolution and consistent behaviour.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-02-10 10:28:38 -05:00
Bruce Ashfield
7f6f7a4fce conf: remove unneeded preferred versions
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-01-22 18:09:11 +00:00
Bruce Ashfield
cceef93ba8 python: drop blinker specific version and python2 recipe
We can use the python3 variant in meta-python, and we no longe need
the specific version.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-01-21 17:48:39 +00:00
Bruce Ashfield
e54873b8b1 k8s: update to v1.17-beta
Updating to v1.17-beta, so we can drop the GO version 1.12 in
meta-virtualization.

We also drop one patch, since it is part of the upstream now.

Basic sanity tests shows no show-stopper issues.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2020-01-09 17:21:12 +00:00
Chen Qi
47c1870b4d meta-virt-default-versions.inc: use go 1.12 version
kubernetes could not be built correctly with go 1.13.
Use 1.12 version in layer.conf.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
2019-12-10 02:28:41 -05:00
Bruce Ashfield
c31e46fce7 conf: add k8s distro feature
Add support for a new distro feature to control kubernetes versions
and related configuration.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-12-10 02:25:21 -05:00
Bruce Ashfield
b4dfe90a5e conf: fix meta-virt version / config include
As was reported:

https://lists.yoctoproject.org/g/meta-virtualization/message/4173?p=,,,20,0,0,0::Created,,conf%2Flayer.conf+is+broken,20,2,0,61269733

The conditional include of the meta-virt versions and config was not
working properly due to parse time constraints.

This commit fixes that by following the example of the meta-cube layer
and instead using a user bbclass to load the .inc file after
distro/distro features have been resolved by bitbake.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-12-06 13:51:57 -05:00
Ming Liu
0b4fe1c911 meta-virt-default-versions.inc: fix invalid python-pyyaml version
The python-pyyaml recipe in this layer is 5.1.2, fix the wrong
PREFERRED_VERSION_python-pyyaml.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-11-25 16:03:31 -05:00
Bruce Ashfield
018b001b76 layer: add zeus as compatible
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-10-08 19:06:45 -04:00
Paul Barker
4663fee526 layer.conf: Change dependency on meta-selinux to recommendation
The recipe for cri-o already has an anonymous Python function in place
to skip the recipe if dependencies are not found so there's no need to
force inclusion of the meta-selinux layer.

Signed-off-by: Paul Barker <paul@betafive.co.uk>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-26 10:35:25 -04:00
Bruce Ashfield
7e2c4151c5 conf: set docker-ce as preferred provider for docker
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-09-24 20:25:14 -04:00
Mingli Yu
822bedbaf6 meta-virtualization: add layer depends on selinux
Since cri-o of meta-virtualization depends on
libselinux which comes from selinux, add missing
layer depends back.

Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-25 22:37:30 -04:00
Bruce Ashfield
24218342dc conf: add warrior to layer compat
In preparation for the spring release, we drop sumo and add
warrior to the layer compat variable.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-04-02 02:45:25 -04:00
Bruce Ashfield
e58badbd37 layer: add thud to compatible releases
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-09-30 21:27:54 -04:00
Chen Qi
34355aa5ac layer.conf: recommend meta-webserver as nagios-core depends on apache2
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-09-06 12:45:17 -04:00
Mark Asselstine
a633967872 layer.conf: match layer dependencies as documented in the layer README
Several required layer dependencies have been added to the layer
README but didn't have corresponding entries added to
LAYERDEPENDS. Ensure these match.

The 'selinux' layer dependency, is conditional on the 'xen'
DISTRO_FEATURE but I see no way to make a conditional LAYERDEPENDS so
this is left off for now.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-24 16:08:02 -04:00
Armin Kuster
032ef53104 refactor for YP Compat for PV changes
Only include our versions of recipes if virtualiztions is in
DISTRO_FEATURE

Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-23 12:38:50 -04:00
Bruce Ashfield
b51b71e577 LAYERSERIES_COMPAT: move to sumo
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-06 09:02:14 -04:00
Bruce Ashfield
3c3a4cd388 layer: add LAYERSERIES_COMPAT
It will become a visible warning if LAYERSERIES_COMPAT is not set, so
we add it to our layers, and set it to rocko. Once sumo releases and
branched, we'll change the value.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-06 08:30:39 -04:00
Bruce Ashfield
d7d310ae41 meta-virt: prefer containerd-opencontainers
docker has moved to a non-forked version of containerd, so we set
our preference to opencontainers. The containerd-docker is too old
to properly work with modern docker builds, but we keep it around
for reference and compatibility.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-02 00:46:54 -04:00
Paul Barker
1e4530c283 sanity-meta-virt: Make skip variable name layer specific
The variable used to skip the sanity check should be named in a layer specific
way. This will ensure there is no confusion if other layers use a similar sanity
check.

Signed-off-by: Paul Barker <pbarker@toganlabs.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-12 21:59:51 -04:00