From 0bc59cbb90b4b5a36fc1b2662ac668c0a17153d9 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 25 Apr 2025 10:02:58 +0200 Subject: [PATCH 1/6] Axiom: add skeleton for layer and KAS config Adding and activating this layer will add support for Axiom to the images it has bbappends for. Signed-off-by: Koen Kooi --- ci/axiom.yml | 26 ++++++++++++++++++++++++++ meta-axiom-ci/conf/layer.conf | 14 ++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 ci/axiom.yml create mode 100644 meta-axiom-ci/conf/layer.conf diff --git a/ci/axiom.yml b/ci/axiom.yml new file mode 100644 index 000000000..1dbf8bd65 --- /dev/null +++ b/ci/axiom.yml @@ -0,0 +1,26 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/siemens/kas/master/kas/schema-kas.json + +header: + version: 14 + + +repos: + meta-qcom: + url: https://github.com/qualcomm-linux/meta-qcom + branch: master + layers: + meta-axiom-ci: + "": + meta-openembedded: + url: https://github.com/openembedded/meta-openembedded + layers: + meta-oe: + meta-xfce: + meta-gnome: + meta-python: + meta-networking: + meta-multimedia: + +local_conf_header: + base: | + DISTROOVERRIDES:prepend = "qcom-axiom-ci:" diff --git a/meta-axiom-ci/conf/layer.conf b/meta-axiom-ci/conf/layer.conf new file mode 100644 index 000000000..0c5ace207 --- /dev/null +++ b/meta-axiom-ci/conf/layer.conf @@ -0,0 +1,14 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# We have a packages directory, add to BBFILES +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "qcom-axiom-ci" +BBFILE_PATTERN_qcom-axiom-ci := "^${LAYERDIR}/" +BBFILE_PRIORITY_qcom-axiom-ci = "6" + +LAYERDEPENDS_qcom-axiom-ci = "core openembedded-layer networking-layer qcom" +LAYERSERIES_COMPAT_qcom-axiom-ci = "styhead walnascar" + From 61957829f3a6dcd18c64bb7b04068085b5bfd314 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 25 Apr 2025 10:16:41 +0200 Subject: [PATCH 2/6] meta-axiom: axiom-image.bbclass: minimal class to add adb and nmcli The goal of this class is to transparently add the missing dependencies for running the image in Axiom. Currently it is only adding adb, nmcli and all kernel modules. Co-developed-by: Dmitry Baryshkov Signed-off-by: Dmitry Baryshkov Signed-off-by: Koen Kooi --- meta-axiom-ci/classes-recipe/axiom-image.bbclass | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 meta-axiom-ci/classes-recipe/axiom-image.bbclass diff --git a/meta-axiom-ci/classes-recipe/axiom-image.bbclass b/meta-axiom-ci/classes-recipe/axiom-image.bbclass new file mode 100644 index 000000000..aca989364 --- /dev/null +++ b/meta-axiom-ci/classes-recipe/axiom-image.bbclass @@ -0,0 +1,16 @@ +# Copyright (c) 2023-2024 Qualcomm Innovation Center, Inc. All rights reserved. +# SPDX-License-Identifier: MIT + +# Class to add the dependencies needed for the current Axiom test framework + +CORE_IMAGE_EXTRA_INSTALL:append:qcom-axiom-ci = " \ + android-tools-adbd \ + networkmanager-nmcli \ + kernel-modules \ +" + +enable_adbd_at_boot () { + touch ${IMAGE_ROOTFS}/etc/usb-debugging-enabled +} + +ROOTFS_POSTPROCESS_COMMAND += "enable_adbd_at_boot" From 247d6e0fc4a21918d0c4ef3134059e68952ed867 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 25 Apr 2025 10:17:34 +0200 Subject: [PATCH 3/6] meta-axiom: core-image-base.bbappend: inherit axiom-image Make core-image-base inherit axiom-image to add the dependencies needed for running it inside Axiom. Signed-off-by: Koen Kooi --- meta-axiom-ci/recipes-core/images/core-image-base.bbappend | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 meta-axiom-ci/recipes-core/images/core-image-base.bbappend diff --git a/meta-axiom-ci/recipes-core/images/core-image-base.bbappend b/meta-axiom-ci/recipes-core/images/core-image-base.bbappend new file mode 100644 index 000000000..34316a90a --- /dev/null +++ b/meta-axiom-ci/recipes-core/images/core-image-base.bbappend @@ -0,0 +1,4 @@ +QCOMINHERITS = "core-image" +QCOMINHERITS:qcom-axiom-ci = "axiom-image" + +inherit ${QCOMINHERITS} From b4fd791066b488cd6e8bdcc7c88897b8fdb30254 Mon Sep 17 00:00:00 2001 From: Dmitry Baryshkov Date: Fri, 25 Apr 2025 10:41:56 +0200 Subject: [PATCH 4/6] linux-yocto-dev: disable CONFIG_USB_MASS_STORAGE Disable CONFIG_USB_MASS_STORAGE so that it doesn't have a chance to take over UDC before adbd starts. [ Adapted from meta-qcom layer commit ] Signed-off-by: Dmitry Baryshkov Signed-off-by: Koen Kooi --- .../recipes-kernel/linux/linux-yocto-dev.bbappend | 7 +++++++ .../linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg | 3 +++ 2 files changed, 10 insertions(+) create mode 100644 meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend create mode 100644 meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg diff --git a/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend new file mode 100644 index 000000000..9930fe624 --- /dev/null +++ b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS:prepend:qcom-axiom-ci := "${THISDIR}/${PN}:" + +# Include additional kernel configs. +SRC_URI:append:qcom-axiom-ci = " \ + file://configs/qcom-axiom-ci.cfg \ +" + diff --git a/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg new file mode 100644 index 000000000..b8ddb3298 --- /dev/null +++ b/meta-axiom-ci/recipes-kernel/linux/linux-yocto-dev/configs/qcom-axiom-ci.cfg @@ -0,0 +1,3 @@ +# don't tamper with adbd +# CONFIG_USB_MASS_STORAGE is not set + From a1584f1471ca9eb30c61aa6b258f31cdb7be3665 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 25 Apr 2025 16:18:56 +0200 Subject: [PATCH 5/6] meta-axion-ci: add minimalistic README.md Signed-off-by: Koen Kooi --- meta-axiom-ci/README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 meta-axiom-ci/README.md diff --git a/meta-axiom-ci/README.md b/meta-axiom-ci/README.md new file mode 100644 index 000000000..ee0f4052e --- /dev/null +++ b/meta-axiom-ci/README.md @@ -0,0 +1,28 @@ +# meta-axiom-ci + +## Introduction + +OpenEmbedded/Yocto Project layer for using the Qualcomm internal Axiom CI on Qualcomm based platforms. + +The official documentation describes Axiom as such: +> Axiom is an enterprise-level integrated automation system and a unified source of truth for test data. It covers all aspects of the test process including planning, execution, reporting and telematics. + +This layer extends a small set of image recipes to add the tools and configs needed to run on the Axiom CI. + +This layer depends on: + +``` +URI: https://github.com/openembedded/openembedded-core.git +layers: meta +branch: master +revision: HEAD +``` + +``` +URI: https://github.com/openembedded/meta-openembedded.git +layers: meta-oe, meta-networking +branch: master +revision: HEAD +``` + + From 3ac2dc16b082d3976bdf0c26da8d6c16f039d3ab Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 30 Apr 2025 13:08:43 +0200 Subject: [PATCH 6/6] meta-axiom-ci: axiom-image.bbclass: include more test requirements Include packages and ptests available in OE Signed-off-by: Koen Kooi --- .../classes-recipe/axiom-image.bbclass | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/meta-axiom-ci/classes-recipe/axiom-image.bbclass b/meta-axiom-ci/classes-recipe/axiom-image.bbclass index aca989364..e0c463745 100644 --- a/meta-axiom-ci/classes-recipe/axiom-image.bbclass +++ b/meta-axiom-ci/classes-recipe/axiom-image.bbclass @@ -5,10 +5,24 @@ CORE_IMAGE_EXTRA_INSTALL:append:qcom-axiom-ci = " \ android-tools-adbd \ - networkmanager-nmcli \ - kernel-modules \ + bluez5 \ + networkmanager-nmcli iproute2-ip \ + usbutils \ + iperf3 \ + net-tools \ + weston \ + pipewire \ + dbus-ptest \ + busybox-ptest \ + openssh-ptest \ + openssl-ptest \ + valgrind \ + kernel-modules \ " +# Add ssh server +IMAGE_FEATURES:append:qcom-axiom-ci = " ssh-server-openssh" + enable_adbd_at_boot () { touch ${IMAGE_ROOTFS}/etc/usb-debugging-enabled }